Ensure execution graph cancellation only happens once per job

Review Request #2910 - Created Sept. 30, 2015 and submitted

Nick Howard (Twitter)
jsirois, mateor, patricklaw, stuhood
Before, the execution graph wouldn't check to see if a job had already been canceled before canceling it. This meant that even if that job was a dependee of another canceled or failed job, it would still end up in the queue. The result is that the queue could grow to be very large with deep graphs, containing mostly duplicate cancelations.

This patch changes the cancellation handling so that the status table is checked for each dependee before canceling it. It also marks them as queued so that the status table knows that they are in progress.

Wrote a regression test, made it pass. CI away on the PR.

Nick Howard (Twitter)
Mateo Rodriguez
Nick Howard (Twitter)
Review request changed

Status: Closed (submitted)

Change Summary:


Nick Howard (Twitter)

Thanks, Mateo. Submitted at https://github.com/pantsbuild/pants/commit/a9c6ac44efda87c60f0b6ff8157157f355edfa9f