Page MenuHomePhabricator

Exception on 'View All' at Phame top-level (on upstream)
Closed, ResolvedPublic

Description

Go to https://secure.phabricator.com. I hear it's run by some pretty cool people.

Next, go to the top level Phame application and see a cool list of blogs and their posts. If you click on 'View All' next to 'Recent Posts' at the top, you get directed to https://secure.phabricator.com/phame/post/, which has this error:

Unhandled Exception ("Exception"): Cursor "667" does not identify a valid object in query "PhamePostQuery".

Note that this is only one number greater than "666 THE DEVILS NUMBER" as they call it, which is very spooky and surely significant. Please do not ban me for these terrifying revelations.

Stack trace: no

Phabricator version: idk

Related Objects

Event Timeline

thoughtpolice renamed this task from Error on 'View All' with Phame (on upstream) to Exception on 'View All' at Phame top-level (on upstream).Jun 27 2016, 3:58 PM

Post #667 has an invalid blog, so this is probably difficult/impossible for normal users to hit, but it shouldn't cause this issue. I'll see if I can reproduce it locally.

Oh, it actually should cause this issue as currently written. I'm just going to destroy the bad data until this appears in the wild in a more reachable way, I don't think there is any easy way to resolve it.

Briefly, pagination must be based on all values in the database including ones you don't have permission to see, because otherwise you couldn't page through a result list which had 1 post you could see followed by 100 you could not. This causes hard-to-resolve issues when the database includes values which can't be loaded even with an omnipotent viewer.

epriestley claimed this task.

I identified posts on invalid blogs with this query:

SELECT p.id, p.blogPHID, p.title FROM phame_post p LEFT JOIN phame_blog b ON p.blogPHID = b.phid WHERE b.id IS NULL;

They all looked like old test data that just never got cleaned up, so I used DELETE FROM phame_post WHERE phid IN (...) to nuke them. UI works now. This state should be unreachable normally.