-
-
Notifications
You must be signed in to change notification settings - Fork 378
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
woodpecker-cli exec .woodpecker.yaml: "io: read/write on closed pipe" #1615
Labels
bug
Something isn't working
Comments
lafriks
added a commit
that referenced
this issue
Mar 12, 2023
Closes #1615 The error described in #1615 is happening because `Tail` method of the docker backend closes the instance of `io.ReadCloser` it returns in `defer` function. As a result anything that try to read data returned by `Tail` method eventually will attempt to read from closes reader and get an error: https://github.com/woodpecker-ci/woodpecker/blob/2171212c5a31bfffc8f882716bdd503c65413eee/pipeline/backend/docker/docker.go#L229 The fix is just don't close returned reader and let the consumer of `Tail` method do it. Good thing is that `Tail` is used only in one place and reader is correctly closed: https://github.com/woodpecker-ci/woodpecker/blob/2171212c5a31bfffc8f882716bdd503c65413eee/pipeline/pipeline.go#L231-L237 Example of `woodpecker exec` output using pipeline from #1615 with the fix: ``` woodpecker exec .woodpecker.yaml [step1:L0:0s] + echo step1 [step1:L1:0s] step1 [step2:L0:0s] + echo step2 [step2:L1:0s] step2 ``` Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com> Co-authored-by: Lauris BH <lauris@nix.lv>
6543
pushed a commit
to 6543-forks/woodpecker
that referenced
this issue
Mar 14, 2023
…-ci#1616) Closes woodpecker-ci#1615 The error described in woodpecker-ci#1615 is happening because `Tail` method of the docker backend closes the instance of `io.ReadCloser` it returns in `defer` function. As a result anything that try to read data returned by `Tail` method eventually will attempt to read from closes reader and get an error: https://github.com/woodpecker-ci/woodpecker/blob/2171212c5a31bfffc8f882716bdd503c65413eee/pipeline/backend/docker/docker.go#L229 The fix is just don't close returned reader and let the consumer of `Tail` method do it. Good thing is that `Tail` is used only in one place and reader is correctly closed: https://github.com/woodpecker-ci/woodpecker/blob/2171212c5a31bfffc8f882716bdd503c65413eee/pipeline/pipeline.go#L231-L237 Example of `woodpecker exec` output using pipeline from woodpecker-ci#1615 with the fix: ``` woodpecker exec .woodpecker.yaml [step1:L0:0s] + echo step1 [step1:L1:0s] step1 [step2:L0:0s] + echo step2 [step2:L1:0s] step2 ``` Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com> Co-authored-by: Lauris BH <lauris@nix.lv>
lafriks
added a commit
that referenced
this issue
Mar 14, 2023
) Backport #1616 Close #1615 The error described in #1615 is happening because `Tail` method of the docker backend closes the instance of `io.ReadCloser` it returns in `defer` function. As a result anything that try to read data returned by `Tail` method eventually will attempt to read from closes reader and get an error: https://github.com/woodpecker-ci/woodpecker/blob/2171212c5a31bfffc8f882716bdd503c65413eee/pipeline/backend/docker/docker.go#L229 The fix is just don't close returned reader and let the consumer of `Tail` method do it. Good thing is that `Tail` is used only in one place and reader is correctly closed: https://github.com/woodpecker-ci/woodpecker/blob/2171212c5a31bfffc8f882716bdd503c65413eee/pipeline/pipeline.go#L231-L237 Example of `woodpecker exec` output using pipeline from #1615 with the fix: ``` woodpecker exec .woodpecker.yaml [step1:L0:0s] + echo step1 [step1:L1:0s] step1 [step2:L0:0s] + echo step2 [step2:L1:0s] step2 ``` Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com> Co-authored-by: Alexander Matyushentsev <AMatyushentsev@gmail.com> Co-authored-by: Lauris BH <lauris@nix.lv>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Component
cli
Describe the bug
Woodpecker CLI logs the error after each step execution.
Sample pipeline:
Result:
System Info
The text was updated successfully, but these errors were encountered: