Skip to content
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

[27.1 backport] attach: don't return context cancelled error #5296

Merged
merged 1 commit into from
Jul 25, 2024

Conversation

vvoland
Copy link
Collaborator

@vvoland vvoland commented Jul 25, 2024

closes #5294

- What I did

In #4993 we introduced a global signal handler and made sure all the contexts passed into command execution get (appropriately) cancelled when we get a SIGINT.

Due to how we use this context in docker attach, this caused us to start returning a context cancelation error when a user signals the running docker attach.

Since this is the intended behavior, we shouldn't return an error, so this commit adds checks to ignore this specific error in this case.

Also adds a regression test.

- How to verify it

Run the added test:

TESTDIRS="./e2e/container/..." TESTFLAGS="-test.run=TestAttachInterrupt" make -f docker.Makefile test-e2e-non-experimental

- Description for the changelog

Fix `docker attach` printing a spurious `context cancelled` error message.

- A picture of a cute animal (not mandatory but encouraged)

In 3f0d90a we introduced a global
signal handler and made sure all the contexts passed into command
execution get (appropriately) cancelled when we get a SIGINT.

Due to that change, and how we use this context during `docker attach`,
we started to return the context cancelation error when a user signals
the running `docker attach`.

Since this is the intended behavior, we shouldn't return an error, so
this commit adds checks to ignore this specific error in this case.

Also adds a regression test.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
(cherry picked from commit 66aa0f6)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
@vvoland vvoland added this to the 27.1.2 milestone Jul 25, 2024
@vvoland vvoland self-assigned this Jul 25, 2024
@codecov-commenter
Copy link

codecov-commenter commented Jul 25, 2024

Codecov Report

Attention: Patch coverage is 66.66667% with 1 line in your changes missing coverage. Please review.

Project coverage is 61.50%. Comparing base (2e506cb) to head (dfb8f21).

Additional details and impacted files
@@            Coverage Diff             @@
##             27.0    #5296      +/-   ##
==========================================
+ Coverage   61.05%   61.50%   +0.45%     
==========================================
  Files         296      299       +3     
  Lines       20856    20866      +10     
==========================================
+ Hits        12733    12834     +101     
+ Misses       7205     7116      -89     
+ Partials      918      916       -2     

Copy link
Member

@thaJeztah thaJeztah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@thaJeztah thaJeztah merged commit fd3157b into docker:27.0 Jul 25, 2024
107 of 108 checks passed
renovate bot added a commit to earthly/dind that referenced this pull request Aug 19, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker/docker](https://github.com/docker/docker) | patch | `27.1.1`
-> `27.1.2` |

---

### Release Notes

<details>
<summary>docker/docker (docker/docker)</summary>

### [`v27.1.2`](https://github.com/moby/moby/releases/tag/v27.1.2)

[Compare
Source](https://github.com/docker/docker/compare/v27.1.1...v27.1.2)

#### 27.1.2

For a full list of pull requests and changes in this release, refer to
the relevant GitHub milestones:

- [docker/cli, 27.1.2
milestone](https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A27.1.2)
- [moby/moby, 27.1.2
milestone](https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A27.1.2)
- Deprecated and removed features, see [Deprecated
Features](https://github.com/docker/cli/blob/v27.1.2/docs/deprecated.md).
- Changes to the Engine API, see [API version
history](https://github.com/moby/moby/blob/v27.1.2/docs/api/version-history.md).

##### Bug fixes and enhancements

- Fix a regression that could result in a `ResourceExhausted desc =
grpc: received message larger than max` error when building from a large
Dockerfile. [moby/moby#48245](https://github.com/moby/moby/pull/48245)
- CLI: Fix `docker attach` printing a spurious `context cancelled` error
message. [docker/cli#5296](https://github.com/docker/cli/pull/5296)
- CLI: Fix `docker attach` exiting on `SIGINT` instead of forwarding the
signal to the container and waiting for it to exit.
[docker/cli#5302](https://github.com/docker/cli/pull/5302)
- CLI: Fix `--device-read-bps` and `--device-write-bps` options not
taking effect.
[docker/cli#5339](https://github.com/docker/cli/pull/5339)
- CLI: Fix a panic happening in some cases while running a plugin.
[docker/cli#5337](https://github.com/docker/cli/pull/5337)

##### Packaging updates

- Update BuildKit to
[v0.15.1](https://github.com/moby/buildkit/releases/tag/v0.15.1).
[moby/moby#48246](https://github.com/moby/moby/pull/48246)
- Update Buildx to
[v0.16.2](https://github.com/docker/buildx/releases/tag/v0.16.2).
[docker/docker-ce-packaging#1043](https://github.com/docker/docker-ce-packaging/pull/1043)
- Update Go runtime to 1.21.13.
[moby/moby#48301](https://github.com/moby/moby/pull/48301),
[docker/cli#5325](https://github.com/docker/cli/pull/5325),
[docker/docker-ce-packaging#1046](https://github.com/docker/docker-ce-packaging/pull/1046)
- Remove unused `docker-proxy.exe` binary from Windows packages.
[docker/docker-ce-packaging#1045](https://github.com/docker/docker-ce-packaging/pull/1045)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6am on monday" (UTC), Automerge
- At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job log](https://developer.mend.io/github/earthly/dind).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to earthly/dind that referenced this pull request Aug 19, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker/docker](https://github.com/docker/docker) | patch | `27.1.1`
-> `27.1.2` |

---

### Release Notes

<details>
<summary>docker/docker (docker/docker)</summary>

### [`v27.1.2`](https://github.com/moby/moby/releases/tag/v27.1.2)

[Compare
Source](https://github.com/docker/docker/compare/v27.1.1...v27.1.2)

#### 27.1.2

For a full list of pull requests and changes in this release, refer to
the relevant GitHub milestones:

- [docker/cli, 27.1.2
milestone](https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A27.1.2)
- [moby/moby, 27.1.2
milestone](https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A27.1.2)
- Deprecated and removed features, see [Deprecated
Features](https://github.com/docker/cli/blob/v27.1.2/docs/deprecated.md).
- Changes to the Engine API, see [API version
history](https://github.com/moby/moby/blob/v27.1.2/docs/api/version-history.md).

##### Bug fixes and enhancements

- Fix a regression that could result in a `ResourceExhausted desc =
grpc: received message larger than max` error when building from a large
Dockerfile. [moby/moby#48245](https://github.com/moby/moby/pull/48245)
- CLI: Fix `docker attach` printing a spurious `context cancelled` error
message. [docker/cli#5296](https://github.com/docker/cli/pull/5296)
- CLI: Fix `docker attach` exiting on `SIGINT` instead of forwarding the
signal to the container and waiting for it to exit.
[docker/cli#5302](https://github.com/docker/cli/pull/5302)
- CLI: Fix `--device-read-bps` and `--device-write-bps` options not
taking effect.
[docker/cli#5339](https://github.com/docker/cli/pull/5339)
- CLI: Fix a panic happening in some cases while running a plugin.
[docker/cli#5337](https://github.com/docker/cli/pull/5337)

##### Packaging updates

- Update BuildKit to
[v0.15.1](https://github.com/moby/buildkit/releases/tag/v0.15.1).
[moby/moby#48246](https://github.com/moby/moby/pull/48246)
- Update Buildx to
[v0.16.2](https://github.com/docker/buildx/releases/tag/v0.16.2).
[docker/docker-ce-packaging#1043](https://github.com/docker/docker-ce-packaging/pull/1043)
- Update Go runtime to 1.21.13.
[moby/moby#48301](https://github.com/moby/moby/pull/48301),
[docker/cli#5325](https://github.com/docker/cli/pull/5325),
[docker/docker-ce-packaging#1046](https://github.com/docker/docker-ce-packaging/pull/1046)
- Remove unused `docker-proxy.exe` binary from Windows packages.
[docker/docker-ce-packaging#1045](https://github.com/docker/docker-ce-packaging/pull/1045)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6am on monday" (UTC), Automerge
- At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job log](https://developer.mend.io/github/earthly/dind).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants