ExternalStoreDB::batchFetchBlobs, used in all ExternalStore requests, falls back to the primary connection when the blobs are not found for some of the provided IDs. Callers have no control over this whatsoever. On GET requests it triggers warnings like the one above.
Either callers should be able to control this behavior or it should suppress warnings.
Example
- mwversion: 1.37.0-wmf.3
- reqId: cb9e15ca-2ae9-4c28-9ec6-5c19500be524
- Find reqId in Logstash
- Find normalized_message in Logstash
Expectation (masterConns <=) 0 by MediaWiki::main not met (actual: {actual}): {query}
from /srv/mediawiki/php-1.37.0-wmf.3/includes/libs/rdbms/TransactionProfiler.php(432) #0 /srv/mediawiki/php-1.37.0-wmf.3/includes/libs/rdbms/TransactionProfiler.php(212): Wikimedia\Rdbms\TransactionProfiler->reportExpectationViolated(string, string, integer) #1 /srv/mediawiki/php-1.37.0-wmf.3/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1008): Wikimedia\Rdbms\TransactionProfiler->recordConnection(string, string, boolean) #2 /srv/mediawiki/php-1.37.0-wmf.3/includes/libs/rdbms/loadbalancer/LoadBalancer.php(962): Wikimedia\Rdbms\LoadBalancer->getServerConnection(integer, string, integer) #3 /srv/mediawiki/php-1.37.0-wmf.3/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1128): Wikimedia\Rdbms\LoadBalancer->getConnection(integer, array, string, integer) #4 /srv/mediawiki/php-1.37.0-wmf.3/includes/externalstore/ExternalStoreDB.php(197): Wikimedia\Rdbms\LoadBalancer->getMaintenanceConnectionRef(integer, array, string, integer) #5 /srv/mediawiki/php-1.37.0-wmf.3/includes/externalstore/ExternalStoreDB.php(370): ExternalStoreDB->getMaster(string) #6 /srv/mediawiki/php-1.37.0-wmf.3/includes/externalstore/ExternalStoreDB.php(95): ExternalStoreDB->batchFetchBlobs(string, array) #7 /srv/mediawiki/php-1.37.0-wmf.3/includes/externalstore/ExternalStoreAccess.php(70): ExternalStoreDB->batchFetchFromURLs(array) #8 /srv/mediawiki/php-1.37.0-wmf.3/includes/externalstore/ExternalStore.php(120): ExternalStoreAccess->fetchFromURLs(array) #9 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/Utils/Merger.php(79): ExternalStore::batchFetchFromURLs(array) #10 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/Storage/RevisionStorage.php(350): Flow\Data\Utils\Merger::mergeMulti(array, string, array, string, string) #11 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/Storage/RevisionStorage.php(174): Flow\Data\Storage\RevisionStorage::mergeExternalContent(array) #12 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/Index/FeatureIndex.php(468): Flow\Data\Storage\RevisionStorage->findMulti(array, array) #13 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/Index/FeatureIndex.php(282): Flow\Data\Index\FeatureIndex->backingStoreFindMulti(array) #14 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/ObjectLocator.php(95): Flow\Data\Index\FeatureIndex->findMulti(array, array) #15 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/ObjectLocator.php(212): Flow\Data\ObjectLocator->findMulti(array) #16 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/ManagerGroup.php(127): Flow\Data\ObjectLocator->getMulti(array) #17 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Data/ManagerGroup.php(135): Flow\Data\ManagerGroup->call(string, array) #18 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Formatter/ChangesListQuery.php(86): Flow\Data\ManagerGroup->getMulti(string, array) #19 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Hooks.php(384): Flow\Formatter\ChangesListQuery->loadMetadataBatch(Wikimedia\Rdbms\ResultWrapper, boolean) #20 /srv/mediawiki/php-1.37.0-wmf.3/includes/HookContainer/HookContainer.php(330): Flow\Hooks::onChangesListInitRows(OldChangesList, Wikimedia\Rdbms\ResultWrapper) #21 /srv/mediawiki/php-1.37.0-wmf.3/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array) #22 /srv/mediawiki/php-1.37.0-wmf.3/includes/HookContainer/HookRunner.php(1173): MediaWiki\HookContainer\HookContainer->run(string, array) #23 /srv/mediawiki/php-1.37.0-wmf.3/includes/changes/ChangesList.php(323): MediaWiki\HookContainer\HookRunner->onChangesListInitRows(OldChangesList, Wikimedia\Rdbms\ResultWrapper) #24 /srv/mediawiki/php-1.37.0-wmf.3/includes/specials/SpecialRecentChanges.php(461): ChangesList->initChangesListRows(Wikimedia\Rdbms\ResultWrapper) #25 /srv/mediawiki/php-1.37.0-wmf.3/includes/specialpage/ChangesListSpecialPage.php(1682): SpecialRecentChanges->outputChangesList(Wikimedia\Rdbms\ResultWrapper, FormOptions) #26 /srv/mediawiki/php-1.37.0-wmf.3/includes/specialpage/ChangesListSpecialPage.php(681): ChangesListSpecialPage->webOutput(Wikimedia\Rdbms\ResultWrapper, FormOptions) #27 /srv/mediawiki/php-1.37.0-wmf.3/includes/specials/SpecialRecentChanges.php(203): ChangesListSpecialPage->execute(NULL) #28 /srv/mediawiki/php-1.37.0-wmf.3/includes/specialpage/SpecialPage.php(646): SpecialRecentChanges->execute(NULL) #29 /srv/mediawiki/php-1.37.0-wmf.3/includes/specialpage/SpecialPageFactory.php(1397): SpecialPage->run(NULL) #30 /srv/mediawiki/php-1.37.0-wmf.3/includes/MediaWiki.php(313): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext) #31 /srv/mediawiki/php-1.37.0-wmf.3/includes/MediaWiki.php(916): MediaWiki->performRequest() #32 /srv/mediawiki/php-1.37.0-wmf.3/includes/MediaWiki.php(550): MediaWiki->main() #33 /srv/mediawiki/php-1.37.0-wmf.3/index.php(53): MediaWiki->run() #34 /srv/mediawiki/php-1.37.0-wmf.3/index.php(46): wfIndexMain() #35 /srv/mediawiki/w/index.php(3): require(string) #36 {main}