1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-20 04:20:55 +01:00
phorge-phorge/src/applications/repository/worker
epriestley 77ee518d88 Make daemons ignore "Unreachable" commits and avoid duplicate work
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.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T9028

Differential Revision: https://secure.phabricator.com/D16131
2016-06-16 11:20:56 -07:00
..
__tests__ Remove diffusion.getcommits Conduit API method 2016-01-04 06:53:45 -08:00
commitchangeparser Make daemons ignore "Unreachable" commits and avoid duplicate work 2016-06-16 11:20:56 -07:00
commitmessageparser Make daemons ignore "Unreachable" commits and avoid duplicate work 2016-06-16 11:20:56 -07:00
PhabricatorRepositoryCommitHeraldWorker.php Make daemons ignore "Unreachable" commits and avoid duplicate work 2016-06-16 11:20:56 -07:00
PhabricatorRepositoryCommitOwnersWorker.php Make daemons ignore "Unreachable" commits and avoid duplicate work 2016-06-16 11:20:56 -07:00
PhabricatorRepositoryCommitParserWorker.php Make daemons ignore "Unreachable" commits and avoid duplicate work 2016-06-16 11:20:56 -07:00
PhabricatorRepositoryPushMailWorker.php Link to Harbormaster build targets from the Daemon worker page 2015-08-10 14:15:19 -07:00