#2563 fixed pending state for allocations with terminal status #2816
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes ticket #2563
What happens:
Prerequisites: Allocation A and B are created for the same job, B is successor of A, it is created after updating job spec. Nomad client was running alloc A, then the client went down, job update occured with creating allocation B, then nomad client goes up. Allocations A and B can be run only on the client.
The issue: After nomad client starts, allocation B stay's in pending state for several hours, because it waits for allocation A to be terminated. Allocation A in terminating state(desired state = stopped), but reaches terminated state (clientstatus = compleated) only after GC.
Why allocation B slow to reach terminated state ? what happens:
func (c *Client) allocSync()
Solution: report completed state if allocation runner is not going to run tasks.