pkg/compose: composeService.Up: rewrite without go-multierror#13177
pkg/compose: composeService.Up: rewrite without go-multierror#13177ndeloof merged 1 commit intodocker:mainfrom
Conversation
| signalChan := make(chan os.Signal, 2) | ||
| defer close(signalChan) | ||
| signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM) | ||
| defer signal.Stop(signalChan) |
There was a problem hiding this comment.
Closing the signalChan isn't needed for these; signal.Stop should be enough.
| select { | ||
| case <-doneCh: | ||
| case <-globalCtx.Done(): | ||
| if watcher != nil { |
There was a problem hiding this comment.
I had a bit of input from my AI friends to see if we could have everything handled through the context (there were some paths that were a bit involved, and I saw some paths were possibly errgroup.Wait were not handled).
So pay close attention if I did it right, as I'm not so familiar with this code ❤️ 🙈
| _, attachCtx := errgroup.WithContext(ctx) | ||
| containers, err := s.attach(attachCtx, project, printer.HandleEvent, options.Start.AttachTo) | ||
| // | ||
| // FIXME(thaJeztah): this context was never cancelled, so didn't add anything? See https://github.com/docker/compose/commit/2c12ad19db5003cdf4cc0de8711970dbb6914b17 | ||
| // _, attachCtx := errgroup.WithContext(ctx) | ||
| // containers, err := s.attach(attachCtx, project, printer.HandleEvent, options.Start.AttachTo) | ||
| containers, err := s.attach(globalCtx, project, printer.HandleEvent, options.Start.AttachTo) |
There was a problem hiding this comment.
This part seemed like it was not yet functional, or at least, the derived context was never cancelled, and the new error-group was discarded, so effectively it was just a copy of the context that was never cancelled (added in 2c12ad1)
I didn't remove the code yet, because it probably needs to be looked at, and either removed, or perhaps the "attach" ones being in their own errgroup? I wasn't sure, so could use input here.
There was a problem hiding this comment.
seems to me this is legacy code that wasn't removed during recent refactoring
There was a problem hiding this comment.
OK, let me remove the comment and commented-out code
- Use a errgroup.Group and add a appendErr utility to not fail-fast, but collect errors. - replace doneCh for a global context to cancel goroutines - Commented out attachCtx code, as it didn't appear to be functional (as it wouldn't be cancelled). Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
4a8f839 to
666906e
Compare
|
CI is green again; ptal @ndeloof 🤗 |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [docker/compose](https://github.com/docker/compose) | patch | `v2.39.2` -> `v2.39.3` | 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.39.3`](https://github.com/docker/compose/releases/tag/v2.39.3) [Compare Source](docker/compose@v2.39.2...v2.39.3) #### What's Changed ##### ✨ Improvements - Add completions for the `--progress` flag by [@​m4rch3n1ng](https://github.com/m4rch3n1ng) in [#​13158](docker/compose#13158) ##### 🐛 Fixes - Add `--provenance` and `--sbom` flag to generated `bake` command line, by [@​glours](https://github.com/glours) in [#​13147](docker/compose#13147) - Fix runtime operations failing when env file is missing by [@​maxproske](https://github.com/maxproske) in [#​13156](docker/compose#13156) - Check the assume yes publish flag command before the presence of bind mounts by [@​glours](https://github.com/glours) in [#​13151](docker/compose#13151) - Fix: incorrect time when last tag time is not set by [@​kianelbo](https://github.com/kianelbo) in [#​13171](docker/compose#13171) - Fix sigint/sigterm support in logs `--follow` by [@​ndeloof](https://github.com/ndeloof) in [#​13193](docker/compose#13193) - Prefer application container vs one-off running `exec` without index by [@​ndeloof](https://github.com/ndeloof) in [#​13178](docker/compose#13178) - Only force plain mode build if progress is set to `auto` by [@​ndeloof](https://github.com/ndeloof) in [#​13181](docker/compose#13181) - Only propagate os.Env to bake, not the whole project.Environment by [@​ndeloof](https://github.com/ndeloof) in [#​13180](docker/compose#13180) - Detect container is restarted by [@​ndeloof](https://github.com/ndeloof) in [#​13210](docker/compose#13210) - Fix run `--build` support for `service:* reference` in additional\_context by [@​ndeloof](https://github.com/ndeloof) in [#​13183](docker/compose#13183) - Detect compose run wit `--host` and set `DOCKER_HOST` accordingly running bake by [@​ndeloof](https://github.com/ndeloof) in [#​13182](docker/compose#13182) ##### 🔧 Internal - Refactor to use maps.Copy by [@​cuiweixie](https://github.com/cuiweixie) in [#​13174](docker/compose#13174) - Replace most uses of hashicorp/go-multierror for stdlib by [@​thaJeztah](https://github.com/thaJeztah) in [#​13176](docker/compose#13176) - pkg/compose: composeService.Up: rewrite without go-multierror by [@​thaJeztah](https://github.com/thaJeztah) in [#​13177](docker/compose#13177) - Use enum-consts for State and Health by [@​thaJeztah](https://github.com/thaJeztah) in [#​13186](docker/compose#13186) - Unquote volume names in creation events by [@​rrjjvv](https://github.com/rrjjvv) in [#​13188](docker/compose#13188) - pkg/compose: use state consts from moby API by [@​thaJeztah](https://github.com/thaJeztah) in [#​13216](docker/compose#13216) - Document (hidden) `--tty` `--interactive` flags by [@​ndeloof](https://github.com/ndeloof) in [#​13201](docker/compose#13201) ##### ⚙️ Dependencies - go.mod: github.com/docker/buildx v0.27.0 by [@​thaJeztah](https://github.com/thaJeztah) in [#​13170](docker/compose#13170) - Build(deps): bump go.uber.org/mock from 0.5.2 to 0.6.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​13162](docker/compose#13162) - go.mod: bump buildkit v0.24.0-rc1, buildx v0.28.0-rc1 by [@​thaJeztah](https://github.com/thaJeztah) in [#​13185](docker/compose#13185) - Build(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​13184](docker/compose#13184) - go.mod: bump buildx v0.28.0-rc2, buildkit v0.24.0-rc2 by [@​thaJeztah](https://github.com/thaJeztah) in [#​13197](docker/compose#13197) - Build(deps): bump github.com/spf13/pflag from 1.0.7 to 1.0.9 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​13195](docker/compose#13195) - Build(deps): bump github.com/spf13/cobra from 1.9.1 to 1.10.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​13198](docker/compose#13198) - go.mod: bump github.com/docker/docker, docker/cli v28.4.0 by [@​thaJeztah](https://github.com/thaJeztah) in [#​13168](docker/compose#13168) - Build(deps): bump github.com/docker/buildx from 0.28.0-rc2 to 0.28.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​13207](docker/compose#13207) - Build(deps): bump github.com/spf13/pflag from 1.0.9 to 1.0.10 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​13200](docker/compose#13200) - Bump golang to version 1.24.7 by [@​glours](https://github.com/glours) in [#​13219](docker/compose#13219) - Build(deps): bump golang.org/x/sync from 0.16.0 to 0.17.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​13218](docker/compose#13218) - Build(deps): bump golang.org/x/sys from 0.35.0 to 0.36.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​13217](docker/compose#13217) - Bump compose-go to version v2.8.2 by [@​glours](https://github.com/glours) in [#​13220](docker/compose#13220) #### New Contributors - [@​cuiweixie](https://github.com/cuiweixie) made their first contribution in [#​13174](docker/compose#13174) - [@​m4rch3n1ng](https://github.com/m4rch3n1ng) made their first contribution in [#​13158](docker/compose#13158) - [@​kianelbo](https://github.com/kianelbo) made their first contribution in [#​13171](docker/compose#13171) - [@​rrjjvv](https://github.com/rrjjvv) made their first contribution in [#​13188](docker/compose#13188) **Full Changelog**: <docker/compose@v2.39.2...v2.39.3> </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:eyJjcmVhdGVkSW5WZXIiOiI0MS45OC4xIiwidXBkYXRlZEluVmVyIjoiNDEuOTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
What I did
Related issue
(not mandatory) A picture of a cute animal, if possible in relation to what you did