Page MenuHomePhabricator

Flow\Exception\InvalidInputException displayed after enable/disable Flow talk page beta feature
Closed, DuplicatePublic

Description

My user talk in wikidata don't working.

it happened when I chose to "Flow" my user talk on the Beta, and then I decided to cancal it.

suddenly, InvalidInputException appears in my user talk page.

לדוברי עברית:
בהעדפות => בטא החלטתי להפעיל את הזרימה בדף שיחה שלי, והיא הופעלה מידית. לאחר מכן, החלטתי שאני לא רוצה "לכפות" את הזרימה על אחרים, ולהשאיר את הקוד ויקי הישן והטוב, אז ביטלתי. אחרי זה, הופיעה הודעת האזהרה הזאת.

Thanks,
Or

[V-A55ApAAEAAAHX7P9AAAAAM] 2016-10-01 22:34:12: Fatal exception of type "Flow\Exception\InvalidInputException"

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

I can't see any sign of these exceptions in any of the logs...

there appears to be a related error in the logs:

/wiki/Special:Preferences   MWException from line 1555 of /srv/mediawiki/php-1.28.0-wmf.20/includes/Revision.php: Content of revision  (User_talk:Doror/Archive_1) could not be loaded for validation!
[Exception MWException] (/srv/mediawiki/php-1.28.0-wmf.20/includes/Revision.php:1555) Content of revision  (User_talk:Doror/Archive_1) could not be loaded for validation!
  #0 /srv/mediawiki/php-1.28.0-wmf.20/includes/Revision.php(1410): Revision->checkContentModel()
  #1 /srv/mediawiki/php-1.28.0-wmf.20/includes/MovePage.php(522): Revision->insertOn(DatabaseMysqli)
  #2 /srv/mediawiki/php-1.28.0-wmf.20/includes/MovePage.php(260): MovePage->moveToInternal(User, Title, string, boolean)
  #3 /srv/mediawiki/php-1.28.0-wmf.20/extensions/Flow/includes/Import/OptInController.php(142): MovePage->move(User, string, boolean)
  #4 /srv/mediawiki/php-1.28.0-wmf.20/extensions/Flow/includes/Import/OptInController.php(113): Flow\Import\OptInController->movePage(Title, Title, string)
  #5 /srv/mediawiki/php-1.28.0-wmf.20/extensions/Flow/includes/Import/OptInUpdate.php(50): Flow\Import\OptInController->disable(Title)
  #6 /srv/mediawiki/php-1.28.0-wmf.20/includes/deferred/DeferredUpdates.php(247): Flow\Import\OptInUpdate->doUpdate()
  #7 /srv/mediawiki/php-1.28.0-wmf.20/includes/deferred/DeferredUpdates.php(209): DeferredUpdates::runUpdate(Flow\Import\OptInUpdate, LBFactoryMulti, integer)
  #8 /srv/mediawiki/php-1.28.0-wmf.20/includes/deferred/DeferredUpdates.php(125): DeferredUpdates::execute(array, string, integer)
--
  #2 /srv/mediawiki/php-1.28.0-wmf.20/includes/api/ApiQueryBase.php(375): Database->select(array, array, array, string, array, array)
  #3 /srv/mediawiki/php-1.28.0-wmf.20/includes/api/ApiQueryRevisions.php(316): ApiQueryBase->select(string)
  #4 /srv/mediawiki/php-1.28.0-wmf.20/includes/api/ApiQueryRevisionsBase.php(43): ApiQueryRevisions->run()
  #5 /srv/mediawiki/php-1.28.0-wmf.20/includes/api/ApiQuery.php(251): ApiQueryRevisionsBase->execute()
  #6 /srv/mediawiki/php-1.28.0-wmf.20/includes/api/ApiMain.php(1427): ApiQuery->execute()
  #7 /srv/mediawiki/php-1.28.0-wmf.20/includes/api/ApiMain.php(511): ApiMain->executeAction()
  #8 /srv/mediawiki/php-1.28.0-wmf.20/includes/api/ApiMain.php(482): ApiMain->executeActionWithErrorHandling()
  #9 /srv/mediawiki/php-1.28.0-wmf.20/api.php(83): ApiMain->execute()

it happened when I chose to "Flow" my user talk on the Beta, and then I decided to cancal it.

How did you cancel it?

Seems likely to be related to T147098: Exception when getting TTL export of a deleted entity which was caused by rMW00bee029718f: Add MWExceptionRenderer class and decouple DBError. I made a fix in rMW74498116c045: MWExceptionHandler: Restore delegation to MWException::report for this issue, but looking at Flow\Exception\FlowException I don't think my fix is going to be sufficient because FlowException doesn't implement report().

@aaron the exception stack used in Flow is impacted pretty horribly by the MWExceptionRenderer change. I think we may need to back up and rethink how that is handled for decoupling things from MWException.

The lack of log output seems to be by design. Flow\Exception\InvalidInputException overrides MWException::isLoggable to return false. It looks like it is intended to change the http status code and write to an alternate OutputPage. It smells like an ajax callback signaling system.

Change 313680 had a related patch set uploaded (by BryanDavis):
MWException: restore prior render() logic

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

Change 313680 merged by jenkins-bot:
MWException: restore prior render() logic

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

it happened when I chose to "Flow" my user talk on the Beta, and then I decided to cancal it.

How did you cancel it?

I canceled it in the Beta, in the same place that I chose to "Flow" my user talk.

Aklapper triaged this task as High priority.Oct 2 2016, 8:11 AM

Change 313770 had a related patch set uploaded (by BryanDavis):
MWException: restore prior render() logic

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

Steps to recreate:

  1. Have talk page content on a wiki with Flow talk page beta feature
  2. Enable Flow talk page beta feature
  3. Add something to new talk page flow board (not positive that this step is required)
  4. Disable Flow talk page beta feature
  5. Visit non-Flow talk page
  6. Fatal exception of type "Flow\Exception\InvalidInputException"
bd808 renamed this task from My user talk don't working to Flow\Exception\InvalidInputException displayed after enable/disable Flow talk pabe beta feature.Oct 2 2016, 8:40 PM
bd808 added subscribers: Trizek-WMF, Ashot1997.
bd808 renamed this task from Flow\Exception\InvalidInputException displayed after enable/disable Flow talk pabe beta feature to Flow\Exception\InvalidInputException displayed after enable/disable Flow talk page beta feature.Oct 3 2016, 1:12 AM

Change 313770 merged by jenkins-bot:
MWException: restore prior render() logic

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

Mentioned in SAL (#wikimedia-operations) [2016-10-03T18:47:56Z] <catrope@tin> Synchronized php-1.28.0-wmf.20/includes/exception/MWExceptionHandler.php: Restore prior render() logic (T147122) (duration: 00m 48s)