Skip to content

[27.1 backport] api/server/router/grpc: NewRouter: set correct MaxRecvMsgSize, MaxSendMsgSize#48245

Merged
vvoland merged 1 commit intomoby:27.0from
thaJeztah:27.1_backport_buildkit_fix_grpc_control_api_sizes
Jul 26, 2024
Merged

[27.1 backport] api/server/router/grpc: NewRouter: set correct MaxRecvMsgSize, MaxSendMsgSize#48245
vvoland merged 1 commit intomoby:27.0from
thaJeztah:27.1_backport_buildkit_fix_grpc_control_api_sizes

Conversation

@thaJeztah
Copy link
Member

api/server/router/grpc: NewRouter: set correct MaxRecvMsgSize, MaxSendMsgSize

buildkit@29b4b1a537 applied changes to buildkitd to set the correct defaults, which should be 16MB, but used the library defaults. Without that change, builds using large Dockerfiles would fail with a ResourceExhausted error;

=> [internal] load build definition from Dockerfile
 => => transferring dockerfile: 896.44kB
ERROR: failed to receive status: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (44865299 vs. 16777216)

However those changes were applied to the buildkitd code, which is the daemon when running BuildKit standalone (or in a container through the container driver). When running a build with the BuildKit builder compiled into the Docker Engine, that code is not used, so the BuildKit changes did not fix the issue.

This patch applies the same changes as were made in buildkit@29b4b1a537 to the gRPC endpoint provided by the dockerd daemon.

- What I did

- How I did it

- How to verify it

- Description for the changelog

Fix a regression that could result in a `ResourceExhausted desc = grpc: received message larger than max` error when building from a large Dockerfile

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

…dMsgSize

[buildkit@29b4b1a537][1] applied changes to `buildkitd` to set the correct
defaults, which should be 16MB, but used the library defaults. Without that
change, builds using large Dockerfiles would fail with a `ResourceExhausted`
error;

    => [internal] load build definition from Dockerfile
     => => transferring dockerfile: 896.44kB
    ERROR: failed to receive status: rpc error: code = ResourceExhausted desc = grpc: received message larger than max (44865299 vs. 16777216)

However those changes were applied to the `buildkitd` code, which is the
daemon when running BuildKit standalone (or in a container through the
`container` driver). When running a build with the BuildKit builder compiled
into the Docker Engine, that code is not used, so the BuildKit changes did
not fix the issue.

This patch applies the same changes as were made in [buildkit@29b4b1a537][1]
to the gRPC endpoint provided by the dockerd daemon.

[1]: moby/buildkit@29b4b1a

Signed-off-by: Sebastiaan van Stijn <[email protected]>
(cherry picked from commit cdbfae1)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
@vvoland vvoland merged commit b9be986 into moby:27.0 Jul 26, 2024
@thaJeztah thaJeztah deleted the 27.1_backport_buildkit_fix_grpc_control_api_sizes branch July 26, 2024 14:43
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://togithub.com/docker/docker) | patch | `27.1.1`
-> `27.1.2` |

---

### Release Notes

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

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

[Compare
Source](https://togithub.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://togithub.com/docker/cli/issues?q=is%3Aclosed+milestone%3A27.1.2)
- [moby/moby, 27.1.2
milestone](https://togithub.com/moby/moby/issues?q=is%3Aclosed+milestone%3A27.1.2)
- Deprecated and removed features, see [Deprecated
Features](https://togithub.com/docker/cli/blob/v27.1.2/docs/deprecated.md).
- Changes to the Engine API, see [API version
history](https://togithub.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://togithub.com/moby/moby/pull/48245)
- CLI: Fix `docker attach` printing a spurious `context cancelled` error
message. [docker/cli#5296](https://togithub.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://togithub.com/docker/cli/pull/5302)
- CLI: Fix `--device-read-bps` and `--device-write-bps` options not
taking effect.
[docker/cli#5339](https://togithub.com/docker/cli/pull/5339)
- CLI: Fix a panic happening in some cases while running a plugin.
[docker/cli#5337](https://togithub.com/docker/cli/pull/5337)

##### Packaging updates

- Update BuildKit to
[v0.15.1](https://togithub.com/moby/buildkit/releases/tag/v0.15.1).
[moby/moby#48246](https://togithub.com/moby/moby/pull/48246)
- Update Buildx to
[v0.16.2](https://togithub.com/docker/buildx/releases/tag/v0.16.2).
[docker/docker-ce-packaging#1043](https://togithub.com/docker/docker-ce-packaging/pull/1043)
- Update Go runtime to 1.21.13.
[moby/moby#48301](https://togithub.com/moby/moby/pull/48301),
[docker/cli#5325](https://togithub.com/docker/cli/pull/5325),
[docker/docker-ce-packaging#1046](https://togithub.com/docker/docker-ce-packaging/pull/1046)
- Remove unused `docker-proxy.exe` binary from Windows packages.
[docker/docker-ce-packaging#1045](https://togithub.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://togithub.com/docker/docker) | patch | `27.1.1`
-> `27.1.2` |

---

### Release Notes

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

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

[Compare
Source](https://togithub.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://togithub.com/docker/cli/issues?q=is%3Aclosed+milestone%3A27.1.2)
- [moby/moby, 27.1.2
milestone](https://togithub.com/moby/moby/issues?q=is%3Aclosed+milestone%3A27.1.2)
- Deprecated and removed features, see [Deprecated
Features](https://togithub.com/docker/cli/blob/v27.1.2/docs/deprecated.md).
- Changes to the Engine API, see [API version
history](https://togithub.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://togithub.com/moby/moby/pull/48245)
- CLI: Fix `docker attach` printing a spurious `context cancelled` error
message. [docker/cli#5296](https://togithub.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://togithub.com/docker/cli/pull/5302)
- CLI: Fix `--device-read-bps` and `--device-write-bps` options not
taking effect.
[docker/cli#5339](https://togithub.com/docker/cli/pull/5339)
- CLI: Fix a panic happening in some cases while running a plugin.
[docker/cli#5337](https://togithub.com/docker/cli/pull/5337)

##### Packaging updates

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

2 participants