Page MenuHomePhabricator

MentorPageMentorManager: Wikimedia\RequestTimeout\RequestTimeoutException: The maximum execution time of 60 seconds was exceeded
Closed, InvalidPublicPRODUCTION 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.38.0-wmf.7/vendor/wikimedia/request-timeout/src/Detail/ExcimerTimerWrapper.php(59)
#0 /srv/mediawiki/php-1.38.0-wmf.7/vendor/wikimedia/request-timeout/src/Detail/ExcimerRequestTimeout.php(34): Wikimedia\RequestTimeout\Detail\ExcimerTimerWrapper->exitCriticalSection(integer)
#1 /srv/mediawiki/php-1.38.0-wmf.7/vendor/wikimedia/request-timeout/src/CriticalSectionProvider.php(134): Wikimedia\RequestTimeout\Detail\ExcimerRequestTimeout->exitCriticalSection(integer)
#2 /srv/mediawiki/php-1.38.0-wmf.7/vendor/wikimedia/request-timeout/src/CriticalSectionScope.php(57): Wikimedia\RequestTimeout\CriticalSectionProvider->Wikimedia\RequestTimeout\{closure}(integer)
#3 /srv/mediawiki/php-1.38.0-wmf.7/includes/libs/rdbms/database/Database.php(5997): Wikimedia\RequestTimeout\CriticalSectionScope->exit()
#4 /srv/mediawiki/php-1.38.0-wmf.7/includes/libs/rdbms/database/Database.php(1428): Wikimedia\Rdbms\Database->completeCriticalSection(string, Wikimedia\RequestTimeout\CriticalSectionScope)
#5 /srv/mediawiki/php-1.38.0-wmf.7/includes/libs/rdbms/database/Database.php(1323): Wikimedia\Rdbms\Database->executeQuery(string, string, integer)
#6 /srv/mediawiki/php-1.38.0-wmf.7/includes/libs/rdbms/database/Database.php(2033): Wikimedia\Rdbms\Database->query(string, string, integer)
#7 /srv/mediawiki/php-1.38.0-wmf.7/includes/libs/rdbms/database/Database.php(2133): Wikimedia\Rdbms\Database->select(array, array, array, string, array, array)
#8 /srv/mediawiki/php-1.38.0-wmf.7/includes/page/WikiPage.php(415): Wikimedia\Rdbms\Database->selectRow(array, array, array, string, array, array)
#9 /srv/mediawiki/php-1.38.0-wmf.7/includes/page/WikiPage.php(439): WikiPage->pageData(Wikimedia\Rdbms\DatabaseMysqli, array, array)
#10 /srv/mediawiki/php-1.38.0-wmf.7/includes/page/WikiPage.php(477): WikiPage->pageDataFromTitle(Wikimedia\Rdbms\DatabaseMysqli, Title, array)
#11 /srv/mediawiki/php-1.38.0-wmf.7/includes/page/WikiPage.php(756): WikiPage->loadPageData()
#12 /srv/mediawiki/php-1.38.0-wmf.7/includes/page/WikiPage.php(770): WikiPage->getLatest()
#13 /srv/mediawiki/php-1.38.0-wmf.7/includes/page/WikiPage.php(817): WikiPage->loadLastEdit()
#14 /srv/mediawiki/php-1.38.0-wmf.7/includes/page/WikiPage.php(1283): WikiPage->getRevisionRecord()
#15 /srv/mediawiki/php-1.38.0-wmf.7/extensions/GrowthExperiments/includes/Mentorship/MentorPageMentorManager.php(275): WikiPage->getParserOutput(ParserOptions)
#16 /srv/mediawiki/php-1.38.0-wmf.7/extensions/GrowthExperiments/includes/Mentorship/MentorPageMentorManager.php(302): GrowthExperiments\Mentorship\MentorPageMentorManager->getMentorsForPage(WikiPage)
#17 /srv/mediawiki/php-1.38.0-wmf.7/extensions/GrowthExperiments/includes/Mentorship/MentorManager.php(98): GrowthExperiments\Mentorship\MentorPageMentorManager->getAutoAssignedMentors()
#18 /srv/mediawiki/php-1.38.0-wmf.7/extensions/GrowthExperiments/includes/Mentorship/MentorManager.php(114): GrowthExperiments\Mentorship\MentorManager->getMentors()
#19 /srv/mediawiki/php-1.38.0-wmf.7/extensions/GrowthExperiments/includes/Mentorship/MentorManager.php(126): GrowthExperiments\Mentorship\MentorManager->getMentorsSafe()
#20 /srv/mediawiki/php-1.38.0-wmf.7/extensions/GrowthExperiments/includes/MentorDashboard/MentorDashboardDiscoveryHooks.php(51): GrowthExperiments\Mentorship\MentorManager->isMentor(User)
#21 /srv/mediawiki/php-1.38.0-wmf.7/extensions/GrowthExperiments/includes/MentorDashboard/MentorDashboardDiscoveryHooks.php(85): GrowthExperiments\MentorDashboard\MentorDashboardDiscoveryHooks->isDiscoveryEnabled(User)
#22 /srv/mediawiki/php-1.38.0-wmf.7/includes/HookContainer/HookContainer.php(160): GrowthExperiments\MentorDashboard\MentorDashboardDiscoveryHooks->onBeforePageDisplay(OutputPage, SkinVector)
#23 /srv/mediawiki/php-1.38.0-wmf.7/includes/HookContainer/HookRunner.php(935): MediaWiki\HookContainer\HookContainer->run(string, array, array)
#24 /srv/mediawiki/php-1.38.0-wmf.7/includes/OutputPage.php(2686): MediaWiki\HookContainer\HookRunner->onBeforePageDisplay(OutputPage, SkinVector)
#25 /srv/mediawiki/php-1.38.0-wmf.7/includes/MediaWiki.php(939): OutputPage->output(boolean)
#26 /srv/mediawiki/php-1.38.0-wmf.7/includes/MediaWiki.php(952): MediaWiki::{closure}()
#27 /srv/mediawiki/php-1.38.0-wmf.7/includes/MediaWiki.php(559): MediaWiki->main()
#28 /srv/mediawiki/php-1.38.0-wmf.7/index.php(53): MediaWiki->run()
#29 /srv/mediawiki/php-1.38.0-wmf.7/index.php(46): wfIndexMain()
#30 /srv/mediawiki/w/index.php(3): require(string)
#31 {main}
Impact
Notes

Details

Request URL
https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87:ZWx-65r/%D0%A7%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%BA%D0%B0

Event Timeline

Urbanecm_WMF renamed this task from Wikimedia\RequestTimeout\RequestTimeoutException: The maximum execution time of 60 seconds was exceeded to MentorPageMentorManager: Wikimedia\RequestTimeout\RequestTimeoutException: The maximum execution time of 60 seconds was exceeded.Nov 15 2021, 10:18 AM

I think this is a temporary failure on the parser's side rather than Growth's side. I tried:

[urbanecm@mwmaint1002 ~]$ mwscript shell.php ukwiki
>>> count( \MediaWiki\MediaWikiServices::getInstance()->get('GrowthExperimentsMentorManager')->getAutoAssignedMentors() ) // try to retreive the mentor list
=> 60
>>> \MediaWiki\MediaWikiServices::getInstance()->getWikiPageFactory()->newFromTitle(Title::newFromText('Вікіпедія:Кнайпа (допомога)/Наставники'))->getParserOutput(ParserOptions::newCanonical( 'canonical' ), null, true) // try to parse the mentor list page without taking cache into account
>>> ^D
Exit:  Ctrl+D
[urbanecm@mwmaint1002 ~]$ sql ukwiki --cluster=extension1 --write # delete mentor mentee relationship
wikiadmin@10.64.0.164(ukwiki)> delete from growthexperiments_mentor_mentee where gemm_mentee_id = 464811 /* Martin Urbanec (WMF) */;
Query OK, 1 row affected (0.001 sec)

wikiadmin@10.64.0.164(ukwiki)> Bye
[urbanecm@mwmaint1002 ~]$ mwscript shell.php ukwiki # delete cached entry for the mentee and ensure web interface shows a new mentor
>>> $store = \MediaWiki\MediaWikiServices::getInstance()->get('GrowthExperimentsMentorStore')
=> GrowthExperiments\Mentorship\Store\DatabaseMentorStore {#3290}
>>> sudo $key = $store->makeCacheKey(User::newFromName('Martin Urbanec (WMF)'), 'primary')
=> "ukwiki:GrowthExperiments:MentorStore:GrowthExperiments\Mentorship\Store\MentorStore:Mentee:464811:Mentor:primary"
>>> ObjectCache::getLocalClusterInstance()->delete( $key )
>>> ^D
Exit:  Ctrl+D
[urbanecm@mwmaint1002 ~]$

and everything works. Appears to happen just twice. I'm inclined to close as Invalid and hope it doesn't reccur.

kostajh added a subscriber: kostajh.

I think this is a temporary failure on the parser's side rather than Growth's side. I tried:

[urbanecm@mwmaint1002 ~]$ mwscript shell.php ukwiki
>>> count( \MediaWiki\MediaWikiServices::getInstance()->get('GrowthExperimentsMentorManager')->getAutoAssignedMentors() ) // try to retreive the mentor list
=> 60
>>> \MediaWiki\MediaWikiServices::getInstance()->getWikiPageFactory()->newFromTitle(Title::newFromText('Вікіпедія:Кнайпа (допомога)/Наставники'))->getParserOutput(ParserOptions::newCanonical( 'canonical' ), null, true) // try to parse the mentor list page without taking cache into account
>>> ^D
Exit:  Ctrl+D
[urbanecm@mwmaint1002 ~]$ sql ukwiki --cluster=extension1 --write # delete mentor mentee relationship
wikiadmin@10.64.0.164(ukwiki)> delete from growthexperiments_mentor_mentee where gemm_mentee_id = 464811 /* Martin Urbanec (WMF) */;
Query OK, 1 row affected (0.001 sec)

wikiadmin@10.64.0.164(ukwiki)> Bye
[urbanecm@mwmaint1002 ~]$ mwscript shell.php ukwiki # delete cached entry for the mentee and ensure web interface shows a new mentor
>>> $store = \MediaWiki\MediaWikiServices::getInstance()->get('GrowthExperimentsMentorStore')
=> GrowthExperiments\Mentorship\Store\DatabaseMentorStore {#3290}
>>> sudo $key = $store->makeCacheKey(User::newFromName('Martin Urbanec (WMF)'), 'primary')
=> "ukwiki:GrowthExperiments:MentorStore:GrowthExperiments\Mentorship\Store\MentorStore:Mentee:464811:Mentor:primary"
>>> ObjectCache::getLocalClusterInstance()->delete( $key )
>>> ^D
Exit:  Ctrl+D
[urbanecm@mwmaint1002 ~]$

and everything works. Appears to happen just twice. I'm inclined to close as Invalid and hope it doesn't reccur.

Agreed with that. We can keep an eye on it in case it appears again.