Page MenuHomePhabricator

Deferred update '....UploadCompleteHandler->onUploadComplete' failed to run.
Closed, DeclinedPublicPRODUCTION ERROR

Description

Error
message
Deferred update 'MediaWiki\Deferred\MWCallableUpdate_MediaWiki\Extension\MediaModeration\Hooks\Handlers\UploadCompleteHandler->onUploadComplete' failed to run.
exception
Cannot access the database: Connection timed out (db2115)
trace
from /srv/mediawiki/php-1.42.0-wmf.7/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1149)
#0 /srv/mediawiki/php-1.42.0-wmf.7/includes/libs/rdbms/loadbalancer/LoadBalancer.php(805): Wikimedia\Rdbms\LoadBalancer->reportConnectionError()
#1 /srv/mediawiki/php-1.42.0-wmf.7/includes/libs/rdbms/loadbalancer/LoadBalancer.php(793): Wikimedia\Rdbms\LoadBalancer->getServerConnection(integer, string, integer)
#2 /srv/mediawiki/php-1.42.0-wmf.7/includes/libs/rdbms/database/DBConnRef.php(103): Wikimedia\Rdbms\LoadBalancer->getConnectionInternal(integer, array, string, integer)
#3 /srv/mediawiki/php-1.42.0-wmf.7/includes/libs/rdbms/database/DBConnRef.php(117): Wikimedia\Rdbms\DBConnRef->ensureConnection()
#4 /srv/mediawiki/php-1.42.0-wmf.7/includes/libs/rdbms/database/DBConnRef.php(338): Wikimedia\Rdbms\DBConnRef->__call(string, array)
#5 /srv/mediawiki/php-1.42.0-wmf.7/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php(726): Wikimedia\Rdbms\DBConnRef->selectField(array, string, array, string, array, array)
#6 /srv/mediawiki/php-1.42.0-wmf.7/extensions/MediaModeration/src/Services/MediaModerationDatabaseLookup.php(36): Wikimedia\Rdbms\SelectQueryBuilder->fetchField()
#7 /srv/mediawiki/php-1.42.0-wmf.7/extensions/MediaModeration/src/Services/MediaModerationDatabaseManager.php(34): MediaWiki\Extension\MediaModeration\Services\MediaModerationDatabaseLookup->fileExistsInScanTable(LocalFile, integer)
#8 /srv/mediawiki/php-1.42.0-wmf.7/extensions/MediaModeration/src/Services/MediaModerationFileProcessor.php(145): MediaWiki\Extension\MediaModeration\Services\MediaModerationDatabaseManager->insertFileToScanTable(LocalFile)
#9 /srv/mediawiki/php-1.42.0-wmf.7/extensions/MediaModeration/src/Hooks/Handlers/UploadCompleteHandler.php(50): MediaWiki\Extension\MediaModeration\Services\MediaModerationFileProcessor->insertFile(LocalFile)
#10 [internal function]: MediaWiki\Extension\MediaModeration\Hooks\Handlers\UploadCompleteHandler->MediaWiki\Extension\MediaModeration\Hooks\Handlers\{closure}()
#11 /srv/mediawiki/php-1.42.0-wmf.7/includes/deferred/MWCallableUpdate.php(42): call_user_func(Closure)
#12 /srv/mediawiki/php-1.42.0-wmf.7/includes/deferred/DeferredUpdates.php(469): MediaWiki\Deferred\MWCallableUpdate->doUpdate()
#13 /srv/mediawiki/php-1.42.0-wmf.7/includes/deferred/DeferredUpdates.php(198): MediaWiki\Deferred\DeferredUpdates::attemptUpdate(MediaWiki\Deferred\MWCallableUpdate)
#14 /srv/mediawiki/php-1.42.0-wmf.7/includes/deferred/DeferredUpdates.php(282): MediaWiki\Deferred\DeferredUpdates::run(MediaWiki\Deferred\MWCallableUpdate)
#15 /srv/mediawiki/php-1.42.0-wmf.7/includes/deferred/DeferredUpdatesScope.php(269): MediaWiki\Deferred\DeferredUpdates::MediaWiki\Deferred\{closure}(MediaWiki\Deferred\MWCallableUpdate, integer)
#16 /srv/mediawiki/php-1.42.0-wmf.7/includes/deferred/DeferredUpdatesScope.php(198): MediaWiki\Deferred\DeferredUpdatesScope->processStageQueue(integer, integer, Closure)
#17 /srv/mediawiki/php-1.42.0-wmf.7/includes/deferred/DeferredUpdates.php(301): MediaWiki\Deferred\DeferredUpdatesScope->processUpdates(integer, Closure)
#18 /srv/mediawiki/php-1.42.0-wmf.7/includes/MediaWiki.php(1170): MediaWiki\Deferred\DeferredUpdates::doUpdates()
#19 /srv/mediawiki/php-1.42.0-wmf.7/includes/MediaWiki.php(888): MediaWiki->restInPeace()
#20 /srv/mediawiki/php-1.42.0-wmf.7/api.php(130): MediaWiki->doPostOutputShutdown()
#21 /srv/mediawiki/php-1.42.0-wmf.7/api.php(48): wfApiMain()
#22 /srv/mediawiki/w/api.php(3): require(string)
#23 {main}
Impact

Means that the image is not stored in the mediamoderation_scan table.

Related Objects

Event Timeline

This is happening infrequently enough that I think we can ignore it and decline this task. As part of the automation work, we can make sure that we handle backfilling rows in mediamoderation_scan if/when the DB connection is lost at file upload time.

This is happening infrequently enough that I think we can ignore it and decline this task. As part of the automation work, we can make sure that we handle backfilling rows in mediamoderation_scan if/when the DB connection is lost at file upload time.

If we decline this task, I suggest that we create a task to track running the import maintenance script automatically to account for this?

Otherwise we risk forgetting about this later down the line.