Skip to content
  • epriestley's avatar
    When updating revisions in response to commits, reuse previously generated diffs · 2dfe79cf
    epriestley authored
    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
    2dfe79cf