Page MenuHomePhabricator

Flow: ContributionsFormatter times out for a certain user
Open, MediumPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   Wikimedia\RequestTimeout\RequestTimeoutException: The maximum execution time of 60 seconds was exceeded
exception.trace
from /srv/mediawiki/php-1.37.0-wmf.3/vendor/wikimedia/request-timeout/src/Detail/ExcimerTimerWrapper.php(97)
#0 /srv/mediawiki/php-1.37.0-wmf.3/vendor/wikimedia/request-timeout/src/Detail/ExcimerTimerWrapper.php(72): Wikimedia\RequestTimeout\Detail\ExcimerTimerWrapper->onTimeout(integer)
#1 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Parsoid/ContentFixer.php(70): Wikimedia\RequestTimeout\Detail\ExcimerTimerWrapper->Wikimedia\RequestTimeout\Detail\{closure}(integer)
#2 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Conversion/Utils.php(471): Flow\Parsoid\ContentFixer->applyToDom(DOMDocument, Title)
#3 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Parsoid/Fixer/WikiLinkFixer.php(81): Flow\Conversion\Utils::getInnerHtml(DOMElement)
#4 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Parsoid/ContentFixer.php(79): Flow\Parsoid\Fixer\WikiLinkFixer->apply(DOMElement, Title)
#5 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Parsoid/ContentFixer.php(56): Flow\Parsoid\ContentFixer->applyToDom(DOMDocument, Title)
#6 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Parsoid/ContentFixer.php(42): Flow\Parsoid\ContentFixer->apply(string, Title)
#7 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Templating.php(157): Flow\Parsoid\ContentFixer->getContent(Flow\Model\PostRevision)
#8 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Formatter/RevisionFormatter.php(954): Flow\Templating->getContent(Flow\Model\PostRevision, string)
#9 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Formatter/RevisionFormatter.php(903): Flow\Formatter\RevisionFormatter->processParam(string, Flow\Model\PostRevision, Flow\Model\UUID, ContribsPager, Flow\Formatter\ContributionsRow)
#10 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Formatter/RevisionFormatter.php(244): Flow\Formatter\RevisionFormatter->buildProperties(Flow\Model\UUID, Flow\Model\PostRevision, ContribsPager, Flow\Formatter\ContributionsRow)
#11 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Formatter/ContributionsFormatter.php(26): Flow\Formatter\RevisionFormatter->formatApi(Flow\Formatter\ContributionsRow, ContribsPager, string)
#12 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Hooks.php(840): Flow\Formatter\ContributionsFormatter->format(Flow\Formatter\ContributionsRow, ContribsPager)
#13 /srv/mediawiki/php-1.37.0-wmf.3/extensions/Flow/includes/Hooks.php(875): Flow\Hooks::onDeletedContributionsLineEnding(ContribsPager, string, Flow\Formatter\ContributionsRow, array)
#14 /srv/mediawiki/php-1.37.0-wmf.3/includes/HookContainer/HookContainer.php(330): Flow\Hooks::onContributionsLineEnding(ContribsPager, string, Flow\Formatter\ContributionsRow, array, array)
#15 /srv/mediawiki/php-1.37.0-wmf.3/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array)
#16 /srv/mediawiki/php-1.37.0-wmf.3/includes/HookContainer/HookRunner.php(1354): MediaWiki\HookContainer\HookContainer->run(string, array)
#17 /srv/mediawiki/php-1.37.0-wmf.3/includes/specials/pagers/ContribsPager.php(808): MediaWiki\HookContainer\HookRunner->onContributionsLineEnding(ContribsPager, string, Flow\Formatter\ContributionsRow, array, array)
#18 /srv/mediawiki/php-1.37.0-wmf.3/includes/pager/IndexPager.php(611): ContribsPager->formatRow(Flow\Formatter\ContributionsRow)
#19 /srv/mediawiki/php-1.37.0-wmf.3/includes/specials/SpecialContributions.php(324): IndexPager->getBody()
#20 /srv/mediawiki/php-1.37.0-wmf.3/includes/poolcounter/PoolCounterWorkViaCallback.php(74): SpecialContributions->{closure}()
#21 /srv/mediawiki/php-1.37.0-wmf.3/includes/poolcounter/PoolCounterWork.php(162): PoolCounterWorkViaCallback->doWork()
#22 /srv/mediawiki/php-1.37.0-wmf.3/includes/specials/SpecialContributions.php(339): PoolCounterWork->execute()
#23 /srv/mediawiki/php-1.37.0-wmf.3/includes/specialpage/SpecialPage.php(646): SpecialContributions->execute(string)
#24 /srv/mediawiki/php-1.37.0-wmf.3/includes/specialpage/SpecialPageFactory.php(1397): SpecialPage->run(string)
#25 /srv/mediawiki/php-1.37.0-wmf.3/includes/MediaWiki.php(313): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext)
#26 /srv/mediawiki/php-1.37.0-wmf.3/includes/MediaWiki.php(916): MediaWiki->performRequest()
#27 /srv/mediawiki/php-1.37.0-wmf.3/includes/MediaWiki.php(550): MediaWiki->main()
#28 /srv/mediawiki/php-1.37.0-wmf.3/index.php(53): MediaWiki->run()
#29 /srv/mediawiki/php-1.37.0-wmf.3/index.php(46): wfIndexMain()
#30 /srv/mediawiki/w/index.php(3): require(string)
#31 {main}
Impact
Notes

Details

Request URL
https://pl.wikipedia.org/wiki/Specjalna:Wk%C5%82ad/ActisTestantibus

Event Timeline

kostajh subscribed.

Looks like that Special:Contribution lookup with that username fails consistently.

kostajh triaged this task as Medium priority.May 4 2021, 1:46 PM
Tgr renamed this task from Wikimedia\RequestTimeout\RequestTimeoutException: The maximum execution time of 60 seconds was exceeded to Flow: ContributionsFormatter times out for a certain user.May 6 2021, 11:49 AM

It seems Flow is fetching the content of a page and processing it with a DOM, while rendering the the Contributions list. Is that true? If so, why is it doing that in the first place? That seems like something bound to fail given there are N pages involved, but our latency budget is tuned for 1.

See also T282605 which is about the fetching of text from ExternalStore. Might be related.