Legacy executors are executors after all #9304
Merged
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.
This fixes a bug where pre-0.9 executors fail to recover after an
upgrade.
The bug is that legacyExecutorWrappers didn't get updated with
ExecStreaming function, and thus failed to implement the Executor
function. Sadly, this meant that all recovery attempts fail, as the
runtime check in
nomad/drivers/shared/executor/utils.go
Lines 103 to 110 in b312aac
.
Impact
The bug affects all versions since 0.9.2: if a client upgrades from pre-0.9 to 0.9.2 or later; then all exec based tasks (i.e. exec, raw_exec, java, qemu) will fail to recover, will be leaked, and then nomad will start another task. The leaked pre-0.9 task will run un-interrupted and unmanaged until the client dies or it's killed manually.