Page MenuHomePhabricator

Fix an issue where loading a mangled project graph could fail too abruptly

Authored by epriestley on Feb 3 2020, 4:45 PM.



Ref T13484. If you load a subproject S which has a mangled/invalid parentPath, the query currently tries to execute an empty edge query and fatals.

Instead, we want to deny-by-default in the policy layer but not fail the query. The subproject should become restricted but not fatal anything related to it.

See T13484 for a future refinement where we could identify "broken / data integrity issue" objects explicilty.

Test Plan
  • Modified the projectPath of some subproject in the database to QQQQ....
  • Loaded that project page.
  • Before patch: fatal after issuing bad edge query.
  • After patch: "functionally correct" policy layer failure, although an explicit "data integrity issue" failure would be better.

Diff Detail

rP Phabricator
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley created this revision.Feb 3 2020, 4:45 PM
epriestley requested review of this revision.Feb 3 2020, 4:47 PM
This revision was not accepted when it landed; it landed in state Needs Review.Feb 3 2020, 4:54 PM
This revision was automatically updated to reflect the committed changes.