Page MenuHomePhabricator

Error: Call to a member function getInterwiki() on null
Open, Needs TriagePublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   Error: Call to a member function getInterwiki() on null
exception.trace
from /srv/mediawiki/php-1.37.0-wmf.12/extensions/DoubleWiki/includes/DoubleWiki.php(88)
#0 /srv/mediawiki/php-1.37.0-wmf.12/extensions/DoubleWiki/includes/DoubleWiki.php(63): DoubleWiki->addMatchedText(OutputPage, string)
#1 /srv/mediawiki/php-1.37.0-wmf.12/includes/HookContainer/HookContainer.php(338): DoubleWiki::onOutputPageBeforeHTML(OutputPage, string)
#2 /srv/mediawiki/php-1.37.0-wmf.12/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array)
#3 /srv/mediawiki/php-1.37.0-wmf.12/includes/HookContainer/HookRunner.php(2682): MediaWiki\HookContainer\HookContainer->run(string, array)
#4 /srv/mediawiki/php-1.37.0-wmf.12/includes/OutputPage.php(2019): MediaWiki\HookContainer\HookRunner->onOutputPageBeforeHTML(OutputPage, string)
#5 /srv/mediawiki/php-1.37.0-wmf.12/includes/OutputPage.php(2031): OutputPage->addParserOutputText(ParserOutput, array)
#6 /srv/mediawiki/php-1.37.0-wmf.12/includes/page/Article.php(797): OutputPage->addParserOutput(ParserOutput, array)
#7 /srv/mediawiki/php-1.37.0-wmf.12/includes/page/Article.php(651): Article->doOutputFromParserCache(ParserOutput, OutputPage, array)
#8 /srv/mediawiki/php-1.37.0-wmf.12/includes/page/Article.php(558): Article->generateContentOutput(User, ParserOptions, integer, OutputPage, array)
#9 /srv/mediawiki/php-1.37.0-wmf.12/includes/page/CategoryPage.php(63): Article->view()
#10 /srv/mediawiki/php-1.37.0-wmf.12/includes/actions/ViewAction.php(74): CategoryPage->view()
#11 /srv/mediawiki/php-1.37.0-wmf.12/includes/MediaWiki.php(536): ViewAction->show()
#12 /srv/mediawiki/php-1.37.0-wmf.12/includes/MediaWiki.php(320): MediaWiki->performAction(MediaWiki\Extension\CategoryTree\CategoryTreeCategoryPage, Title)
#13 /srv/mediawiki/php-1.37.0-wmf.12/includes/MediaWiki.php(917): MediaWiki->performRequest()
#14 /srv/mediawiki/php-1.37.0-wmf.12/includes/MediaWiki.php(551): MediaWiki->main()
#15 /srv/mediawiki/php-1.37.0-wmf.12/index.php(53): MediaWiki->run()
#16 /srv/mediawiki/php-1.37.0-wmf.12/index.php(46): wfIndexMain()
#17 /srv/mediawiki/w/index.php(3): require(string)
#18 {main}
Impact

TBD.

Notes

It's iterating through the ParserOutput language links and finding an entry that is invalid according to the Title class.

https://gerrit.wikimedia.org/g/mediawiki/extensions/DoubleWiki/+/8adb93a1a4cc801cc83773b5a5fb91fcb9cec0ed/includes/DoubleWiki.php#88

Details

Request URL
https://fa.wikipedia.org/wiki/%D8%B1%D8%AF%D9%87:%D8%B3%DB%8C%D8%A7%D9%87%D9%87_%D9%82%D8%B1%D9%85%D8%B2_IUCN_%D8%A7%D8%B2_%DA%AF%D9%88%D9%86%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%AF%D8%B1_%D9%85%D8%B1%D8%B2_%D8%AA%D9%87%D8%AF%DB%8C%D8%AF?match=*

Event Timeline

Fresh parse of the langlinks with action=parse - https://fa.wikipedia.org/w/api.php?action=parse&page=%D8%B1%D8%AF%D9%87:%D8%B3%DB%8C%D8%A7%D9%87%D9%87_%D9%82%D8%B1%D9%85%D8%B2_IUCN_%D8%A7%D8%B2_%DA%AF%D9%88%D9%86%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%AF%D8%B1_%D9%85%D8%B1%D8%B2_%D8%AA%D9%87%D8%AF%DB%8C%D8%AF&prop=langlinks

{
    "lang": "ta",
    "*": "\u0baa\u0b95\u0bc1\u0baa\u0bcd\u0baa\u0bc1:\u0baa\u0ba9\u0bcd\u0ba9\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b87\u0baf\u0bb1\u0bcd\u0b95\u0bc8\u0baa\u0bcd \u0baa\u0bbe\u0ba4\u0bc1\u0b95\u0bbe\u0baa\u0bcd\u0baa\u0bc1\u0b9a\u0bcd \u0b9a\u0b99\u0bcd\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b9a\u0bc6\u0bae\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd - \u0b85\u0b9a\u0bcd\u0b9a\u0bc1\u0bb1\u0bc1 \u0ba8\u0bbf\u0bb2\u0bc8\u0baf\u0bc8 \u0b85\u0ba3\u0bcd\u0bae\u0bbf\u0ba4\u0bcd\u0ba4 \u0b87\u0ba9\u0bae\u0bcd"
},

Getting information from the database - https://fa.wikipedia.org/w/api.php?action=query&&prop=langlinks&lllimit=max&titles=%D8%B1%D8%AF%D9%87:%D8%B3%DB%8C%D8%A7%D9%87%D9%87_%D9%82%D8%B1%D9%85%D8%B2_IUCN_%D8%A7%D8%B2_%DA%AF%D9%88%D9%86%D9%87%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%AF%D8%B1_%D9%85%D8%B1%D8%B2_%D8%AA%D9%87%D8%AF%DB%8C%D8%AF

{
    "lang": "ta",
    "*": "\u0baa\u0b95\u0bc1\u0baa\u0bcd\u0baa\u0bc1:\u0baa\u0ba9\u0bcd\u0ba9\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b87\u0baf\u0bb1\u0bcd\u0b95\u0bc8\u0baa\u0bcd \u0baa\u0bbe\u0ba4\u0bc1\u0b95\u0bbe\u0baa\u0bcd\u0baa\u0bc1\u0b9a\u0bcd \u0b9a\u0b99\u0bcd\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b9a\u0bc6\u0bae\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd - \u0b85\u0b9a\u0bcd\u0b9a\u0bc1\u0bb1\u0bc1 \u0ba8\u0bbf\u0bb2\u0bc8\u0baf\u0bc8 \u0b85\u0ba3\u0bcd\u0bae\u0bbf\u0ba4\u0bcd\u0ba4 \u0b87\u0ba9\ufffd"
},

The database has a UTF-8 replacement \ufffd which is invalid in titles. It is truncated to 255 bytes and gets the replacement.

Still seen. Tagging PE as this seems likely fall out from a Page or Title related refactor where something is perhaps now returning null instead of a quasi-valid Title. At the time of filing last month, these appeared relatively new (maybe one or two weeks back, I don't recall).