Page MenuHomePhabricator

Make daemons ignore "Unreachable" commits and avoid duplicate work
ClosedPublic

Authored by epriestley on Jun 16 2016, 3:04 PM.
Tags
None
Referenced Files
F13178986: D16131.diff
Wed, May 8, 8:50 PM
Unknown Object (File)
Tue, May 7, 3:22 AM
Unknown Object (File)
Fri, May 3, 4:03 AM
Unknown Object (File)
Thu, May 2, 1:22 PM
Unknown Object (File)
Mon, Apr 29, 4:21 PM
Unknown Object (File)
Thu, Apr 25, 12:00 AM
Unknown Object (File)
Fri, Apr 19, 4:55 PM
Unknown Object (File)
Thu, Apr 11, 8:17 AM
Subscribers
None

Details

Summary

Ref T9028. This improves the daemon behavior for unreachable commits. There is still no way for commits to become marked unreachable on their own.

  • When a daemon encounters an unreachable commit, fail permanently.
  • When we revive a commit, queue new daemons to process it (since some of the daemons might have failed permanently the first time around).
  • Before doing a step on a commit, check if the step has already been done and skip it if it has. This can't happen normally, but will soon be possible if a commit is repeatedly deleted and revived very quickly.
  • Steps queued with bin/repository reparse ... still execute normally.
Test Plan
  • Used bin/repository reparse to run every step, verified they all mark the commit with the proper flag.
  • Faked the reparse exception in the "skip step" code, used repository reparse to skip every step.
  • Marked a commit as unreachable, ran discover, saw daemons queue for it.
  • Ran daemons with bin/worker execute --id ..., saw them all skip + queue the next step.
  • Marked a commit as unreachable, ran bin/repository reparse on it, got permanent failures immediately for each step.

Diff Detail

Repository
rP Phabricator
Branch
ref3
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 12683
Build 16126: Run Core Tests
Build 16125: arc lint + arc unit

Event Timeline

epriestley retitled this revision from to Make daemons ignore "Unreachable" commits and avoid duplicate work.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
chad edited edge metadata.
This revision is now accepted and ready to land.Jun 16 2016, 3:39 PM
This revision was automatically updated to reflect the committed changes.