Page MenuHomePhabricator

Flow: fatal FlowException from Special:Contribution on production test servers
Closed, ResolvedPublic

Description

Saw these two in fatal.log on test servers. I can still recreate the problem by visiting the URL.

The trigger for the fatal may be garbled posts left over from bug 59884, but I think there's a problem in the exception handling masking it. (We need tests for assertions, write a test that fails and assert it should throw FlowException.)

I think the proximate fix might be to add the single line
use Flow\Exception\FlowException;
to includes/WorkflowLoader.php , or instead to namespace the exception.

throw new \Flow\Exception\FlowException...

phpcs doesn't spot the problem.

I scanned for similar exception handling errors and noticed:
includes/View/History/HistoryRecord.php has an unused use MWException
includes/Data/MultiDimArray.php has an unwanted \ prefix on throw new \InvalidInputException

The code is trying to throw 'Interwiki not implemented' because $this->wiki !== wfWikiId(), which is strange because Special:Contributions doesn't try to list contributions from other wikis. Again, the post might be garbled. The exception would be a lot more useful if it printed

$this->wiki;

Here are the fatal.log lines:

[10-Jan-2014 15:07:40] Fatal error: Class 'Flow\Model\FlowException' not found at /usr/local/apache/common-local/php-1.23wmf10/extensions/Flow/includes/Model/Workflow.php on line 96
Server: mw1017
Method: GET
URL: http://test.wikipedia.org/wiki/Special:Contributions/103.6.159.113
Cookie: centralnotice_bucket=1-4.2; uls-previous-languages=%5B%22en%22%5D; mediaWiki.user.sessionId=WEsSugO0VRXL8dYyGA9Vd47JrkEhm3Bs
Backtrace:
#0 /usr/local/apache/common-local/php-1.23wmf10/extensions/Flow/includes/Model/Workflow.php(96): Flow\Model\Workflow::getArticleTitle()
#1 /usr/local/apache/common-local/php-1.23wmf10/extensions/Flow/includes/Contributions/Query.php(214): Flow\Model\Workflow->getArticleTitle()
#2 /usr/local/apache/common-local/php-1.23wmf10/extensions/Flow/includes/Contributions/Query.php(111): Flow\Contributions\Query->buildResult(Object(ContribsPager), Object(Flow\Model\PostRevision), 'topic')
#3 /usr/local/apache/common-local/php-1.23wmf10/extensions/Flow/Hooks.php(337): Flow\Contributions\Query->getResults(Object(ContribsPager), '', 51, false)
#4 [internal function]: FlowHooks::onContributionsQuery(Array, Object(ContribsPager), '', 51, false)
#5 /usr/local/apache/common-local/php-1.23wmf10/includes/Hooks.php(199): call_user_func_array('FlowHooks::onCo...', Array)
#6 /usr/local/apache/common-local/php-1.23wmf10/includes/GlobalFunctions.php(4032): Hooks::run('ContribsPager::...', Array)
#7 /usr/local/apache/common-local/php-1.23wmf10/includes/specials/SpecialContributions.php(691): wfRunHooks('ContribsPager::...', Array)
#8 /usr/local/apache/common-local/php-1.23wmf10/includes/Pager.php(226): ContribsPager->reallyDoQuery('', 51, false)
#9 /usr/local/apache/common-local/php-1.23wmf10/includes/Pager.php(552): IndexPager->doQuery()
#10 /usr/local/apache/common-local/php-1.23wmf10/includes/specials/SpecialContributions.php(187): IndexPager->getNumRows()
#11 /usr/local/apache/common-local/php-1.23wmf10/includes/specialpage/SpecialPage.php(374): SpecialContributions->execute('103.6.159.113')
#12 /usr/local/apache/common-local/php-1.23wmf10/includes/SpecialPageFactory.php(487): SpecialPage->run('103.6.159.113')
#13 /usr/local/apache/common-local/php-1.23wmf10/includes/Wiki.php(298): SpecialPageFactory::executePath(Object(Title), Object(RequestContext))
#14 /usr/local/apache/common-local/php-1.23wmf10/includes/Wiki.php(599): MediaWiki->performRequest()
#15 /usr/local/apache/common-local/php-1.23wmf10/includes/Wiki.php(460): MediaWiki->main()
#16 /usr/local/apache/common-local/php-1.23wmf10/index.php(49): MediaWiki->run()
#17 /usr/local/apache/common-local/w/index.php(3): require('/usr/local/apac...')
#18 {main}

and later
[10-Jan-2014 15:07:40] Fatal error: Class 'Flow\Model\FlowException' not found at /usr/local/apache/common-local/php-1.23wmf10/extensions/Flow/includes/Model/Workflow.php on line 96
Server: mw1017
Method: GET
URL: http://test.wikipedia.org/wiki/Special:Contributions/103.6.159.113
Cookie: centralnotice_bucket=1-4.2; uls-previous-languages=%5B%22en%22%5D; mediaWiki.user.sessionId=WEsSugO0VRXL8dYyGA9Vd47JrkEhm3Bs

with identical backtrace.


Version: master
Severity: normal
URL: https://test.wikipedia.org/wiki/Special:Contributions/103.6.159.113

Details

Reference
bz59940

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 2:38 AM
bzimport set Reference to bz59940.
bzimport added a subscriber: Unknown Object (MLST).

Change 106869 had a related patch set uploaded by Spage:
Fix fatal from exception, and improve its message

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

Change 106869 merged by jenkins-bot:
Fix fatal from exception, and improve its message

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

merged, will deploy to prod jan 30