Page MenuHomePhabricator

MediaWiki\Revision\RevisionAccessException: Failed to load data blob (x4)
Closed, DuplicatePublicPRODUCTION ERROR

Description

Noticed a couple of these (>10) during a deployment window, ran findBadBlobs.php:

[samtar@mwmaint2002 ~]$ mwscript findBadBlobs.php --wiki enwiki --revisions 11489182,11488966,11489018,11488965
Scanning 4 ids
        ! Found bad blob on revision 11488965 from 20030401093246 (main slot): content_id=11974333, address=<tt:11488965>, error='Bad data in text row 11488965. Use findBadBlobs.php to remedy.', type='MediaWiki\Storage\BlobAccessException'. ID:    11488965
        ! Found bad blob on revision 11488966 from 20030429053228 (main slot): content_id=11974334, address=<tt:11488966>, error='Bad data in text row 11488966. Use findBadBlobs.php to remedy.', type='MediaWiki\Storage\BlobAccessException'. ID:    11488966
        ! Found bad blob on revision 11489018 from 20031217060441 (main slot): content_id=11974386, address=<tt:11489018>, error='Bad data in text row 11489018. Use findBadBlobs.php to remedy.', type='MediaWiki\Storage\BlobAccessException'. ID:    11489018
        ! Found bad blob on revision 11489182 from 20050102215304 (main slot): content_id=11974550, address=<tt:11489182>, error='Bad data in text row 11489182. Use findBadBlobs.php to remedy.', type='MediaWiki\Storage\BlobAccessException'. ID:    11489182
        - Scanned a batch of 4 revisions
Found 4 bad revisions.
On a unix/linux environment, you can use grep and cut to list of IDs
that can then be used with the --revisions option. E.g.
  grep '! Found bad blob' | cut -s -f 3
Error
normalized_message
[{reqId}] {exception_url}   MediaWiki\Revision\RevisionAccessException: Failed to load data blob from {address} for revision {revision}. If this problem persist, use the findBadBlobs maintenance script to investigate the issue and mark bad blobs.
exception.trace
from /srv/mediawiki/php-1.41.0-wmf.4/includes/Revision/RevisionStore.php(1193)
#0 /srv/mediawiki/php-1.41.0-wmf.4/includes/Revision/RevisionStore.php(1507): MediaWiki\Revision\RevisionStore->loadSlotContent(MediaWiki\Revision\SlotRecord, NULL, NULL, NULL, integer)
#1 [internal function]: MediaWiki\Revision\RevisionStore->MediaWiki\Revision\{closure}(MediaWiki\Revision\SlotRecord)
#2 /srv/mediawiki/php-1.41.0-wmf.4/includes/Revision/SlotRecord.php(324): call_user_func(Closure, MediaWiki\Revision\SlotRecord)
#3 /srv/mediawiki/php-1.41.0-wmf.4/includes/diff/DifferenceEngine.php(388): MediaWiki\Revision\SlotRecord->getContent()
#4 /srv/mediawiki/php-1.41.0-wmf.4/includes/diff/DifferenceEngine.php(361): DifferenceEngine->loadSingleSlot(MediaWiki\Revision\SlotRecord, string)
#5 /srv/mediawiki/php-1.41.0-wmf.4/includes/diff/DifferenceEngine.php(917): DifferenceEngine->getSlotContents()
#6 /srv/mediawiki/php-1.41.0-wmf.4/includes/page/Article.php(940): DifferenceEngine->showDiffPage(boolean)
#7 /srv/mediawiki/php-1.41.0-wmf.4/includes/page/Article.php(479): Article->showDiffPage()
#8 /srv/mediawiki/php-1.41.0-wmf.4/includes/actions/ViewAction.php(78): Article->view()
#9 /srv/mediawiki/php-1.41.0-wmf.4/includes/MediaWiki.php(559): ViewAction->show()
#10 /srv/mediawiki/php-1.41.0-wmf.4/includes/MediaWiki.php(334): MediaWiki->performAction(Article, MediaWiki\Title\Title)
#11 /srv/mediawiki/php-1.41.0-wmf.4/includes/MediaWiki.php(926): MediaWiki->performRequest()
#12 /srv/mediawiki/php-1.41.0-wmf.4/includes/MediaWiki.php(579): MediaWiki->main()
#13 /srv/mediawiki/php-1.41.0-wmf.4/index.php(50): MediaWiki->run()
#14 /srv/mediawiki/php-1.41.0-wmf.4/index.php(46): wfIndexMain()
#15 /srv/mediawiki/w/index.php(3): require(string)
#16 {main}
exception.previous.trace
from /srv/mediawiki/php-1.41.0-wmf.4/includes/Storage/SqlBlobStore.php(281)
#0 /srv/mediawiki/php-1.41.0-wmf.4/includes/Revision/RevisionStore.php(1189): MediaWiki\Storage\SqlBlobStore->getBlob(string, integer)
#1 /srv/mediawiki/php-1.41.0-wmf.4/includes/Revision/RevisionStore.php(1507): MediaWiki\Revision\RevisionStore->loadSlotContent(MediaWiki\Revision\SlotRecord, NULL, NULL, NULL, integer)
#2 [internal function]: MediaWiki\Revision\RevisionStore->MediaWiki\Revision\{closure}(MediaWiki\Revision\SlotRecord)
#3 /srv/mediawiki/php-1.41.0-wmf.4/includes/Revision/SlotRecord.php(324): call_user_func(Closure, MediaWiki\Revision\SlotRecord)
#4 /srv/mediawiki/php-1.41.0-wmf.4/includes/diff/DifferenceEngine.php(388): MediaWiki\Revision\SlotRecord->getContent()
#5 /srv/mediawiki/php-1.41.0-wmf.4/includes/diff/DifferenceEngine.php(361): DifferenceEngine->loadSingleSlot(MediaWiki\Revision\SlotRecord, string)
#6 /srv/mediawiki/php-1.41.0-wmf.4/includes/diff/DifferenceEngine.php(917): DifferenceEngine->getSlotContents()
#7 /srv/mediawiki/php-1.41.0-wmf.4/includes/page/Article.php(940): DifferenceEngine->showDiffPage(boolean)
#8 /srv/mediawiki/php-1.41.0-wmf.4/includes/page/Article.php(479): Article->showDiffPage()
#9 /srv/mediawiki/php-1.41.0-wmf.4/includes/actions/ViewAction.php(78): Article->view()
#10 /srv/mediawiki/php-1.41.0-wmf.4/includes/MediaWiki.php(559): ViewAction->show()
#11 /srv/mediawiki/php-1.41.0-wmf.4/includes/MediaWiki.php(334): MediaWiki->performAction(Article, MediaWiki\Title\Title)
#12 /srv/mediawiki/php-1.41.0-wmf.4/includes/MediaWiki.php(926): MediaWiki->performRequest()
#13 /srv/mediawiki/php-1.41.0-wmf.4/includes/MediaWiki.php(579): MediaWiki->main()
#14 /srv/mediawiki/php-1.41.0-wmf.4/index.php(50): MediaWiki->run()
#15 /srv/mediawiki/php-1.41.0-wmf.4/index.php(46): wfIndexMain()
#16 /srv/mediawiki/w/index.php(3): require(string)
#17 {main}
Impact
Notes