Skip to content

OOM Panic from transport.go #198

@adriananderson

Description

@adriananderson

Environment

Device and OS: Gitlab Runner / Ubuntu Linux
App/package versions: package/uds-bundle-xxxx-elk-amd64-fa00da3c7c4a1dd334b277b6fbe9e366c15d782d.tar.zst
Kubernetes distro being used: Rancher
Other:

Steps to reproduce

  1. attempt to push a 12GB image on a VM with only 8 GB of memory

Expected result

The push is successful and does not panic

Actual Result

The process panics due to OOM

Visual Proof (screenshots, videos, text, etc)

Publishing xxxx-elk/bundles/xxxx-elk:fa00da3c7c4a1dd334b277b6fbe9e366c15d782d    5% | 1sfatal error: runtime: out of memory

runtime stack:
runtime.throw({0x637d9c9?, 0x2030?})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/panic.go:1094 +0x48 fp=0x7ffd119481a8 sp=0x7ffd11948178 pc=0x481d08
runtime.sysMapOS(0xc049800000, 0x2cfc00000, {0x6316616, 0x4})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mem_linux.go:175 +0x13b fp=0x7ffd119481e8 sp=0x7ffd119481a8 pc=0x42349b
runtime.sysMap(0xc049800000, 0x2cfc00000, 0xb1a7108?, {0x6316616, 0x4})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mem.go:178 +0x45 fp=0x7ffd11948218 sp=0x7ffd119481e8 pc=0x422d25
runtime.(*mheap).grow(0xb196f00, 0x167da7?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mheap.go:1616 +0x265 fp=0x7ffd11948298 sp=0x7ffd11948218 pc=0x436ce5
runtime.(*mheap).allocSpan(0xb196f00, 0x167da7, 0x0, 0x1)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mheap.go:1299 +0x1ad fp=0x7ffd11948340 sp=0x7ffd11948298 pc=0x43632d
runtime.(*mheap).alloc.func1()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mheap.go:1017 +0x5c fp=0x7ffd11948388 sp=0x7ffd11948340 pc=0x435dfc
runtime.systemstack(0x48d29f)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:513 +0x4a fp=0x7ffd11948398 sp=0x7ffd11948388 pc=0x48892a
goroutine 148 gp=0xc001435180 m=0 mp=0xb17da00 [running]:
runtime.systemstack_switch()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:478 +0x8 fp=0xc0008b0d00 sp=0xc0008b0cf0 pc=0x4888c8
runtime.(*mheap).alloc(0x2cfb4e000?, 0x167da7?, 0x60?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mheap.go:1011 +0x5b fp=0xc0008b0d48 sp=0xc0008b0d00 pc=0x435d5b
runtime.(*mcache).allocLarge(0xc0008b0de0?, 0x2cfb4ca05, 0x1)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mcache.go:236 +0x7d fp=0xc0008b0d98 sp=0xc0008b0d48 pc=0x4203fd
runtime.mallocgcLarge(0xc000e4ebb0?, 0x548f1e0, 0x1)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/malloc.go:1552 +0x79 fp=0xc0008b0df0 sp=0xc0008b0d98 pc=0x41d659
runtime.mallocgc(0x2cfb4ca05, 0x548f1e0, 0x1)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/malloc.go:1072 +0xcc fp=0xc0008b0e20 sp=0xc0008b0df0 pc=0x47f56c
runtime.makeslice(0xb1a91a0?, 0xc000d0ca80?, 0x668c?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/slice.go:116 +0x49 fp=0xc0008b0e48 sp=0xc0008b0e20 pc=0x484829
github.com/defenseunicorns/pkg/helpers/v2.(*Transport).roundTrip(0xc000adcc40, 0xc000300640)
/home/runner/go/pkg/mod/github.com/defenseunicorns/pkg/helpers/v2@v2.0.4/transport.go:92 +0xeb fp=0xc0008b0ed8 sp=0xc0008b0e48 pc=0x7a15cb
github.com/defenseunicorns/pkg/helpers/v2.(*Transport).RoundTrip(0xc000adcc40, 0xc000300640)
/home/runner/go/pkg/mod/github.com/defenseunicorns/pkg/helpers/v2@v2.0.4/transport.go:38 +0x99 fp=0xc0008b0fa0 sp=0xc0008b0ed8 pc=0x7a1299
net/http.send(0xc000300640, {0x760b960, 0xc000adcc40}, {0xc0002d5001?, 0xc001d5e5b0?, 0x0?})
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/client.go:259 +0x5e2 fp=0xc0008b1190 sp=0xc0008b0fa0 pc=0x71ce62
net/http.(*Client).send(0xb0d5020, 0xc000300640, {0x41d154?, 0xc001d5e5a0?, 0x0?})
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/client.go:180 +0x91 fp=0xc0008b1208 sp=0xc0008b1190 pc=0x71c711
net/http.(*Client).do(0xb0d5020, 0xc000300640)
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/client.go:729 +0x9c9 fp=0xc0008b13f8 sp=0xc0008b1208 pc=0x71ec29
net/http.(*Client).Do(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/client.go:587
oras.land/oras-go/v2/registry/remote/auth.(*Client).send(0xc00144e080, 0xc000300640)
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/registry/remote/auth/client.go:139 +0x1a5 fp=0xc0008b14c0 sp=0xc0008b13f8 pc=0x99ac85
oras.land/oras-go/v2/registry/remote/auth.(*Client).Do(0xc00144e080, 0xc000300500)
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/registry/remote/auth/client.go:203 +0x44b fp=0xc0008b16c0 sp=0xc0008b14c0 pc=0x99b24b
oras.land/oras-go/v2/registry/remote.(*Repository).do(0x767c350?, 0xc000ef1440?)
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/registry/remote/repository.go:261 +0x102 fp=0xc0008b1700 sp=0xc0008b16c0 pc=0x9a3182
oras.land/oras-go/v2/registry/remote.(*blobStore).Resolve(0xc000a48288, {0x767c388, 0xc001d7c0f0}, {0xc0008d4f00?, 0x5c70000?})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/registry/remote/repository.go:963 +0x27f fp=0xc0008b1900 sp=0xc0008b1700 pc=0x9aa3bf
oras.land/oras-go/v2/registry/remote.(*blobStore).Exists(0xc0007eeb70?, {0x767c388?, 0xc001d7c0f0?}, {{0xc0007eeb70, 0x22}, {0xc0008d4f00, 0x47}, 0x2cfb4ca05, {0x0, 0x0, ...}, ...})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/registry/remote/repository.go:931 +0x7b fp=0xc0008b1a38 sp=0xc0008b1900 pc=0x9a9f9b
oras.land/oras-go/v2/registry/remote.(*Repository).Exists(0xc000e4e0b0, {0x767c388, 0xc001d7c0f0}, {{0xc0007eeb70, 0x22}, {0xc0008d4f00, 0x47}, 0x2cfb4ca05, {0x0, 0x0, ...}, ...})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/registry/remote/repository.go:305 +0x206 fp=0xc0008b1b68 sp=0xc0008b1a38 pc=0x9a3b66
oras.land/oras-go/v2.copyGraph.func1({0x767c388, 0xc001d7c0f0}, 0xc001deaba0, {{0xc0007eeb70, 0x22}, {0xc0008d4f00, 0x47}, 0x2cfb4ca05, {0x0, 0x0, ...}, ...})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/copy.go:229 +0x19a fp=0xc0008b1e68 sp=0xc0008b1b68 pc=0x9c48da
oras.land/oras-go/v2/internal/syncutil.Go[...].func1.func2()
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:94 +0x11a fp=0xc0008b1f78 sp=0xc0008b1e68 pc=0x98ab3a
golang.org/x/sync/errgroup.(*Group).Go.func1()
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:93 +0x50 fp=0xc0008b1fe0 sp=0xc0008b1f78 pc=0x591710
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0008b1fe8 sp=0xc0008b1fe0 pc=0x48a761
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 96
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:78 +0x95
goroutine 1 gp=0xc000002380 m=nil [sync.WaitGroup.Wait]:
runtime.gopark(0xc000f22f70?, 0x41d154?, 0x20?, 0xdf?, 0x7b521d1fc4a0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc000f22f10 sp=0xc000f22ef0 pc=0x481e2e
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:466
runtime.semacquire1(0xc00144e5d0, 0x0, 0x1, 0x0, 0x19)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/sema.go:192 +0x21d fp=0xc000f22f78 sp=0xc000f22f10 pc=0x45f69d
sync.runtime_SemacquireWaitGroup(0xc00133fab8?, 0x80?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/sema.go:114 +0x2e fp=0xc000f22fb0 sp=0xc000f22f78 pc=0x483a6e
sync.(*WaitGroup).Wait(0xc00144e5c8)
/opt/hostedtoolcache/go/1.25.0/x64/src/sync/waitgroup.go:206 +0x85 fp=0xc000f22fd8 sp=0xc000f22fb0 pc=0x496985
golang.org/x/sync/errgroup.(*Group).Wait(0xc00144e5c0)
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:56 +0x1e fp=0xc000f22ff8 sp=0xc000f22fd8 pc=0x5915be
oras.land/oras-go/v2/internal/syncutil.Go[...]({0x767c270, 0xb1adba0?}, 0xc001d7cd20?, 0xc0013a07e0, {0xc000f23218, 0x1, 0x61dae58})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:103 +0x395 fp=0xc000f23198 sp=0xc000f22ff8 pc=0x98a955
oras.land/oras-go/v2.copyGraph({0x767c270, 0xb1adba0}, {0x7b521cf90b28, 0xc000e74000}, {0x7b521cf90b90, 0xc000e4e0b0}, {{0xc000f715c0, 0x2a}, {0xc0008d51d0, 0x47}, ...}, ...)
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/copy.go:281 +0x466 fp=0xc000f232a8 sp=0xc000f23198 pc=0x9c4686
oras.land/oras-go/v2.Copy({0x767c270, 0xb1adba0}, {0x765d210, 0xc000e74000}, {_, }, {, }, {0xc00066eeb4, 0x28}, ...)
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/copy.go:166 +0x8a5 fp=0xc000f23510 sp=0xc000f232a8 pc=0x9c3fe5
github.com/defenseunicorns/uds-cli/src/pkg/bundle.(*tarballBundleProvider).PublishBundle(
, {{0xc000f01ff4, 0x9}, {{0xc00148c060, 0xa}, {0xc000f70750, 0x2b}, {0xc000f70840, 0x28}, {0x0, ...}, ...}, ...}, ...)
/home/runner/work/uds-cli/uds-cli/src/pkg/bundle/tarball.go:335 +0xe27 fp=0xc000f23848 sp=0xc000f23510 pc=0x4fbfd87
github.com/defenseunicorns/uds-cli/src/pkg/bundle.(*Bundle).Publish(0xc000ef4780)
/home/runner/work/uds-cli/uds-cli/src/pkg/bundle/publish.go:74 +0x6dd fp=0xc000f23ba8 sp=0xc000f23848 pc=0x4fb60bd
github.com/defenseunicorns/uds-cli/src/cmd.init.func10(0xc000eda300?, {0xc000d03b60?, 0x4?, 0x63164f6?})
/home/runner/work/uds-cli/uds-cli/src/cmd/uds.go:179 +0x1b6 fp=0xc000f23c68 sp=0xc000f23ba8 pc=0x501c316
github.com/spf13/cobra.(*Command).execute(0xb114c20, {0xc000d03b00, 0x6, 0x6})
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.10.1/command.go:1015 +0xb02 fp=0xc000f23e10 sp=0xc000f23c68 pc=0xaf5522
github.com/spf13/cobra.(*Command).ExecuteC(0xb116040)
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.10.1/command.go:1148 +0x465 fp=0xc000f23f00 sp=0xc000f23e10 pc=0xaf5e65
github.com/spf13/cobra.(*Command).Execute(...)
/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.10.1/command.go:1071
github.com/defenseunicorns/uds-cli/src/cmd.Execute()
/home/runner/work/uds-cli/uds-cli/src/cmd/root.go:63 +0x1a fp=0xc000f23f40 sp=0xc000f23f00 pc=0x501f25a
main.main()
/home/runner/work/uds-cli/uds-cli/main.go:19 +0x47 fp=0xc000f23f50 sp=0xc000f23f40 pc=0x5021647
runtime.main()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:285 +0x29d fp=0xc000f23fe0 sp=0xc000f23f50 pc=0x44b47d
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc000f23fe8 sp=0xc000f23fe0 pc=0x48a761
goroutine 2 gp=0xc0000028c0 m=nil [force gc (idle), 2 minutes]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0000f2fa8 sp=0xc0000f2f88 pc=0x481e2e
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:466
runtime.forcegchelper()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:373 +0xb3 fp=0xc0000f2fe0 sp=0xc0000f2fa8 pc=0x44b7b3
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0000f2fe8 sp=0xc0000f2fe0 pc=0x48a761
created by runtime.init.7 in goroutine 1
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:361 +0x1a
goroutine 3 gp=0xc000002e00 m=nil [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0000f3780 sp=0xc0000f3760 pc=0x481e2e
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:466
runtime.bgsweep(0xc0000c6100)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgcsweep.go:323 +0xdf fp=0xc0000f37c8 sp=0xc0000f3780 pc=0x4327ff
runtime.gcenable.gowrap1()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:212 +0x25 fp=0xc0000f37e0 sp=0xc0000f37c8 pc=0x4267e5
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0000f37e8 sp=0xc0000f37e0 pc=0x48a761
created by runtime.gcenable in goroutine 1
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:212 +0x66
goroutine 4 gp=0xc000002fc0 m=nil [GC scavenge wait]:
runtime.gopark(0x10000?, 0x1296b04a?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0000f3f78 sp=0xc0000f3f58 pc=0x481e2e
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:466
runtime.(*scavengerState).park(0xb175b60)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc0000f3fa8 sp=0xc0000f3f78 pc=0x430269
runtime.bgscavenge(0xc0000c6100)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgcscavenge.go:658 +0x59 fp=0xc0000f3fc8 sp=0xc0000f3fa8 pc=0x430819
runtime.gcenable.gowrap2()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:213 +0x25 fp=0xc0000f3fe0 sp=0xc0000f3fc8 pc=0x426785
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0000f3fe8 sp=0xc0000f3fe0 pc=0x48a761
created by runtime.gcenable in goroutine 1
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:213 +0xa5
goroutine 17 gp=0xc000122000 m=nil [GOMAXPROCS updater (idle), 2 minutes]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0000ee788 sp=0xc0000ee768 pc=0x481e2e
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:466
runtime.updateMaxProcsGoroutine()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:6706 +0xe7 fp=0xc0000ee7e0 sp=0xc0000ee788 pc=0x459787
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0000ee7e8 sp=0xc0000ee7e0 pc=0x48a761
created by runtime.defaultGOMAXPROCSUpdateEnable in goroutine 1
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:6694 +0x37
goroutine 18 gp=0xc0001221c0 m=nil [finalizer wait, 2 minutes]:
runtime.gopark(0x45a755?, 0x42f75c?, 0xc0?, 0x50?, 0x490013?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0000f2620 sp=0xc0000f2600 pc=0x481e2e
runtime.runFinalizers()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mfinal.go:210 +0x107 fp=0xc0000f27e0 sp=0xc0000f2620 pc=0x4256e7
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0000f27e8 sp=0xc0000f27e0 pc=0x48a761
created by runtime.createfing in goroutine 1
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mfinal.go:172 +0x3d
goroutine 19 gp=0xc0001228c0 m=nil [GC worker (idle)]:
runtime.gopark(0x3d785cc087f?, 0x0?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0014c4f38 sp=0xc0014c4f18 pc=0x481e2e
runtime.gcBgMarkWorker(0xc000127f80)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:1463 +0xeb fp=0xc0014c4fc8 sp=0xc0014c4f38 pc=0x428ecb
runtime.gcBgMarkStartWorkers.gowrap1()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:1373 +0x25 fp=0xc0014c4fe0 sp=0xc0014c4fc8 pc=0x428da5
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0014c4fe8 sp=0xc0014c4fe0 pc=0x48a761
created by runtime.gcBgMarkStartWorkers in goroutine 1
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:1373 +0x105
goroutine 5 gp=0xc000003500 m=nil [GC worker (idle)]:
runtime.gopark(0x3d785cb74ca?, 0x0?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0000f4f38 sp=0xc0000f4f18 pc=0x481e2e
runtime.gcBgMarkWorker(0xc000127f80)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:1463 +0xeb fp=0xc0000f4fc8 sp=0xc0000f4f38 pc=0x428ecb
runtime.gcBgMarkStartWorkers.gowrap1()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:1373 +0x25 fp=0xc0000f4fe0 sp=0xc0000f4fc8 pc=0x428da5
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0000f4fe8 sp=0xc0000f4fe0 pc=0x48a761
created by runtime.gcBgMarkStartWorkers in goroutine 1
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mgc.go:1373 +0x105
goroutine 6 gp=0xc000123c00 m=nil [select]:
runtime.gopark(0xc0000f4778?, 0x3?, 0x28?, 0x46?, 0xc0000f4772?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0000f45f8 sp=0xc0000f45d8 pc=0x481e2e
runtime.selectgo(0xc0000f4778, 0xc0000f476c, 0xc0000b2100?, 0x0, 0x1000000?, 0x1)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/select.go:351 +0x845 fp=0xc0000f4738 sp=0xc0000f45f8 pc=0x45e545
go.opencensus.io/stats/view.(*worker).start(0xc0000b2100)
/home/runner/go/pkg/mod/go.opencensus.io@v0.24.0/stats/view/worker.go:292 +0x9f fp=0xc0000f47c8 sp=0xc0000f4738 pc=0x17c54ff
go.opencensus.io/stats/view.init.0.gowrap1()
/home/runner/go/pkg/mod/go.opencensus.io@v0.24.0/stats/view/worker.go:34 +0x25 fp=0xc0000f47e0 sp=0xc0000f47c8 pc=0x17c4865
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0000f47e8 sp=0xc0000f47e0 pc=0x48a761
created by go.opencensus.io/stats/view.init.0 in goroutine 1
/home/runner/go/pkg/mod/go.opencensus.io@v0.24.0/stats/view/worker.go:34 +0x8d
goroutine 7 gp=0xc0006ce000 m=nil [cleanup wait, 2 minutes]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0000f5f68 sp=0xc0000f5f48 pc=0x481e2e
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:466
runtime.(*cleanupQueue).dequeue(0xb1768e0)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mcleanup.go:439 +0xc5 fp=0xc0000f5fa0 sp=0xc0000f5f68 pc=0x4223e5
runtime.runCleanups()
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mcleanup.go:635 +0x45 fp=0xc0000f5fe0 sp=0xc0000f5fa0 pc=0x422aa5
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0000f5fe8 sp=0xc0000f5fe0 pc=0x48a761
created by runtime.(*cleanupQueue).createGs in goroutine 1
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/mcleanup.go:589 +0xa5
goroutine 56 gp=0xc001434700 m=nil [select]:
runtime.gopark(0xc00012efb0?, 0x2?, 0x70?, 0xee?, 0xc00012ef8c?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc00012ee18 sp=0xc00012edf8 pc=0x481e2e
runtime.selectgo(0xc00012efb0, 0xc00012ef88, 0xb174f40?, 0x0, 0xd97374bff3321614?, 0x1)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/select.go:351 +0x845 fp=0xc00012ef58 sp=0xc00012ee18 pc=0x45e545
atomicgo.dev/schedule.Every.func1()
/home/runner/go/pkg/mod/atomicgo.dev/schedule@v0.1.0/schedule.go:104 +0x7e fp=0xc00012efe0 sp=0xc00012ef58 pc=0xa8b0de
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc00012efe8 sp=0xc00012efe0 pc=0x48a761
created by atomicgo.dev/schedule.Every in goroutine 1
/home/runner/go/pkg/mod/atomicgo.dev/schedule@v0.1.0/schedule.go:102 +0x14c
goroutine 64 gp=0xc001434c40 m=nil [IO wait]:
runtime.gopark(0xc001fc5760?, 0x0?, 0x6?, 0x3e?, 0xb?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0018cf6f8 sp=0xc0018cf6d8 pc=0x481e2e
runtime.netpollblock(0x4abc58?, 0x4132c6?, 0x0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/netpoll.go:575 +0xf7 fp=0xc0018cf730 sp=0xc0018cf6f8 pc=0x443cd7
internal/poll.runtime_pollWait(0x7b521d45e400, 0x72)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/netpoll.go:351 +0x85 fp=0xc0018cf750 sp=0xc0018cf730 pc=0x481005
internal/poll.(*pollDesc).wait(0xc000e9c200?, 0xc000470d80?, 0x0)
/opt/hostedtoolcache/go/1.25.0/x64/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc0018cf778 sp=0xc0018cf750 pc=0x515b27
internal/poll.(*pollDesc).waitRead(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000e9c200, {0xc000470d80, 0xd80, 0xd80})
/opt/hostedtoolcache/go/1.25.0/x64/src/internal/poll/fd_unix.go:165 +0x279 fp=0xc0018cf810 sp=0xc0018cf778 pc=0x516e19
net.(*netFD).Read(0xc000e9c200, {0xc000470d80?, 0x1d?, 0x47f54c?})
/opt/hostedtoolcache/go/1.25.0/x64/src/net/fd_posix.go:68 +0x25 fp=0xc0018cf858 sp=0xc0018cf810 pc=0x622de5
net.(*conn).Read(0xc000132fd8, {0xc000470d80?, 0x7b521d0828f0?, 0x7b5263f2a108?})
/opt/hostedtoolcache/go/1.25.0/x64/src/net/net.go:196 +0x45 fp=0xc0018cf8a0 sp=0xc0018cf858 pc=0x632f25
crypto/tls.(*atLeastReader).Read(0xc00133fe18, {0xc000470d80?, 0xf?, 0x2?})
/opt/hostedtoolcache/go/1.25.0/x64/src/crypto/tls/conn.go:816 +0x3b fp=0xc0018cf8e8 sp=0xc0018cf8a0 pc=0x69aa3b
bytes.(*Buffer).ReadFrom(0xc0009842a8, {0x760d000, 0xc00133fe18})
/opt/hostedtoolcache/go/1.25.0/x64/src/bytes/buffer.go:217 +0x98 fp=0xc0018cf940 sp=0xc0018cf8e8 pc=0x54e6d8
crypto/tls.(*Conn).readFromUntil(0xc000984008, {0x760b580, 0xc000132fd8}, 0x4471b4?)
/opt/hostedtoolcache/go/1.25.0/x64/src/crypto/tls/conn.go:838 +0xde fp=0xc0018cf978 sp=0xc0018cf940 pc=0x69ac1e
crypto/tls.(*Conn).readRecordOrCCS(0xc000984008, 0x0)
/opt/hostedtoolcache/go/1.25.0/x64/src/crypto/tls/conn.go:627 +0x3db fp=0xc0018cfbf0 sp=0xc0018cf978 pc=0x697c9b
crypto/tls.(*Conn).readRecord(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/crypto/tls/conn.go:589
crypto/tls.(*Conn).Read(0xc000984008, {0xc000644000, 0x1000, 0x6314546?})
/opt/hostedtoolcache/go/1.25.0/x64/src/crypto/tls/conn.go:1392 +0x145 fp=0xc0018cfc58 sp=0xc0018cfbf0 pc=0x69e545
bufio.(*Reader).Read(0xc0008c9e60, {0xc001d7e3c0, 0x9, 0xc8?})
/opt/hostedtoolcache/go/1.25.0/x64/src/bufio/bufio.go:245 +0x197 fp=0xc0018cfc90 sp=0xc0018cfc58 pc=0x554d37
io.ReadAtLeast({0x760a440, 0xc0008c9e60}, {0xc001d7e3c0, 0x9, 0x9}, 0x9)
/opt/hostedtoolcache/go/1.25.0/x64/src/io/io.go:335 +0x8e fp=0xc0018cfcd8 sp=0xc0018cfc90 pc=0x49ac0e
io.ReadFull(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/io/io.go:354
net/http.http2readFrameHeader({0xc001d7e3c0, 0x9, 0xc001435880?}, {0x760a440?, 0xc0008c9e60?})
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/h2_bundle.go:1811 +0x65 fp=0xc0018cfd28 sp=0xc0018cfcd8 pc=0x72be45
net/http.(*http2Framer).ReadFrame(0xc001d7e380)
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/h2_bundle.go:2078 +0x7d fp=0xc0018cfe10 sp=0xc0018cfd28 pc=0x72c51d
net/http.(*http2clientConnReadLoop).run(0xc0018cffa8)
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/h2_bundle.go:9539 +0xda fp=0xc0018cff60 sp=0xc0018cfe10 pc=0x74f6ba
net/http.(*http2ClientConn).readLoop(0xc001fa6c40)
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/h2_bundle.go:9408 +0x79 fp=0xc0018cffc8 sp=0xc0018cff60 pc=0x74ea39
net/http.(*http2Transport).newClientConn.gowrap1()
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/h2_bundle.go:8192 +0x25 fp=0xc0018cffe0 sp=0xc0018cffc8 pc=0x748765
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0018cffe8 sp=0xc0018cffe0 pc=0x48a761
created by net/http.(*http2Transport).newClientConn in goroutine 63
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/h2_bundle.go:8192 +0xde5
goroutine 68 gp=0xc001434e00 m=nil [select]:
runtime.gopark(0xc0008b3958?, 0x2?, 0xc0?, 0x50?, 0xc0008b391c?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0008b37a8 sp=0xc0008b3788 pc=0x481e2e
runtime.selectgo(0xc0008b3958, 0xc0008b3918, 0xb1b50c0?, 0x0, 0x41d154?, 0x1)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/select.go:351 +0x845 fp=0xc0008b38e8 sp=0xc0008b37a8 pc=0x45e545
golang.org/x/sync/semaphore.(*Weighted).Acquire(0xc001d7cd20, {0x767c388, 0xc000922410}, 0x1)
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/semaphore/semaphore.go:74 +0x333 fp=0xc0008b3998 sp=0xc0008b38e8 pc=0x592f53
oras.land/oras-go/v2/internal/syncutil.(*LimitedRegion).Start(0xc001deac60)
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:49 +0x36 fp=0xc0008b39c8 sp=0xc0008b3998 pc=0x987eb6
oras.land/oras-go/v2/internal/syncutil.Go[...]({0x767c388, 0xc000922190?}, 0xc001d7cd20?, 0xc0013a07e0, {0xc000c95008, 0x18, 0x0})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:76 +0x273 fp=0xc0008b3b68 sp=0xc0008b39c8 pc=0x98a833
oras.land/oras-go/v2.copyGraph.func1({0x767c388, 0xc000922190}, 0xc001dea220, {{0xc0007ee0c0, 0x22}, {0xc0000c4b40, 0x47}, 0x1b34, {0x0, 0x0, ...}, ...})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/copy.go:252 +0x815 fp=0xc0008b3e68 sp=0xc0008b3b68 pc=0x9c4f55
oras.land/oras-go/v2/internal/syncutil.Go[...].func1.func2()
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:94 +0x11a fp=0xc0008b3f78 sp=0xc0008b3e68 pc=0x98ab3a
golang.org/x/sync/errgroup.(*Group).Go.func1()
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:93 +0x50 fp=0xc0008b3fe0 sp=0xc0008b3f78 pc=0x591710
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0008b3fe8 sp=0xc0008b3fe0 pc=0x48a761
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 66
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:78 +0x95
goroutine 96 gp=0xc001434fc0 m=nil [select]:
runtime.gopark(0xc0018d5958?, 0x2?, 0x3e?, 0xf4?, 0xc0018d591c?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0018d57a8 sp=0xc0018d5788 pc=0x481e2e
runtime.selectgo(0xc0018d5958, 0xc0018d5918, 0xb1b50c0?, 0x0, 0x41d154?, 0x1)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/select.go:351 +0x845 fp=0xc0018d58e8 sp=0xc0018d57a8 pc=0x45e545
golang.org/x/sync/semaphore.(*Weighted).Acquire(0xc001d7cd20, {0x767c388, 0xc001d7c0f0}, 0x1)
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/semaphore/semaphore.go:74 +0x333 fp=0xc0018d5998 sp=0xc0018d58e8 pc=0x592f53
oras.land/oras-go/v2/internal/syncutil.(*LimitedRegion).Start(0xc001fc4b80)
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:49 +0x36 fp=0xc0018d59c8 sp=0xc0018d5998 pc=0x987eb6
oras.land/oras-go/v2/internal/syncutil.Go[...]({0x767c388, 0xc000922190?}, 0xc001d7cd20?, 0xc0013a07e0, {0xc001107808, 0xc, 0x0})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:76 +0x273 fp=0xc0018d5b68 sp=0xc0018d59c8 pc=0x98a833
oras.land/oras-go/v2.copyGraph.func1({0x767c388, 0xc000922190}, 0xc001dea000, {{0xc0007ee2a0, 0x22}, {0xc0000c5270, 0x47}, 0xdcc, {0x0, 0x0, ...}, ...})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/copy.go:252 +0x815 fp=0xc0018d5e68 sp=0xc0018d5b68 pc=0x9c4f55
oras.land/oras-go/v2/internal/syncutil.Go[...].func1.func2()
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:94 +0x11a fp=0xc0018d5f78 sp=0xc0018d5e68 pc=0x98ab3a
golang.org/x/sync/errgroup.(*Group).Go.func1()
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:93 +0x50 fp=0xc0018d5fe0 sp=0xc0018d5f78 pc=0x591710
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0018d5fe8 sp=0xc0018d5fe0 pc=0x48a761
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 66
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:78 +0x95
goroutine 66 gp=0xc001435340 m=nil [sync.WaitGroup.Wait]:
runtime.gopark(0xc0018d3940?, 0x41d154?, 0x40?, 0xd4?, 0xb1b50c0?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:460 +0xce fp=0xc0018d38e0 sp=0xc0018d38c0 pc=0x481e2e
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/proc.go:466
runtime.semacquire1(0xc000eee1d0, 0x0, 0x1, 0x0, 0x19)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/sema.go:192 +0x21d fp=0xc0018d3948 sp=0xc0018d38e0 pc=0x45f69d
sync.runtime_SemacquireWaitGroup(0xc00133f8a8?, 0x40?)
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/sema.go:114 +0x2e fp=0xc0018d3980 sp=0xc0018d3948 pc=0x483a6e
sync.(*WaitGroup).Wait(0xc000eee1c8)
/opt/hostedtoolcache/go/1.25.0/x64/src/sync/waitgroup.go:206 +0x85 fp=0xc0018d39a8 sp=0xc0018d3980 pc=0x496985
golang.org/x/sync/errgroup.(*Group).Wait(0xc000eee1c0)
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:56 +0x1e fp=0xc0018d39c8 sp=0xc0018d39a8 pc=0x5915be
oras.land/oras-go/v2/internal/syncutil.Go[...]({0x767c388, 0xc001d7cdc0?}, 0xc001d7cd20?, 0xc0013a07e0, {0xc001106008, 0xe, 0x0})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:103 +0x395 fp=0xc0018d3b68 sp=0xc0018d39c8 pc=0x98a955
oras.land/oras-go/v2.copyGraph.func1({0x767c388, 0xc001d7cdc0}, 0xc001fc58e0, {{0xc000f715c0, 0x2a}, {0xc0008d51d0, 0x47}, 0x903, {0x0, 0x0, ...}, ...})
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/copy.go:252 +0x815 fp=0xc0018d3e68 sp=0xc0018d3b68 pc=0x9c4f55
oras.land/oras-go/v2/internal/syncutil.Go[...].func1.func2()
/home/runner/go/pkg/mod/oras.land/oras-go/v2@v2.6.0/internal/syncutil/limit.go:94 +0x11a fp=0xc0018d3f78 sp=0xc0018d3e68 pc=0x98ab3a
golang.org/x/sync/errgroup.(*Group).Go.func1()
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:93 +0x50 fp=0xc0018d3fe0 sp=0xc0018d3f78 pc=0x591710
runtime.goexit({})
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693 +0x1 fp=0xc0018d3fe8 sp=0xc0018d3fe0 pc=0x48a761
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
/home/runner/go/pkg/mod/golang.org/x/sync@v0.18.0/errgroup/errgroup.go:78 +0x95
ERROR: [2025-12-09 19:12:14] failed to push artifact {
"error": "exit status 2"
}
panic: exiting
goroutine 1 [running]:
zzzz.dcs1.dso.mil/yyyy/pipelines/dco-ci/build.Build({{0xc00004e1ce, 0x28}, {0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, {0xc00004e30f, 0x28}, ...})
/builds/yyyy/platforms/xxxx/xxxx-elk/dco-ci-repo/build/build.go:137 +0xb38
zzzz.dcs1.dso.mil/yyyy/pipelines/dco-ci/cmd.(*buildOptions).run(0xe451b66c35e0a9cb?, 0xc0002163e8?, {0x0?, 0x0?, 0x0?})
/builds/yyyy/platforms/xxxx/xxxx-elk/dco-ci-repo/cmd/build.go:71 +0x198
github.com/spf13/cobra.(*Command).execute(0xc0001b9b08, {0x224f2c0, 0x0, 0x0})
/tmp/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1015 +0xb02
github.com/spf13/cobra.(*Command).ExecuteC(0xc0001b9808)
/tmp/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1148 +0x465
github.com/spf13/cobra.(*Command).Execute(...)
/tmp/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1071
zzzz.dcs1.dso.mil/yyyy/pipelines/dco-ci/cmd.Execute()
/builds/yyyy/platforms/xxxx/xxxx-elk/dco-ci-repo/cmd/root.go:47 +0x1a
main.main()
/builds/yyyy/platforms/xxxx/xxxx-elk/dco-ci-repo/main.go:38 +0x4ac

Severity/Priority

UDS causes panic, seems kinda high

Additional Context

Add any other context or screenshots about the technical debt here.

Possible solution

// roundTrip calls base roundtrip while keeping track of the current request.
// this is currently only used to track the progress of publishes, not pulls.
func (t *Transport) roundTrip(req *http.Request) (resp *http.Response, err error) {
if req.Method != http.MethodHead && req.Body != nil && t.ProgressBar != nil {
req.Body = io.NopCloser(io.TeeReader(req.Body, t.ProgressBar))
}
resp, err = t.Base.RoundTrip(req)
if resp != nil && req.Method == http.MethodHead && err == nil && t.ProgressBar != nil {
if resp.ContentLength > 0 {
// Write progress in chunks to avoid allocating a large byte slice
const chunkSize = 8192 // 8KB chunks
remaining := resp.ContentLength
buf := make([]byte, chunkSize)

		for remaining > 0 {
			writeSize := chunkSize
			if remaining < int64(chunkSize) {
				writeSize = int(remaining)
			}
			_, _ = t.ProgressBar.Write(buf[:writeSize])
			remaining -= int64(writeSize)
		}
	}
}
return resp, err

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions