We believe that the following happened (though we haven't tried to repro so we're not 100% sure):
- A commit was pushed to a remote branch
- This requested an audit
- Some time later, someone went through and deleted many remote branches as part of a clean-up effort
- The auditor was working through his queue and saw an old (incomplete) audit corresponding to a commit on one of the deleted branches
- Clicking on the audit shows:
Command failed with error #128! COMMAND git log -n 1 --format='%P' '08d5e6c2a164f10679fdf412dc187c50f2acb289' STDOUT (empty) STDERR fatal: bad object 08d5e6c2a164f10679fdf412dc187c50f2acb289
The problem we encountered is two-fold:
- It wasn't obvious (since the clean-up happened a while ago) that the reason for this error was that the commit was on a deleted branch. We wasted quite some time figuring out what was going on.
- There is no way to delete, close, or resign from this audit via the Phabricator UI, so it will forever be in the auditor's list of "open audits."
Potential solution ideas:
- Improve the error message and provide a button to close the audit
- Have a daemon that processes deleted commits/branches and deletes associated (incomplete?) audits
- Give us a script we can use that deletes a branch and cleans up its audits, or that given the name of a just-deleted branch cleans up its audits, or similar