Page MenuHomePhabricator

Flow: a garbled post must not prevent loading its topic or Board
Closed, ResolvedPublic


When bug 59884 was happening, the garbled cache (or database?) from failed posts meant nobody could view a board or topic, it would fail with

Missing Posts: {"14":"050de380f7b8f1dc09e4842b2b77e6f9"}

The user would see this in an errorbox at "Earlier posts" if the problematic post was paginated into view, or would just see "Failed to load the requested data" and this exception would be in exception.log.

We fixed that bug so that new posts worked, and Benny manually located and deleted the garbled cache keys so people could view boards again.

But, there are any number of ways a single post might fail to load (see e.g. bug 57987). Flow must load the other posts in the topic and the other nine posts in the board. It should display an errorbox about the missing post in context giving its UUID as above (cute fail icon optional) so the user knows about the missing post (unlike Facebook's "Ehh, go read the other fluff"!), and still log the problem somewhere prominent (card #590?) so operations counts it as a severe problem.

There's a comment in includes/Data/RootPostLoader.php

// TODO: fake up a pseudo-post to hold the children? At this point in
// dev its probably a bug we want to see.
throw new InvalidDataException( 'Missing Posts: ' . json_encode( $missing ), 'fail-load-data' );

but now we mustn't break an entire Flow board in production over one problem post.

Besides the post in bug 59884 I've left a garbled post on test2wiki, at Don't clean this up, it's a nice test to verify better handling of this problem.

Version: master
Severity: major



Event Timeline

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

bingle-admin wrote:

The WMF core features team tracks this bug on Mingle card, but people from the community are welcome to contribute here and in Gerrit.

Change 107151 had a related patch set uploaded by Matthias Mullie:
Create stub post object instead of failing completely

Change 107151 merged by jenkins-bot:
Create stub post object instead of failing completely

merged, will be deployed on the jan 30 train.