$ docker compose -f compose-many.yml config --resolve-image-digests
fatal error: concurrent map writes
goroutine 363 [running]:
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:519 +0x13b
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 1 [semacquire]:
sync.runtime_Semacquire(0x2?)
runtime/sema.go:62 +0x25
sync.(*WaitGroup).Wait(0xc00064e2a0?)
sync/waitgroup.go:116 +0x48
golang.org/x/sync/errgroup.(*Group).Wait(0xc0004582c0)
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:56 +0x25
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved(0x1010101006256e8?, 0xc0006a1e00)
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:523 +0x1c6
github.com/docker/compose/v2/pkg/compose.(*composeService).Config(0xc0004cb770, {0x25e24c0?, 0xc0004280a0}, 0xc000546280, {{0x226c7d4, 0x4}, {0x0, 0x0}, 0x1})
github.com/docker/compose/v2/pkg/compose/compose.go:153 +0xcb
github.com/docker/compose/v2/cmd/compose.runConfig({0x25e24c0, 0xc0004280a0}, {0x25f5640?, 0xc00002ef00?}, {0x25fdf80, 0xc0004cb770}, {0xc00065ff40, {0x226c7d4, 0x4}, {0x0, ...}, ...}, ...)
github.com/docker/compose/v2/cmd/compose/config.go:133 +0x15e
github.com/docker/compose/v2/cmd/compose.configCommand.func2({0x25e24c0?, 0xc0004280a0?}, {0xc0004c7960?, 0xc0000061a0?, 0x1c4fa59?})
github.com/docker/compose/v2/cmd/compose/config.go:103 +0xf7
github.com/docker/compose/v2/cmd/compose.configCommand.Adapt.func4({0x25e24c0?, 0xc0004280a0?}, 0x2?, {0xc0004c7960?, 0x0?, 0x0?})
github.com/docker/compose/v2/cmd/compose/compose.go:108 +0x30
github.com/docker/compose/v2/cmd/compose.configCommand.Adapt.AdaptCmd.func7(0x0?, {0xc0004c7960, 0x0, 0x1})
github.com/docker/compose/v2/cmd/compose/compose.go:87 +0x14e
github.com/docker/compose/v2/cmd/cmdtrace.Setup.wrapRunE.func2(0xc00002f800?, {0xc0004c7960?, 0x0?, 0x1?})
github.com/docker/compose/v2/cmd/cmdtrace/cmd_span.go:84 +0x65
github.com/spf13/cobra.(*Command).execute(0xc000005b00, {0xc0000724a0, 0x1, 0x1})
github.com/spf13/cobra@v1.8.0/command.go:983 +0xabc
github.com/spf13/cobra.(*Command).ExecuteC(0xc000540c00)
github.com/spf13/cobra@v1.8.0/command.go:1115 +0x3ff
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/cobra@v1.8.0/command.go:1039
github.com/docker/cli/cli-plugins/plugin.RunPlugin(0x1c76033?, 0xc00039b500, {{0x226d2ec, 0x5}, {0x2276f47, 0xb}, {0x25b9210, 0x7}, {0x0, 0x0}, ...})
github.com/docker/cli@v25.0.1+incompatible/cli-plugins/plugin/plugin.go:64 +0x10e
github.com/docker/cli/cli-plugins/plugin.Run(0x23a9698, {{0x226d2ec, 0x5}, {0x2276f47, 0xb}, {0x25b9210, 0x7}, {0x0, 0x0}, {0x0, ...}})
github.com/docker/cli@v25.0.1+incompatible/cli-plugins/plugin/plugin.go:77 +0xe5
main.pluginMain()
github.com/docker/compose/v2/cmd/main.go:37 +0xa5
main.main()
github.com/docker/compose/v2/cmd/main.go:94 +0x19c
goroutine 7 [IO wait]:
internal/poll.runtime_pollWait(0x7f43ba1a8e58, 0x72)
runtime/netpoll.go:343 +0x85
internal/poll.(*pollDesc).wait(0xc00050cb00?, 0xc0005097bf?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x27
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00050cb00, {0xc0005097bf, 0x1, 0x1})
internal/poll/fd_unix.go:164 +0x27a
net.(*netFD).Read(0xc00050cb00, {0xc0005097bf?, 0x0?, 0x0?})
net/fd_posix.go:55 +0x25
net.(*conn).Read(0xc0004c3d38, {0xc0005097bf?, 0x0?, 0x0?})
net/net.go:179 +0x45
github.com/docker/cli/cli-plugins/socket.ConnectAndWait.func1()
github.com/docker/cli@v25.0.1+incompatible/cli-plugins/socket/socket.go:65 +0x45
created by github.com/docker/cli/cli-plugins/socket.ConnectAndWait in goroutine 1
github.com/docker/cli@v25.0.1+incompatible/cli-plugins/socket/socket.go:62 +0x118
goroutine 9 [IO wait]:
internal/poll.runtime_pollWait(0x7f43ba1a8d60, 0x72)
runtime/netpoll.go:343 +0x85
internal/poll.(*pollDesc).wait(0xc00050cd00?, 0xc000558000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x27
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00050cd00, {0xc000558000, 0x1000, 0x1000})
internal/poll/fd_unix.go:164 +0x27a
net.(*netFD).Read(0xc00050cd00, {0xc000558000?, 0xc0000a4ec8?, 0xc000195560?})
net/fd_posix.go:55 +0x25
net.(*conn).Read(0xc0004c3e20, {0xc000558000?, 0x0?, 0x0?})
net/net.go:179 +0x45
net/http.(*persistConn).Read(0xc000443d40, {0xc000558000?, 0x44fdc0?, 0xc0000a4ec8?})
net/http/transport.go:1954 +0x4a
bufio.(*Reader).fill(0xc000195740)
bufio/bufio.go:113 +0x103
bufio.(*Reader).Peek(0xc000195740, 0x1)
bufio/bufio.go:151 +0x53
net/http.(*persistConn).readLoop(0xc000443d40)
net/http/transport.go:2118 +0x1b9
created by net/http.(*Transport).dialConn in goroutine 8
net/http/transport.go:1776 +0x169f
goroutine 10 [runnable]:
fmt.(*pp).doPrintf(0xc000543930, {0x22804cb, 0x10}, {0xc0005b7e88?, 0x2, 0x2})
fmt/print.go:1021 +0x11bf
fmt.Fprintf({0x25bdf00, 0xc0001ab380}, {0x22804cb, 0x10}, {0xc0005b7e88, 0x2, 0x2})
fmt/print.go:224 +0x71
net/http.(*Request).write(0xc00002e400, {0x25bdf00, 0xc0001ab380}, 0x0, 0x0, 0x0)
net/http/request.go:651 +0x645
net/http.(*persistConn).writeLoop(0xc000443d40)
net/http/transport.go:2424 +0x18f
created by net/http.(*Transport).dialConn in goroutine 8
net/http/transport.go:1777 +0x16f1
goroutine 35 [syscall]:
os/signal.signal_recv()
runtime/sigqueue.go:152 +0x29
os/signal.loop()
os/signal/signal_unix.go:23 +0x13
created by os/signal.Notify.func1.1 in goroutine 1
os/signal/signal.go:151 +0x1f
goroutine 36 [chan receive]:
github.com/docker/compose/v2/cmd/compose.configCommand.Adapt.AdaptCmd.func6.1()
github.com/docker/compose/v2/cmd/compose/compose.go:81 +0x27
created by github.com/docker/compose/v2/cmd/compose.configCommand.Adapt.AdaptCmd.func6 in goroutine 1
github.com/docker/compose/v2/cmd/compose/compose.go:80 +0x119
goroutine 37 [chan receive]:
github.com/docker/compose/v2/cmd/compose.configCommand.Adapt.AdaptCmd.func7.1()
github.com/docker/compose/v2/cmd/compose/compose.go:81 +0x27
created by github.com/docker/compose/v2/cmd/compose.configCommand.Adapt.AdaptCmd.func7 in goroutine 1
github.com/docker/compose/v2/cmd/compose/compose.go:80 +0x119
goroutine 365 [runnable]:
regexp.(*Regexp).FindStringSubmatch(0xc0002957c0, {0xc00088a000, 0x65})
regexp/regexp.go:1050 +0xba
github.com/distribution/reference.Parse({0xc00088a000, 0x65})
github.com/distribution/reference@v0.5.0/reference.go:192 +0x3f
github.com/distribution/reference.ParseNormalizedNamed({0xc000240540, 0x65})
github.com/distribution/reference@v0.5.0/normalize.go:71 +0x194
github.com/distribution/reference.ParseDockerRef({0xc000240540?, 0x0?})
github.com/distribution/reference@v0.5.0/normalize.go:108 +0x1c
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:501 +0x45
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 364 [runnable]:
regexp/syntax.(*Inst).MatchRunePos(0xc0001ef040?, 0x66?)
regexp/syntax/prog.go:204 +0x1d9
regexp/syntax.(*Inst).MatchRune(...)
regexp/syntax/prog.go:196
regexp.(*Regexp).doOnePass(0xc000295400, {0x0?, 0x0}, {0x0, 0x0, 0x0}, {0xc000792033, 0x47}, 0x0, 0x0, ...)
regexp/exec.go:458 +0x6ec
regexp.(*Regexp).doExecute(0xc0007ae020?, {0x0?, 0x0?}, {0x0?, 0x0?, 0x7f439966d180?}, {0xc000792033?, 0x418bdc?}, 0xc00089a000?, 0x0, ...)
regexp/exec.go:532 +0x2a8
regexp.(*Regexp).doMatch(...)
regexp/exec.go:514
regexp.(*Regexp).MatchString(...)
regexp/regexp.go:533
github.com/distribution/reference.WithDigest({0x25c7e88, 0xc0007ae020}, {0xc000792033, 0x47})
github.com/distribution/reference@v0.5.0/reference.go:299 +0x6a
github.com/distribution/reference.ParseDockerRef({0xc000069200?, 0x4?})
github.com/distribution/reference@v0.5.0/normalize.go:118 +0xa5
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:501 +0x45
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 366 [select]:
net.(*Resolver).lookupIPAddr(0x377c440, {0x25e2220?, 0x37b8480}, {0x226bce2, 0x2}, {0xc0004760c0, 0x7})
net/lookup.go:332 +0x3fe
net.(*Resolver).LookupIPAddr(...)
net/lookup.go:210
net.LookupIP({0xc0004760c0?, 0x7?})
net/lookup.go:196 +0x49
github.com/docker/docker/registry.isCIDRMatch({0xc0004c38a8, 0x1, 0xc0004760c0?}, {0xc0004760c0, 0x7})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:298 +0x76
github.com/docker/docker/registry.(*serviceConfig).isSecureIndex(...)
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:285
github.com/docker/docker/registry.newIndexInfo(0xc000396c40, {0xc0004760c0?, 0x774bdb?})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:402 +0xb4
github.com/docker/docker/registry.newRepositoryInfo(0xc0000abc08?, {0x25c7ed8, 0xc00049a0a0})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:418 +0x3c
github.com/docker/docker/registry.ParseRepositoryInfo(...)
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:436
github.com/docker/compose/v2/pkg/compose.encodedAuth({0x25c7ed8?, 0xc00049a0a0?}, {0x25bd9e0, 0xc0004cc180})
github.com/docker/compose/v2/pkg/compose/pull.go:246 +0x59
github.com/docker/compose/v2/pkg/compose.(*composeService).Config.func1({0x25c7ed8, 0xc00049a0a0})
github.com/docker/compose/v2/pkg/compose/compose.go:154 +0x85
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:508 +0x8f
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 354 [select]:
net.(*Resolver).lookupIPAddr(0x377c440, {0x25e2220?, 0x37b8480}, {0x226bce2, 0x2}, {0xc0000603c0, 0x7})
net/lookup.go:332 +0x3fe
net.(*Resolver).LookupIPAddr(...)
net/lookup.go:210
net.LookupIP({0xc0000603c0?, 0x7?})
net/lookup.go:196 +0x49
github.com/docker/docker/registry.isCIDRMatch({0xc0004c38a8, 0x1, 0xc0000603c0?}, {0xc0000603c0, 0x7})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:298 +0x76
github.com/docker/docker/registry.(*serviceConfig).isSecureIndex(...)
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:285
github.com/docker/docker/registry.newIndexInfo(0xc000396c40, {0xc0000603c0?, 0x7f4402538a68?})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:402 +0xb4
github.com/docker/docker/registry.newRepositoryInfo(0xc0005c7c08?, {0x25c7ed8, 0xc0005b8020})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:418 +0x3c
github.com/docker/docker/registry.ParseRepositoryInfo(...)
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:436
github.com/docker/compose/v2/pkg/compose.encodedAuth({0x25c7ed8?, 0xc0005b8020?}, {0x25bd9e0, 0xc0004cc180})
github.com/docker/compose/v2/pkg/compose/pull.go:246 +0x59
github.com/docker/compose/v2/pkg/compose.(*composeService).Config.func1({0x25c7ed8, 0xc0005b8020})
github.com/docker/compose/v2/pkg/compose/compose.go:154 +0x85
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:508 +0x8f
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 362 [runnable]:
sort.Strings(...)
sort/sort.go:176
net/url.Values.Encode(0xc0008819b0)
net/url/url.go:974 +0x1b3
github.com/docker/docker/client.(*Client).getAPIPath(0x30?, {0x25e24c0?, 0xc0004280a0?}, {0xc0004c02d0, 0x30}, 0x25b3a88?)
github.com/docker/docker@v25.0.1+incompatible/client/client.go:285 +0x18c
github.com/docker/docker/client.(*Client).sendRequest(0x227df46?, {0x25e24c0, 0xc0004280a0}, {0x226c06d, 0x3}, {0xc0004c02d0?, 0xc0005b4a38?}, 0x18?, {0x0, 0x0}, ...)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:120 +0x6f
github.com/docker/docker/client.(*Client).get(...)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:37
github.com/docker/docker/client.(*Client).DistributionInspect(0xc0005b4db8?, {0x25e24c0, 0xc0004280a0}, {0xc0002fe140, 0x1d}, {0xc0004a001c, 0x4})
github.com/docker/docker@v25.0.1+incompatible/client/distribution_inspect.go:31 +0x31a
github.com/docker/compose/v2/pkg/compose.(*composeService).Config.func1({0x25c7ed8, 0xc00049a1a0})
github.com/docker/compose/v2/pkg/compose/compose.go:158 +0x13a
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:508 +0x8f
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 361 [select]:
net.(*Resolver).lookupIPAddr(0x377c440, {0x25e2220?, 0x37b8480}, {0x226bce2, 0x2}, {0xc000248000, 0x7})
net/lookup.go:332 +0x3fe
net.(*Resolver).LookupIPAddr(...)
net/lookup.go:210
net.LookupIP({0xc000248000?, 0x7?})
net/lookup.go:196 +0x49
github.com/docker/docker/registry.isCIDRMatch({0xc0004c38a8, 0x1, 0xc000248000?}, {0xc000248000, 0x7})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:298 +0x76
github.com/docker/docker/registry.(*serviceConfig).isSecureIndex(...)
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:285
github.com/docker/docker/registry.newIndexInfo(0xc000396c40, {0xc000248000?, 0x7f4402538f18?})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:402 +0xb4
github.com/docker/docker/registry.newRepositoryInfo(0xc0005c3c08?, {0x25c7ed8, 0xc00060e020})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:418 +0x3c
github.com/docker/docker/registry.ParseRepositoryInfo(...)
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:436
github.com/docker/compose/v2/pkg/compose.encodedAuth({0x25c7ed8?, 0xc00060e020?}, {0x25bd9e0, 0xc0004cc180})
github.com/docker/compose/v2/pkg/compose/pull.go:246 +0x59
github.com/docker/compose/v2/pkg/compose.(*composeService).Config.func1({0x25c7ed8, 0xc00060e020})
github.com/docker/compose/v2/pkg/compose/compose.go:154 +0x85
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:508 +0x8f
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 359 [select]:
net.(*Resolver).lookupIPAddr(0x377c440, {0x25e2220?, 0x37b8480}, {0x226bce2, 0x2}, {0xc000688000, 0x7})
net/lookup.go:332 +0x3fe
net.(*Resolver).LookupIPAddr(...)
net/lookup.go:210
net.LookupIP({0xc000688000?, 0x7?})
net/lookup.go:196 +0x49
github.com/docker/docker/registry.isCIDRMatch({0xc0004c38a8, 0x1, 0xc000688000?}, {0xc000688000, 0x7})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:298 +0x76
github.com/docker/docker/registry.(*serviceConfig).isSecureIndex(...)
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:285
github.com/docker/docker/registry.newIndexInfo(0xc000396c40, {0xc000688000?, 0x7f44025393c8?})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:402 +0xb4
github.com/docker/docker/registry.newRepositoryInfo(0xc000705c08?, {0x25c7ed8, 0xc0006b8020})
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:418 +0x3c
github.com/docker/docker/registry.ParseRepositoryInfo(...)
github.com/docker/docker@v25.0.1+incompatible/registry/config.go:436
github.com/docker/compose/v2/pkg/compose.encodedAuth({0x25c7ed8?, 0xc0006b8020?}, {0x25bd9e0, 0xc0004cc180})
github.com/docker/compose/v2/pkg/compose/pull.go:246 +0x59
github.com/docker/compose/v2/pkg/compose.(*composeService).Config.func1({0x25c7ed8, 0xc0006b8020})
github.com/docker/compose/v2/pkg/compose/compose.go:154 +0x85
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:508 +0x8f
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 358 [runnable]:
sort.Strings(...)
sort/sort.go:176
net/url.Values.Encode(0xc0008859b0)
net/url/url.go:974 +0x1b3
github.com/docker/docker/client.(*Client).getAPIPath(0x30?, {0x25e24c0?, 0xc0004280a0?}, {0xc0006640c0, 0x30}, 0x25b3a88?)
github.com/docker/docker@v25.0.1+incompatible/client/client.go:285 +0x18c
github.com/docker/docker/client.(*Client).sendRequest(0x227df46?, {0x25e24c0, 0xc0004280a0}, {0x226c06d, 0x3}, {0xc0006640c0?, 0xc000706a38?}, 0x18?, {0x0, 0x0}, ...)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:120 +0x6f
github.com/docker/docker/client.(*Client).get(...)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:37
github.com/docker/docker/client.(*Client).DistributionInspect(0xc000706db8?, {0x25e24c0, 0xc0004280a0}, {0xc0004f4480, 0x1d}, {0xc0006ce01c, 0x4})
github.com/docker/docker@v25.0.1+incompatible/client/distribution_inspect.go:31 +0x31a
github.com/docker/compose/v2/pkg/compose.(*composeService).Config.func1({0x25c7ed8, 0xc0006b80a0})
github.com/docker/compose/v2/pkg/compose/compose.go:158 +0x13a
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:508 +0x8f
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 357 [select]:
net/http.(*persistConn).roundTrip(0xc000443d40, 0xc000458380)
net/http/transport.go:2652 +0x979
net/http.(*Transport).roundTrip(0xc00003e3c0, 0xc00002e400)
net/http/transport.go:604 +0x79a
net/http.(*Transport).RoundTrip(0x3763420?, 0x25e2488?)
net/http/roundtrip.go:17 +0x13
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*Transport).RoundTrip(0xc000211030, 0xc00002e300)
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.45.0/transport.go:116 +0x52b
net/http.send(0xc00002e300, {0x25bd740, 0xc000211030}, {0xc000685401?, 0x41b00b?, 0x0?})
net/http/client.go:260 +0x606
net/http.(*Client).send(0xc0005336b0, 0xc00002e300, {0xc000685450?, 0x41f816?, 0x0?})
net/http/client.go:181 +0x98
net/http.(*Client).do(0xc0005336b0, 0xc00002e300)
net/http/client.go:724 +0x912
net/http.(*Client).Do(...)
net/http/client.go:590
github.com/docker/docker/client.(*Client).doRequest(0xc0005461e0, 0xc0005461e0?)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:140 +0x7c
github.com/docker/docker/client.(*Client).sendRequest(0x227df46?, {0x25e24c0, 0xc0004280a0}, {0x226c06d, 0x3}, {0xc0001221e0?, 0xc0000a5a38?}, 0x18?, {0x0, 0x0}, ...)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:125 +0xd6
github.com/docker/docker/client.(*Client).get(...)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:37
github.com/docker/docker/client.(*Client).DistributionInspect(0x40fa5f?, {0x25e24c0, 0xc0004280a0}, {0xc000392340, 0x1d}, {0xc000843b84, 0x4})
github.com/docker/docker@v25.0.1+incompatible/client/distribution_inspect.go:31 +0x31a
github.com/docker/compose/v2/pkg/compose.(*composeService).Config.func1({0x25c7ed8, 0xc00042f640})
github.com/docker/compose/v2/pkg/compose/compose.go:158 +0x13a
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:508 +0x8f
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
goroutine 289 [runnable]:
net/http.(*Transport).getConn(0xc00003e3c0, 0xc00071e080, {{}, 0x0, {0x226c73c, 0x4}, {0xc0000b4ac8, 0x17}, 0x0})
net/http/transport.go:1387 +0x46a
net/http.(*Transport).roundTrip(0xc00003e3c0, 0xc0000ca700)
net/http/transport.go:591 +0x73a
net/http.(*Transport).RoundTrip(0x3763420?, 0x25e2488?)
net/http/roundtrip.go:17 +0x13
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*Transport).RoundTrip(0xc000211030, 0xc0008aa000)
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.45.0/transport.go:116 +0x52b
net/http.send(0xc0008aa000, {0x25bd740, 0xc000211030}, {0xc000681401?, 0x41b00b?, 0x0?})
net/http/client.go:260 +0x606
net/http.(*Client).send(0xc0005336b0, 0xc0008aa000, {0xc000681450?, 0x41f816?, 0x0?})
net/http/client.go:181 +0x98
net/http.(*Client).do(0xc0005336b0, 0xc0008aa000)
net/http/client.go:724 +0x912
net/http.(*Client).Do(...)
net/http/client.go:590
github.com/docker/docker/client.(*Client).doRequest(0xc0005461e0, 0xc0005461e0?)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:140 +0x7c
github.com/docker/docker/client.(*Client).sendRequest(0x227df46?, {0x25e24c0, 0xc0004280a0}, {0x226c06d, 0x3}, {0xc000438000?, 0x7f4399f61598?}, 0x42d5a0?, {0x0, 0x0}, ...)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:125 +0xd6
github.com/docker/docker/client.(*Client).get(...)
github.com/docker/docker@v25.0.1+incompatible/client/request.go:37
github.com/docker/docker/client.(*Client).DistributionInspect(0xc0005b6db8?, {0x25e24c0, 0xc0004280a0}, {0xc00005e380, 0x1d}, {0xc00053400c, 0x4})
github.com/docker/docker@v25.0.1+incompatible/client/distribution_inspect.go:31 +0x31a
github.com/docker/compose/v2/pkg/compose.(*composeService).Config.func1({0x25c7ed8, 0xc000512020})
github.com/docker/compose/v2/pkg/compose/compose.go:158 +0x13a
github.com/compose-spec/compose-go/v2/types.(*Project).WithImagesResolved.func1()
github.com/compose-spec/compose-go/v2@v2.0.0-rc.3/types/project.go:508 +0x8f
golang.org/x/sync/errgroup.(*Group).Go.func1()
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x96
Description
When using
docker compose config, the command sometimes fails withfatal error: concurrent map writes.This seems to happen more often when there are more services.
Steps To Reproduce
Write a
compose-many.ymlwith the following:Run the following command:
Within a few iterations the command will fail with
fatal error: concurrent map writesCompose Version
Docker Environment
Anything else?
Output