Page MenuHomePhabricator

PHP Warning: failed to get text for revid [id] [Called from AbstractFilter::getText in /srv/mediawiki/php-1.39.0-wmf.7/extensions/ActiveAbstract/includes/AbstractFilter.php at line 195]
Open, Needs TriagePublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   PHP Warning: failed to get text for revid 1705637
 [Called from AbstractFilter::getText in /srv/mediawiki/php-1.39.0-wmf.7/extensions/ActiveAbstract/includes/AbstractFilter.php at line 195]
exception.trace
from /srv/mediawiki/php-1.39.0-wmf.7/includes/debug/MWDebug.php(500)
#0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array)
#1 /srv/mediawiki/php-1.39.0-wmf.7/includes/debug/MWDebug.php(500): trigger_error(string, integer)
#2 /srv/mediawiki/php-1.39.0-wmf.7/includes/debug/MWDebug.php(198): MWDebug::sendMessage(string, string, integer)
#3 /srv/mediawiki/php-1.39.0-wmf.7/includes/GlobalFunctions.php(1065): MWDebug::warning(string, integer, integer, string)
#4 /srv/mediawiki/php-1.39.0-wmf.7/extensions/ActiveAbstract/includes/AbstractFilter.php(195): wfLogWarning(string)
#5 /srv/mediawiki/php-1.39.0-wmf.7/extensions/ActiveAbstract/includes/AbstractFilter.php(300): AbstractFilter->getText(stdClass)
#6 /srv/mediawiki/php-1.39.0-wmf.7/extensions/ActiveAbstract/includes/AbstractFilter.php(140): AbstractFilter->sectionLinks(stdClass)
#7 /srv/mediawiki/php-1.39.0-wmf.7/includes/export/DumpFilter.php(81): AbstractFilter->writeClosePage(string)
#8 /srv/mediawiki/php-1.39.0-wmf.7/includes/export/ExportProgressFilter.php(44): DumpFilter->writeClosePage(string)
#9 /srv/mediawiki/php-1.39.0-wmf.7/includes/export/WikiExporter.php(543): ExportProgressFilter->writeClosePage(string)
#10 /srv/mediawiki/php-1.39.0-wmf.7/includes/export/WikiExporter.php(491): WikiExporter->outputPageStreamBatch(Wikimedia\Rdbms\MysqliResultWrapper, stdClass)
#11 /srv/mediawiki/php-1.39.0-wmf.7/includes/export/WikiExporter.php(313): WikiExporter->dumpPages(string, boolean)
#12 /srv/mediawiki/php-1.39.0-wmf.7/includes/export/WikiExporter.php(196): WikiExporter->dumpFrom(string, boolean)
#13 /srv/mediawiki/php-1.39.0-wmf.7/maintenance/includes/BackupDumper.php(358): WikiExporter->pagesByRange(integer, integer, boolean)
#14 /srv/mediawiki/php-1.39.0-wmf.7/maintenance/dumpBackup.php(84): BackupDumper->dump(integer, integer)
#15 /srv/mediawiki/php-1.39.0-wmf.7/maintenance/doMaintenance.php(114): DumpBackup->execute()
#16 /srv/mediawiki/php-1.39.0-wmf.7/maintenance/dumpBackup.php(144): require_once(string)
#17 /srv/mediawiki/multiversion/MWScript.php(116): require_once(string)
#18 {main}
Impact
Notes

A couple of these in 1.39.0-wmf.8 - a recurrence of T295055: snapshot1010: PHP Warning: failed to get text for revid *?

Event Timeline

@Hokwelum and I looked at this together. This is indeed another case of a bab blob address in the text table, as is clear just from looking at the logstash output for the specific request, i.e.

ExternalStoreDB::fetchBlob: primary DB fallback on cluster20/0@hrwiki

But also just doing the walk through the database as a double check:

wikiadmin@10.64.16.7(hrwiki)> select * from revision where rev_id = 1705637;
+---------+----------+----------------+-----------+----------------+----------------+-------------+---------+---------------+----------+
| rev_id  | rev_page | rev_comment_id | rev_actor | rev_timestamp  | rev_minor_edit | rev_deleted | rev_len | rev_parent_id | rev_sha1 |
+---------+----------+----------------+-----------+----------------+----------------+-------------+---------+---------------+----------+
| 1705637 |   192386 |              0 |     27247 | 20090309211443 |              0 |           0 |      81 |             0 |          |
+---------+----------+----------------+-----------+----------------+----------------+-------------+---------+---------------+----------+
1 row in set (0.000 sec)

wikiadmin@10.64.16.7(hrwiki)> select * from slots where slot_revision_id = 1705637;
+------------------+--------------+-----------------+-------------+
| slot_revision_id | slot_role_id | slot_content_id | slot_origin |
+------------------+--------------+-----------------+-------------+
|          1705637 |            1 |         1558975 |     1705637 |
+------------------+--------------+-----------------+-------------+
1 row in set (0.001 sec)

wikiadmin@10.64.16.7(hrwiki)> select * from content where content_id = 1558975;
+------------+--------------+--------------+---------------+-----------------+
| content_id | content_size | content_sha1 | content_model | content_address |
+------------+--------------+--------------+---------------+-----------------+
|    1558975 |           81 |              |             1 | tt:1677927      |
+------------+--------------+--------------+---------------+-----------------+
1 row in set (0.001 sec)

wikiadmin@10.64.16.7(hrwiki)> select * from text where old_id = 1677927;
+---------+------------------+---------------------+
| old_id  | old_text         | old_flags           |
+---------+------------------+---------------------+
| 1677927 | DB://cluster20/0 | utf-8,gzip,external |
+---------+------------------+---------------------+
1 row in set (0.001 sec)

So this should be marked as a bad blob as was done in T295055

Who runs the findBadBlobs.php script in cases like this? It would be nice to get that done.