@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator

When updating revisions in response to commits, reuse previously generated diffs master

Summary: Fixes T10968. In rare situations, we can generate a diff, then hit an error which causes this update to fail. When it does, we tend to get stuck in a loop creating diffs, which can fill the database up with garbage. We saw this once in the Phacility cluster, and one instance hit it, too. Instead: when we create a diff, keep track of which commit we generated it from. The next time through, reuse it if we already built it. Test Plan: - Used `bin/differential attach-commit <commit> <revision>` to hit this code. - Simulated a filesystem write failure, saw the diff get reused. - Also did a normal update, which worked properly. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10968 Differential Revision: https://secure.phabricator.com/D17164


+55 -3
4 changed files