Page MenuHomePhabricator

Problems encountered when enabling Flow on Chinese Wikipedia
Closed, ResolvedPublic

Description

User:Qsx753698 on Chinese Wikipedia reported that s/he cannot enable Flow on the user talk page. The tool have moved the original discussions to the subpage but did not enable Flow afterwards. After some retries, the tool have enabled Flow on the subpage https://zh.wikipedia.org/wiki/User talk:Qsx753698/Flow 存档 1 instead.

After checking https://zh.wikipedia.org/wiki/Special:Contributions/Flow_talk_page_manager, there are some more similar cases.

I have not tried to reproduce the problem.

Please consider investigating. Thanks in advance.

Event Timeline

Lakokat raised the priority of this task from to Needs Triage.
Lakokat updated the task description. (Show Details)
Lakokat added a project: StructuredDiscussions.
Lakokat subscribed.
Restricted Application added subscribers: StudiesWorld, Aklapper. · View Herald Transcript

Flow is active as a beta Feature on zhwp. 261 users are trying this feature, and there is at least 12 accounts with issues. I haven't seen common features between all cases (not the date, not a special character...).

I investigated the most recent case: https://zh.wikipedia.org/w/index.php?title=User_talk:Ww71338ww/%E5%AD%98%E6%A1%A3_1&action=history was archived on Nov 8 at 10:34 UTC without a Flow board being created.

Exception logs for zhwiki show 38 DB connection errors occurred during that minute, 35 of which occurred in the 20 seconds between 10:34:39 and 10:34:59. Additionally, the Flow conversion failed with the following error:

2015-11-08 10:34:53 mw1105 zhwiki exception ERROR: [35130b54] /wiki/Special:%E5%8F%82%E6%95%B0%E8%AE%BE%E7%BD%AE   Flow\Import\ImportException from line 174 of /srv/mediawiki/php-1.27.0-wmf.5/extensions/Flow/includes/Import/OptInController.php: 用户被封禁 {"exception_id":"35130b54"} 
[Exception Flow\Import\ImportException] (/srv/mediawiki/php-1.27.0-wmf.5/extensions/Flow/includes/Import/OptInController.php:174) 用户被封禁
  #0 /srv/mediawiki/php-1.27.0-wmf.5/extensions/Flow/includes/Import/OptInController.php(293): Flow\Import\OptInController->fatal(Message)
  #1 /srv/mediawiki/php-1.27.0-wmf.5/extensions/Flow/includes/Import/OptInController.php(92): Flow\Import\OptInController->createFlowBoard(Title, string)
  #2 /srv/mediawiki/php-1.27.0-wmf.5/extensions/Flow/includes/Import/OptInUpdate.php(48): Flow\Import\OptInController->enable(Title, User)
  #3 /srv/mediawiki/php-1.27.0-wmf.5/includes/deferred/DeferredUpdates.php(129): Flow\Import\OptInUpdate->doUpdate()
  #4 /srv/mediawiki/php-1.27.0-wmf.5/includes/MediaWiki.php(728): DeferredUpdates::doUpdates(string)
  #5 /srv/mediawiki/php-1.27.0-wmf.5/includes/MediaWiki.php(575): MediaWiki->restInPeace(string)
  #6 [internal function]: Closure$MediaWiki::doPostOutputShutdown()
  #7 {main}

The error message 用户被封禁 is the blockedtitle error message; the English translation is User is blocked. But that doesn't make any sense, because neither User:Flow talk page manager nor User:Ww71338ww are (or have ever been) blocked on zhwiki according to the block logs. Also, the page move right before that did go through, and the bot managed to create other Flow boards just fine.

I think the misleading error message might come from this code:

		// Check mediawiki core permissions for title protection, blocked
		// status, etc.
		if ( !$workflow->userCan( 'edit', $context->getUser() ) ) {
			reset( $interestedBlocks )->addError( 'block', wfMessage( 'blockedtitle' ) );
			return array();
		}

We should probably change that to use getUserPermissionsErrors() so we can report the real error, not a fake "user is blocked" error. Right now, it's impossible for me to tell what the error was, although I can speculate that it may be related to the DB connection errors that happened at the same time.

  • Ww71338ww: bogus "user is blocked" error, probably related to DB connection errors (lost connection), see previous comment
  • Zhanghandsome: Same as Ww71338
  • ForwardXu: DB error (lock timeout) occurred for that page, as well as a Parsoid error
  • Benpigchu, Vector2001, Stamp711, Lrioncdkay, Wind905, Fxczero: Bogus "user is blocked" error
  • Edward yb, Jay8g: Nothing in the logs

@Lakokat @Trizek-WMF: Could you ask the affected user to turn the beta feature off and then back on? That should fix their talk page.

@Catrope: I have notified them. User:Qsx753698 have tried and it has failed again.

Also, User:Markmingjie failed to restore his flow archive today.

Quick update: User:Zhanghandsome had some luck today. Another failed, though.

We backported a patch that fixes the error message problem (i.e. gives us real error messages rather than always saying "user is blocked"). It'll be deployed to zhwiki on Thursday between 19:00 and 21:00 UTC (about 20 hours from now). So let's try again after that, and see what error messages we get.

This is new:

Screen Shot 2015-11-20 at 10.11.43 PM.png (476×1 px, 82 KB)

Now, after flipping the preference a few times, it's back to just being a redlink. Oh well, it's not like I have any connection to zhwiki.

I found the relevant exception in the logs. I won't post the details here because they contain the user's IP address, but the error code is globalblocking-ipblocked-range; apparently the user was using an IP address that is globally range-blocked. For now, I've given the Flow talk page manager user the ipblock-exempt right (log). I think it's likely that that was the underlying problem for most of these failures, so hopefully it'll work better now.

In the long term, we should consider performing these page moves and board creations as the user themselves instead of as the Flow talk page manager user to avoid bugs like these.

This is new:

Screen Shot 2015-11-20 at 10.11.43 PM.png (476×1 px, 82 KB)

Now, after flipping the preference a few times, it's back to just being a redlink. Oh well, it's not like I have any connection to zhwiki.

For some reason I wasn't able to find an exception with the ID you posted, but I did find a number of very strange-looking Flow errors a few minutes later:

2015-11-21 06:12:39 mw1165 zhwiki exception ERROR: [8cbc7a3a] /wiki/Special:%E5%8F%82%E6%95%B0%E8%AE%BE%E7%BD%AE   Flow\Exception\DataModelException from line 223 of /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/Storage/DbStorage.php: Update not allowed on: rev_content_url, rev_flags {"exception_id":"8cbc7a3a"} 
[Exception Flow\Exception\DataModelException] (/srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/Storage/DbStorage.php:223) Update not allowed on: rev_content_url, rev_flags
  #0 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/Storage/RevisionStorage.php(488): Flow\Data\Storage\DbStorage->calcUpdates(array, array)
  #1 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/Storage/RevisionStorage.php(501): Flow\Data\Storage\RevisionStorage->calcUpdates(array, array)
  #2 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ObjectManager.php(293): Flow\Data\Storage\RevisionStorage->update(array, array)
  #3 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ObjectManager.php(276): Flow\Data\ObjectManager->updateSingle(Flow\Model\Header, array)
  #4 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ObjectManager.php(166): Flow\Data\ObjectManager->update(array, array)
  #5 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ObjectManager.php(143): Flow\Data\ObjectManager->multiPut(array, array)
  #6 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ManagerGroup.php(80): Flow\Data\ObjectManager->put(Flow\Model\Header, array)
  #7 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/BoardMover.php(108): Flow\Data\ManagerGroup->put(Flow\Model\Header, array)
  #8 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/Hooks.php(1653): Flow\BoardMover->prepareMove(integer, Title)
  #9 /srv/mediawiki/php-1.27.0-wmf.7/includes/Hooks.php(204): FlowHooks::onTitleMove(Title, Title, User)
  #10 /srv/mediawiki/php-1.27.0-wmf.7/includes/MovePage.php(231): Hooks::run(string, array)
  #11 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Import/OptInController.php(143): MovePage->move(User, string, boolean)
  #12 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Import/OptInController.php(344): Flow\Import\OptInController->movePage(Title, Title, string)
  #13 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Import/OptInController.php(90): Flow\Import\OptInController->restoreExistingFlowBoard(Title, Title, string)
  #14 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Import/OptInUpdate.php(48): Flow\Import\OptInController->enable(Title, User)
  #15 /srv/mediawiki/php-1.27.0-wmf.7/includes/deferred/DeferredUpdates.php(129): Flow\Import\OptInUpdate->doUpdate()
  #16 /srv/mediawiki/php-1.27.0-wmf.7/includes/MediaWiki.php(728): DeferredUpdates::doUpdates(string)
  #17 /srv/mediawiki/php-1.27.0-wmf.7/includes/MediaWiki.php(575): MediaWiki->restInPeace(string)
  #18 [internal function]: Closure$MediaWiki::doPostOutputShutdown()
  #19 {main}

@mattflaschen, does that ring a bell?

Here it is again:

Screen Shot 2015-11-22 at 10.04.18 PM.png (508×1 px, 80 KB)

I seem to get this the first time I try to change the setting in a session. After that, the wikitext talk page comes back once, and then every change (both ways) triggers a redlink.

Just like Roan previously, I also can't find an exception with that id. But a minute later, this same error:

2015-11-23 06:04:59 mw1248 zhwiki exception ERROR: [7330c9bb] /wiki/Special:%E5%8F%82%E6%95%B0%E8%AE%BE%E7%BD%AE   Flow\Exception\DataModelException from line 223 of /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/Storage/DbStorage.php: Update not allowed on: rev_content_url, rev_flags {"exception_id":"7330c9bb"}
[Exception Flow\Exception\DataModelException] (/srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/Storage/DbStorage.php:223) Update not allowed on: rev_content_url, rev_flags
  #0 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/Storage/RevisionStorage.php(488): Flow\Data\Storage\DbStorage->calcUpdates(array, array)
  #1 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/Storage/RevisionStorage.php(501): Flow\Data\Storage\RevisionStorage->calcUpdates(array, array)
  #2 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ObjectManager.php(293): Flow\Data\Storage\RevisionStorage->update(array, array)
  #3 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ObjectManager.php(276): Flow\Data\ObjectManager->updateSingle(Flow\Model\Header, array)
  #4 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ObjectManager.php(166): Flow\Data\ObjectManager->update(array, array)
  #5 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ObjectManager.php(143): Flow\Data\ObjectManager->multiPut(array, array)
  #6 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Data/ManagerGroup.php(80): Flow\Data\ObjectManager->put(Flow\Model\Header, array)
  #7 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/BoardMover.php(108): Flow\Data\ManagerGroup->put(Flow\Model\Header, array)
  #8 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/Hooks.php(1653): Flow\BoardMover->prepareMove(integer, Title)
  #9 /srv/mediawiki/php-1.27.0-wmf.7/includes/Hooks.php(204): FlowHooks::onTitleMove(Title, Title, User)
  #10 /srv/mediawiki/php-1.27.0-wmf.7/includes/MovePage.php(231): Hooks::run(string, array)
  #11 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Import/OptInController.php(143): MovePage->move(User, string, boolean)
  #12 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Import/OptInController.php(344): Flow\Import\OptInController->movePage(Title, Title, string)
  #13 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Import/OptInController.php(90): Flow\Import\OptInController->restoreExistingFlowBoard(Title, Title, string)
  #14 /srv/mediawiki/php-1.27.0-wmf.7/extensions/Flow/includes/Import/OptInUpdate.php(48): Flow\Import\OptInController->enable(Title, User)
  #15 /srv/mediawiki/php-1.27.0-wmf.7/includes/deferred/DeferredUpdates.php(129): Flow\Import\OptInUpdate->doUpdate()
  #16 /srv/mediawiki/php-1.27.0-wmf.7/includes/MediaWiki.php(728): DeferredUpdates::doUpdates(string)
  #17 /srv/mediawiki/php-1.27.0-wmf.7/includes/MediaWiki.php(575): MediaWiki->restInPeace(string)
  #18 [internal function]: Closure$MediaWiki::doPostOutputShutdown()
  #19 {main}

OK, I seem to have a reproducible series of events.

  1. Start a new session (with Flow turned on and your talk page a redlink)
  2. Turn off Flow: still a redlink
  3. Turn on Flow: get the weird error
  4. Turn off Flow: get your wikitext talk page back
  5. Turn on Flow: redlink
  6. Turn off Flow: redlink
  7. steps 5-6 repeat until you end your session, then all steps repeat

Today's error:

Screen Shot 2015-11-23 at 11.10.42 AM.png (344×1 px, 51 KB)

@mattflaschen, does that ring a bell?

Changing rev_content is not allowed to avoid data corruption.

I think I know the cause. This is probably a regression caused by e2f0a207b6b0edcf0de01cd77fc91227b72d4f9c . It's trying to create a new revision of the header to reflect the page move, but it fails because null revisions are now blocked.

There's one part that's unclear to me (if it's just returning $this, why is it attempting to change rev_content?)

@mattflaschen @Catrope @matthiasmullie
I have another problem. I started using Flow at 11 September, 2015 by request at mw. But when I want to cancel it now, there's something wrong that I can't move the previous page. Is there anybody could move User_talk:Cosine02 to User_talk:Cosine02/2015Q4, then move User_talk:Cosine02/存档 1 to User_talk:Cosine02? Thank you.
P.S: An local admin said, maybe when there's edit on Flow page, it could not be moved; when there's no edit, you can cancel it, but you can't enable it again.

In T118567#1911672, @Cosine02 wrote:

Anyone here?

Likely though it's holiday season so replies might take longer.

In T118567#1904504, @Cosine02 wrote:

@mattflaschen @Catrope @matthiasmullie
I have another problem. I started using Flow at 11 September, 2015 by request at mw. But when I want to cancel it now, there's something wrong that I can't move the previous page. Is there anybody could move User_talk:Cosine02 to User_talk:Cosine02/2015Q4, then move User_talk:Cosine02/存档 1 to User_talk:Cosine02? Thank you.
P.S: An local admin said, maybe when there's edit on Flow page, it could not be moved; when there's no edit, you can cancel it, but you can't enable it again.

Could you try this move again? T126701: Error in Flow page move is now fixed, so I'm hoping Flow moves will work now.

Stang moved this task from Backlog to Closed on the Chinese-Sites board.
Stang unsubscribed.