Page MenuHomePhabricator

Error: Call to a member function serialize() on null
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
labels.normalized_message
[{reqId}] {exception_url}   Error: Call to a member function serialize() on null
error.stack_trace
from /srv/mediawiki/php-1.41.0-wmf.8/includes/parser/Parsoid/Config/PageContent.php(80)
#0 /srv/mediawiki/php-1.41.0-wmf.8/vendor/wikimedia/parsoid/src/Wt2Html/PageConfigFrame.php(27): MediaWiki\Parser\Parsoid\Config\PageContent->getContent(string)
#1 /srv/mediawiki/php-1.41.0-wmf.8/vendor/wikimedia/parsoid/src/Config/Env.php(285): Wikimedia\Parsoid\Wt2Html\PageConfigFrame->__construct(Wikimedia\Parsoid\Config\Env, MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\Parsoid\Config\SiteConfig)
#2 /srv/mediawiki/php-1.41.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php(162): Wikimedia\Parsoid\Config\Env->__construct(MediaWiki\Parser\Parsoid\Config\SiteConfig, MediaWiki\Parser\Parsoid\Config\PageConfig, MediaWiki\Parser\Parsoid\Config\DataAccess, ParserOutput, array)
#3 /srv/mediawiki/php-1.41.0-wmf.8/vendor/wikimedia/parsoid/src/Parsoid.php(216): Wikimedia\Parsoid\Parsoid->parseWikitext(MediaWiki\Parser\Parsoid\Config\PageConfig, ParserOutput, array)
#4 /srv/mediawiki/php-1.41.0-wmf.8/includes/parser/Parsoid/ParsoidOutputAccess.php(298): Wikimedia\Parsoid\Parsoid->wikitext2html(MediaWiki\Parser\Parsoid\Config\PageConfig, array, NULL, ParserOutput)
#5 /srv/mediawiki/php-1.41.0-wmf.8/includes/parser/Parsoid/ParsoidOutputAccess.php(465): MediaWiki\Parser\Parsoid\ParsoidOutputAccess->parseInternal(MediaWiki\Parser\Parsoid\Config\PageConfig, array)
#6 /srv/mediawiki/php-1.41.0-wmf.8/includes/parser/Parsoid/ParsoidOutputAccess.php(244): MediaWiki\Parser\Parsoid\ParsoidOutputAccess->parse(MediaWiki\Page\PageStoreRecord, ParserOptions, array, MediaWiki\Revision\RevisionStoreRecord)
#7 /srv/mediawiki/php-1.41.0-wmf.8/includes/jobqueue/jobs/ParsoidCachePrewarmJob.php(127): MediaWiki\Parser\Parsoid\ParsoidOutputAccess->getParserOutput(MediaWiki\Page\PageStoreRecord, ParserOptions, MediaWiki\Revision\RevisionStoreRecord, integer)
#8 /srv/mediawiki/php-1.41.0-wmf.8/includes/jobqueue/jobs/ParsoidCachePrewarmJob.php(140): ParsoidCachePrewarmJob->doParsoidCacheUpdate()
#9 /srv/mediawiki/php-1.41.0-wmf.8/extensions/EventBus/includes/JobExecutor.php(79): ParsoidCachePrewarmJob->run()
#10 /srv/mediawiki/rpc/RunSingleJob.php(77): MediaWiki\Extension\EventBus\JobExecutor->execute(array)
#11 {main}
Impact

No idea

Notes

There are few since 1.41.0-wmf.8 got deployed to all wikis on Thursday.

Event Timeline

Some example urls: /w/rest.php/os.wikipedia.org/v3/page/pagebundle/1871/107265, w/rest.php/os.wikipedia.org/v3/page/pagebundle/1874/107271, /w/rest.php/jv.wikipedia.org/v3/page/pagebundle/Kuthowinangun%2C_Kebum%C3%A8n/214173 ...

Clicking around on these revisions, I see error messages that say: "The text of this revision is missing or corrupted.". So, looks like this is a case of missing exception handling.

Arlolra triaged this task as Medium priority.

Change 926624 had a related patch set uploaded (by Arlolra; author: Arlolra):

[mediawiki/core@master] Try to getContent to check for a badrevision exception

https://gerrit.wikimedia.org/r/926624

Change 926624 merged by jenkins-bot:

[mediawiki/core@master] Check early for a badrevision exception when Parsoid tries to getContent

https://gerrit.wikimedia.org/r/926624

Post deploy,

arlolra@scandium:~$ NO_PROXY="" no_proxy="" curl --proxy scandium.eqiad.wmnet:80 http://os.wikipedia.org/w/rest.php/os.wikipedia.org/v3/page/pagebundle/1871/107265
{"message":"The text of this revision is missing or corrupted.","httpCode":410,"httpReason":"Gone"}

Change 929777 had a related patch set uploaded (by Arlolra; author: Arlolra):

[mediawiki/core@master] Catch pageConfig errors in ParsoidOutputAccess

https://gerrit.wikimedia.org/r/929777

Change 929777 merged by jenkins-bot:

[mediawiki/core@master] Catch RevisionAccessException in ParsoidOutputAccess

https://gerrit.wikimedia.org/r/929777