Skip to content

Conversation

@Trolldemorted
Copy link
Contributor

@Trolldemorted Trolldemorted commented Oct 3, 2025

What I did
Current main fails to properly abort with --watch on permission issues because:

  • up.go:Up() notices globalCtx is done, calls watcher.Stop()
  • watch.go:Stop() reads from w.errCh
  • watch.go:Stop() is deadlocked because watch.go:Start has not and will not write to w.errCh

The fix is simple: Ensure watch.go:Start() writes the error from watchFn into w.errCh.

Related issue
Fixes #13262

@Trolldemorted Trolldemorted requested a review from a team as a code owner October 3, 2025 23:32
Up's loop will notice globalCtx is done, and invoke watcher.Stop(). Stop() reads from the watcher error channel. If Start() does not write an error, Stop() will never finish.

Fixes docker#13262

Signed-off-by: Benedikt Radtke <[email protected]>
@ndeloof ndeloof enabled auto-merge (rebase) October 6, 2025 12:37
@ndeloof ndeloof merged commit fa7e85e into docker:main Oct 6, 2025
24 checks passed
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Oct 20, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker/compose](https://github.com/docker/compose) | patch | `v2.40.0` -> `v2.40.1` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

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

### [`v2.40.1`](https://github.com/docker/compose/releases/tag/v2.40.1)

[Compare Source](docker/compose@v2.40.0...v2.40.1)

#### What's Changed

##### ✨ Improvements

##### 🐛 Fixes

- Write error to watcher error channel if Start() fails by [@&#8203;Trolldemorted](https://github.com/Trolldemorted) in [#&#8203;13263](docker/compose#13263)
- Fix: set PWD only if not set by [@&#8203;kianelbo](https://github.com/kianelbo) in [#&#8203;13268](docker/compose#13268)
- bake only interpolates ${\*} by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13270](docker/compose#13270)
- Fix: make "publish" push all compose files addressed in "extends" statements when using "profiles". by [@&#8203;ogoulpeau-ledger](https://github.com/ogoulpeau-ledger) in [#&#8203;13277](docker/compose#13277)
- Support Ctrl+Z to run compose in background by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13289](docker/compose#13289)
- Fix race-condition bug in publish command by [@&#8203;paul-kinexon](https://github.com/paul-kinexon) in [#&#8203;13291](docker/compose#13291)
- Set secret/config uid:gid to match container's USER by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13288](docker/compose#13288)
- Fix failure to delegate build with bake by [@&#8203;ndeloof](https://github.com/ndeloof) in [#&#8203;13275](docker/compose#13275)
- Make CTRL+Z a no-op operation on Windows by [@&#8203;glours](https://github.com/glours) in [#&#8203;13293](docker/compose#13293)

##### 🔧  Internal

- pkg/compose: align classic builder implementation with docker/cli by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13278](docker/compose#13278)
- pkg/compose: build with bake: drop support for buildx v0.16 and lower by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13280](docker/compose#13280)
- Use fixed version of compose bridge transformer images by [@&#8203;glours](https://github.com/glours) in [#&#8203;13284](docker/compose#13284)

##### ⚙️ Dependencies

- Build(deps): bump github.com/docker/docker from 28.5.0+incompatible to 28.5.1+incompatible by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13274](docker/compose#13274)
- Build(deps): bump github.com/docker/cli from 28.5.0+incompatible to 28.5.1+incompatible by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13273](docker/compose#13273)
- Build(deps): bump golang.org/x/sys from 0.36.0 to 0.37.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;13272](docker/compose#13272)
- Build(deps): bump docker/buildx v0.29.1, moby/buildkit v0.25.1 by [@&#8203;thaJeztah](https://github.com/thaJeztah) in [#&#8203;13279](docker/compose#13279)
- Bump golang to version 1.24.9 by [@&#8203;glours](https://github.com/glours) in [#&#8203;13285](docker/compose#13285)

#### New Contributors

- [@&#8203;Trolldemorted](https://github.com/Trolldemorted) made their first contribution in [#&#8203;13263](docker/compose#13263)
- [@&#8203;ogoulpeau-ledger](https://github.com/ogoulpeau-ledger) made their first contribution in [#&#8203;13277](docker/compose#13277)
- [@&#8203;paul-kinexon](https://github.com/paul-kinexon) made their first contribution in [#&#8203;13291](docker/compose#13291)

**Full Changelog**: <docker/compose@v2.40.0...v2.40.1>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

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

---

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

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTEuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE1MS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] docker compose watch fails to detect permission issue and deadlocks

2 participants