Page MenuHomePhabricator

Fix a fatal in Diviner when atoms extend ghosts
ClosedPublic

Authored by epriestley on Jun 15 2015, 3:03 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Sep 4, 11:09 PM
Unknown Object (File)
Wed, Sep 4, 8:13 PM
Unknown Object (File)
Mon, Sep 2, 1:48 AM
Unknown Object (File)
Sat, Aug 31, 7:13 PM
Unknown Object (File)
Sat, Aug 31, 6:01 PM
Unknown Object (File)
Sun, Aug 25, 11:48 PM
Unknown Object (File)
Sun, Aug 25, 7:49 AM
Unknown Object (File)
Sun, Aug 25, 12:16 AM
Subscribers

Details

Summary

Fixes T8547. I wasn't immediately able to reproduce this locally (although I didn't try too hard), but I think the issue is that when atoms extend ghosts (probably they are usually ghosts themselves?), we try to check the ghost language and fatal.

Instead, don't match ghosts when figuring out what an atom extends.

This could maybe be a little cleaner (match the ghosts, at lower priority, and show that they're ghosts?) but I'm not sure there's a real product use case for it, and this looks like a safer way to stop the bleeding for now.

Test Plan

Poked around Diviner locally.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Fix a fatal in Diviner when atoms extend ghosts.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: joshuaspence.
src/applications/diviner/query/DivinerAtomQuery.php
227

Specifically, this is where we get into trouble: $xatom is a ghost, so $xatom->getAtom() returns null.

This revision is now accepted and ready to land.Jun 15 2015, 8:50 PM
This revision was automatically updated to reflect the committed changes.