Fix attach stream closing issues #10079
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 small fix fixes 2 different issues:
Attaching after once detached doesn't work in current master.
v1.4.1
isn't affected. Regression is at #9511.The problem is that when
stdout/stderr
closedcStdin.Close()
is always called on if instdinOnce
mode. This closes the processstdin
.docker attach
not exiting when container exits docker attach not exiting when container exits #9860After
stdout/stderr
close,stdin.Close()
is only ran if we are onstdinOnce
mode. Goroutine must be always cleaned. Regression is at #8571.We never actually need to close container
stdin
afterstdout/stderr
finishes. We only need to close thestdin
goroutine. In some cases this also means closingstdin
but that is already controlled by the goroutine itself./cc @LK4D4 @jfrazelle @cpuguy83
Signed-off-by: Tonis Tiigi tonistiigi@gmail.com