thomseddon / traefik-forward-auth

Minimal forward authentication service that provides Google/OpenID oauth based login and authentication for the traefik reverse proxy
MIT License
2.18k stars 412 forks source link

panic: runtime error: invalid memory address or nil pointer dereference #397

Open alexinthesky opened 1 month ago

alexinthesky commented 1 month ago

Hi,

I'm using traefik-forward-auth ( currently running 2.3.0 ) for more than a year with google oauth as IDP and I start having crashed with this stacktrace:

time="2024-10-07T13:27:39Z" level=info msg="Listening on :4181"
time="2024-10-07T13:28:10Z" level=debug msg="Authenticating request" cookies="[alt-speed-enabled=false display-mode=full filter-mode=all notifications-enabled=false refresh-rate-sec=5 sort-direction=ascending sort-mode=name _forward_auth_csrf=17fb0b3e0a6198a839a61865d420f5a4]" handler=Auth host=toto.mytld.org method=GET proto=https rule=default source_ip="81.220.52.68, 10.42.0.105" uri=/toto/web/
time="2024-10-07T13:28:10Z" level=debug msg="Set CSRF cookie and redirected to provider login url" csrf_cookie="_forward_auth_csrf_6eacda=6eacda1b166ce2d2a67aa12d00a77ff8; Path=/; Domain=mytld.org; Expires=Mon, 07 Oct 2024 14:28:10 GMT; HttpOnly; Secure" handler=Auth host=toto.mytld.org login_url="https://accounts.google.com/o/oauth2/auth?client_id=919847998551-m588afbekqg7obeusicndhf9a0r0hf6l.apps.googleusercontent.com&prompt=select_account&redirect_uri=https%3A%2F%2Fauth.mytld.org%2F_oauth&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=6eacda1b166ce2d2a67aa12d00a77ff8%3Agoogle%3Ahttps%3A%2F%2Ftoto.mytld.org%2Ftoto%2Fweb%2F" method=GET proto=https rule=default source_ip="81.220.52.68, 10.42.0.105" uri=/toto/web/
time="2024-10-07T13:28:11Z" level=debug msg="Authenticating request" cookies="[alt-speed-enabled=false display-mode=full filter-mode=all notifications-enabled=false refresh-rate-sec=5 sort-direction=ascending sort-mode=name _forward_auth_csrf=17fb0b3e0a6198a839a61865d420f5a4 _forward_auth_csrf_6eacda=6eacda1b166ce2d2a67aa12d00a77ff8]" handler=Auth host=toto.mytld.org method=GET proto=https rule=default source_ip="81.220.52.68, 10.42.0.105" uri=/toto/web/
time="2024-10-07T13:28:11Z" level=debug msg="Set CSRF cookie and redirected to provider login url" csrf_cookie="_forward_auth_csrf_a252d3=a252d38ab20d7c7b76ed375754232172; Path=/; Domain=mytld.org; Expires=Mon, 07 Oct 2024 14:28:11 GMT; HttpOnly; Secure" handler=Auth host=toto.mytld.org login_url="https://accounts.google.com/o/oauth2/auth?client_id=919847998551-m588afbekqg7obeusicndhf9a0r0hf6l.apps.googleusercontent.com&prompt=select_account&redirect_uri=https%3A%2F%2Fauth.mytld.org%2F_oauth&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=a252d38ab20d7c7b76ed375754232172%3Agoogle%3Ahttps%3A%2F%2Ftoto.mytld.org%2Ftoto%2Fweb%2F" method=GET proto=https rule=default source_ip="81.220.52.68, 10.42.0.105" uri=/toto/web/
time="2024-10-07T13:28:13Z" level=debug msg="Handling callback" cookies="[_forward_auth_csrf=17fb0b3e0a6198a839a61865d420f5a4 _forward_auth_csrf_6eacda=6eacda1b166ce2d2a67aa12d00a77ff8 _forward_auth_csrf_a252d3=a252d38ab20d7c7b76ed375754232172]" handler=AuthCallback host=auth.mytld.org method=GET proto=https rule=default source_ip="81.220.52.68, 10.42.0.105" uri="/_oauth?state=a252d38ab20d7c7b76ed375754232172%3Agoogle%3Ahttps%3A%2F%2Ftoto.mytld.org%2Ftoto%2Fweb%2F&code=4%2F0AVG7fiTiqa69qS7sVMQd66OFBSdXqQ1S3D7tuIr6g5r7dw-0UOzwmzLTOQoFTGLaWTn6Gg&scope=email+profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&authuser=0&hd=achappaz.fr&prompt=none"
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x2b8950]
goroutine 31 [running]:
vendor/golang.org/x/net/http2/hpack.(*Encoder).WriteField(0xee2c30, {{0x55207e, 0xa}, {0xc96588, 0x12}, 0x0})
/opt/hostedtoolcache/go/1.22.2/x64/src/vendor/golang.org/x/net/http2/hpack/encode.go:50
net/http.(*http2ClientConn).writeHeader(0xc74108, {0x55207e, 0xa}, {0xc96588, 0x12})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:9169 +0x118
net/http.(*http2ClientConn).encodeHeaders.func3({0x55207e, 0xa}, {0xc96588, 0x12})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:9103 +0x7c
net/http.(*http2ClientConn).encodeHeaders.func1(0xcbddbc)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:8995 +0x84
net/http.(*http2ClientConn).encodeHeaders(0xc74108, 0xcae8c8, 0x1, {0x0, 0x0}, 0x129)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:9096 +0x644
net/http.(*http2clientStream).encodeAndWriteHeaders(unexpected fault address 0x5ffa68
fatal error: fault
0xcca708, 0xcae8c8)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:8570 +0x2c0
net/http.(*http2clientStream).writeRequest(0xcca708, 0xcae8c8)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:8466 +0x578
net/http.(*http2clientStream).doRequest(0xcca708, 0xcae8c8)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:8384 +0x24
created by net/http.(*http2ClientConn).RoundTrip in goroutine 21
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:8290 +0x338
[signal SIGSEGV: segmentation violation code=0x2 addr=0x5ffa68 pc=0x2cfc00]
goroutine 6 gp=0xc859e8 m=4 mp=0xc80008 [running]:
runtime.throw({0x54d6e6, 0x5})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/panic.go:1023 +0x4c fp=0xcbee3c sp=0xcbee28 pc=0x52a50
runtime.sigpanic()
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/signal_unix.go:895 +0x2bc fp=0xcbee6c sp=0xcbee3c pc=0x6db50
net/http.(*http2Framer).checkFrameOrder(0xdc6080, {0x5ffa68, 0xeec888})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:1944 fp=0xcbee70 sp=0xcbee70 pc=0x2cfc00
net/http.(*http2Framer).ReadFrame(0xdc6080)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:1920 +0x2b4 fp=0xcbeeec sp=0xcbee70 pc=0x2cf980
net/http.(*http2clientConnReadLoop).run(0xcbefdc)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:9334 +0x150 fp=0xcbefa4 sp=0xcbeeec pc=0x2f3f28
net/http.(*http2ClientConn).readLoop(0xc74108)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:9229 +0x68 fp=0xcbefe4 sp=0xcbefa4 pc=0x2f341c
net/http.(*http2Transport).newClientConn.gowrap1()
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:7879 +0x28 fp=0xcbefec sp=0xcbefe4 pc=0x2ec470
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/asm_arm.s:859 +0x4 fp=0xcbefec sp=0xcbefec pc=0x8c950
created by net/http.(*http2Transport).newClientConn in goroutine 5
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:7879 +0xcac
goroutine 1 gp=0xc02128 m=nil [IO wait]:
runtime.gopark(0x57a92c, 0xf7991c28, 0x2, 0x2, 0x5)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:402 +0x104 fp=0xc91d6c sp=0xc91d58 pc=0x561e4
runtime.netpollblock(0xf7991c18, 0x72, 0x0)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/netpoll.go:573 +0x100 fp=0xc91d84 sp=0xc91d6c pc=0x4dccc
internal/poll.runtime_pollWait(0xf7991c18, 0x72)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/netpoll.go:345 +0x54 fp=0xc91d98 sp=0xc91d84 pc=0x88178
internal/poll.(*pollDesc).wait(0xca7008, 0x72, 0x0)
/opt/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_poll_runtime.go:84 +0x30 fp=0xc91dac sp=0xc91d98 pc=0xfc6d8
internal/poll.(*pollDesc).waitRead(...)
/opt/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xca6ff0)
/opt/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_unix.go:611 +0x294 fp=0xc91df4 sp=0xc91dac pc=0x100f40
net.(*netFD).accept(0xca6ff0)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/fd_unix.go:172 +0x20 fp=0xc91e5c sp=0xc91df4 pc=0x200a24
net.(*TCPListener).accept(0xcc6558)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/tcpsock_posix.go:159 +0x20 fp=0xc91e74 sp=0xc91e5c pc=0x216660
net.(*TCPListener).Accept(0xcc6558)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/tcpsock.go:327 +0x30 fp=0xc91e90 sp=0xc91e74 pc=0x2156cc
net/http.(*onceCloseListener).Accept(0xca1700)
:1 +0x34 fp=0xc91ea8 sp=0xc91e90 pc=0x33a7b0
net/http.(*Server).Serve(0xcae328, {0x60055c, 0xcc6558})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:3255 +0x314 fp=0xc91f40 sp=0xc91ea8 pc=0x318f10
net/http.(*Server).ListenAndServe(0xcae328)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:3184 +0xa0 fp=0xc91f64 sp=0xc91f40 pc=0x318bac
net/http.ListenAndServe(...)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:3438
main.main()
/home/runner/work/traefik-forward-auth/traefik-forward-auth/cmd/main.go:30 +0x240 fp=0xc91fa8 sp=0xc91f64 pc=0x4ac604
runtime.main()
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:271 +0x2fc fp=0xc91fec sp=0xc91fa8 pc=0x55c54
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/asm_arm.s:859 +0x4 fp=0xc91fec sp=0xc91fec pc=0x8c950
goroutine 17 gp=0xc84248 m=nil [force gc (idle)]:
runtime.gopark(0x57a938, 0x8e20f8, 0x11, 0xa, 0x1)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:402 +0x104 fp=0xc3e7d4 sp=0xc3e7c0 pc=0x561e4
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:408
runtime.forcegchelper()
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:326 +0xe4 fp=0xc3e7ec sp=0xc3e7d4 pc=0x56020
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/asm_arm.s:859 +0x4 fp=0xc3e7ec sp=0xc3e7ec pc=0x8c950
created by runtime.init.5 in goroutine 1
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:314 +0x1c
goroutine 18 gp=0xc84368 m=nil [GC sweep wait]:
runtime.gopark(0x57a938, 0x8e28e8, 0xc, 0x9, 0x1)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:402 +0x104 fp=0xc3efc4 sp=0xc3efb0 pc=0x561e4
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:408
runtime.bgsweep(0xc96000)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mgcsweep.go:278 +0xa8 fp=0xc3efe4 sp=0xc3efc4 pc=0x3ee98
runtime.gcenable.gowrap1()
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mgc.go:203 +0x28 fp=0xc3efec sp=0xc3efe4 pc=0x2f0fc
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/asm_arm.s:859 +0x4 fp=0xc3efec sp=0xc3efec pc=0x8c950
created by runtime.gcenable in goroutine 1
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mgc.go:203 +0x74
goroutine 19 gp=0xc84488 m=nil [GC scavenge wait]:
runtime.gopark(0x57a938, 0x8e2e50, 0xd, 0xa, 0x2)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:402 +0x104 fp=0xc3f7b4 sp=0xc3f7a0 pc=0x561e4
runtime.goparkunlock(...)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:408
runtime.(*scavengerState).park(0x8e2e50)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mgcscavenge.go:425 +0x68 fp=0xc3f7c8 sp=0xc3f7b4 pc=0x3c268
runtime.bgscavenge(0xc96000)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc3f7e4 sp=0xc3f7c8 pc=0x3c978
runtime.gcenable.gowrap2()
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mgc.go:204 +0x28 fp=0xc3f7ec sp=0xc3f7e4 pc=0x2f0a8
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/asm_arm.s:859 +0x4 fp=0xc3f7ec sp=0xc3f7ec pc=0x8c950
created by runtime.gcenable in goroutine 1
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mgc.go:204 +0xbc
goroutine 20 gp=0xc845a8 m=nil [finalizer wait]:
runtime.gopark(0x57a7e8, 0x90db38, 0x10, 0xa, 0x1)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:402 +0x104 fp=0xc3ff8c sp=0xc3ff78 pc=0x561e4
runtime.runfinq()
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mfinal.go:194 +0x110 fp=0xc3ffec sp=0xc3ff8c pc=0x2def4
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/asm_arm.s:859 +0x4 fp=0xc3ffec sp=0xc3ffec pc=0x8c950
created by runtime.createfing in goroutine 1
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/mfinal.go:164 +0x5c
goroutine 21 gp=0xc85328 m=nil [select]:
runtime.gopark(0x57a96c, 0x0, 0x9, 0x3, 0x1)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:402 +0x104 fp=0xd631a0 sp=0xd6318c pc=0x561e4
runtime.selectgo(0xd632ac, 0xd63264, 0x0, 0x0, 0x4, 0x1)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/select.go:327 +0xaf0 fp=0xd63240 sp=0xd631a0 pc=0x69ed0
net/http.(*http2ClientConn).RoundTrip(0xc74108, 0xcae8c8)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:8354 +0x430 fp=0xd632f0 sp=0xd63240 pc=0x2ee958
net/http.(*http2Transport).RoundTripOpt(0xcd8480, 0xcae8c8, {0x0})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:7622 +0x208 fp=0xd6338c sp=0xd632f0 pc=0x2ea724
net/http.(*http2Transport).RoundTrip(0xcd8480, 0xcae8c8)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:7571 +0x2c fp=0xd633a8 sp=0xd6338c pc=0x2ea170
net/http.(*Transport).roundTrip(0x8dd500, 0xcae788)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/transport.go:606 +0x7d8 fp=0xd634c4 sp=0xd633a8 pc=0x32531c
net/http.(*Transport).RoundTrip(0x8dd500, 0xcae788)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/roundtrip.go:17 +0x24 fp=0xd634dc sp=0xd634c4 pc=0x309698
net/http.send(0xcae788, {0x5feb44, 0x8dd500}, {0x0, 0x0, 0x0})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:259 +0x53c fp=0xd63608 sp=0xd634dc pc=0x2c4300
net/http.(*Client).send(0x8e2b28, 0xcae788, {0x0, 0x0, 0x0})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:180 +0x98 fp=0xd6364c sp=0xd63608 pc=0x2c3bf8
net/http.(*Client).do(0x8e2b28, 0xcae788)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:724 +0x8bc fp=0xd6375c sp=0xd6364c pc=0x2c5fec
net/http.(*Client).Do(...)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:590
net/http.(*Client).Post(0x8e2b28, {0xc96580, 0x2a}, {0x560f7e, 0x21}, {0x5fe928, 0xcc6600})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:857 +0x158 fp=0xd637a0 sp=0xd6375c pc=0x2c7370
net/http.(*Client).PostForm(0x8e2b28, {0xc96580, 0x2a}, 0xd638e0)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:895 +0xbc fp=0xd637d4 sp=0xd637a0 pc=0x2c748c
net/http.PostForm(...)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/client.go:877
github.com/thomseddon/traefik-forward-auth/internal/provider.(*Google).ExchangeCode(0xd4a3d0, {0xccc6a0, 0x20}, {0xce0280, 0x49})
/home/runner/work/traefik-forward-auth/traefik-forward-auth/internal/provider/google.go:83 +0x3ec fp=0xd63904 sp=0xd637d4 pc=0x38304c
github.com/thomseddon/traefik-forward-auth/internal.(*Server).buildRoutes.(*Server).AuthCallbackHandler.func2({0x6004b4, 0xcae468}, 0xcae508)
/home/runner/work/traefik-forward-auth/traefik-forward-auth/internal/server.go:173 +0x538 fp=0xd63c1c sp=0xd63904 pc=0x4aa6cc
net/http.HandlerFunc.ServeHTTP(0xc98660, {0x6004b4, 0xcae468}, 0xcae508)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:2166 +0x34 fp=0xd63c2c sp=0xd63c1c pc=0x315408
github.com/gorilla/mux.(*Router).ServeHTTP(0xc9e0c0, {0x6004b4, 0xcae468}, 0xcae3c8)
/home/runner/go/pkg/mod/github.com/containous/mux@v0.0.0-20220627093034-b2dd784e613f/mux.go:141 +0x22c fp=0xd63cd4 sp=0xd63c2c pc=0x3c4e74
github.com/thomseddon/traefik-forward-auth/internal.(*Server).RootHandler(0xc98600, {0x6004b4, 0xcae468}, 0xcae3c8)
/home/runner/work/traefik-forward-auth/traefik-forward-auth/internal/server.go:68 +0x17c fp=0xd63cf0 sp=0xd63cd4 pc=0x4aaf40
github.com/thomseddon/traefik-forward-auth/internal.(*Server).RootHandler-fm({0x6004b4, 0xcae468}, 0xcae3c8)
:1 +0x40 fp=0xd63d04 sp=0xd63cf0 pc=0x4ac6d8
net/http.HandlerFunc.ServeHTTP(0xc986b8, {0x6004b4, 0xcae468}, 0xcae3c8)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:2166 +0x34 fp=0xd63d14 sp=0xd63d04 pc=0x315408
net/http.(*ServeMux).ServeHTTP(0x8e2ec8, {0x6004b4, 0xcae468}, 0xcae3c8)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:2683 +0x208 fp=0xd63d50 sp=0xd63d14 pc=0x317260
net/http.serverHandler.ServeHTTP({0xcae328}, {0x6004b4, 0xcae468}, 0xcae3c8)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:3137 +0xe0 fp=0xd63d6c sp=0xd63d50 pc=0x318ae4
net/http.(*conn).serve(0xcd81e0, {0x600ed8, 0xcc6570})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:2039 +0x61c fp=0xd63fdc sp=0xd63d6c pc=0x313c50
net/http.(*Server).Serve.gowrap3()
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:3285 +0x38 fp=0xd63fec sp=0xd63fdc pc=0x319388
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/asm_arm.s:859 +0x4 fp=0xd63fec sp=0xd63fec pc=0x8c950
created by net/http.(*Server).Serve in goroutine 1
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:3285 +0x468
goroutine 22 gp=0xc85448 m=nil [IO wait]:
runtime.gopark(0x57a92c, 0xf7991b88, 0x2, 0x2, 0x5)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:402 +0x104 fp=0xc406b4 sp=0xc406a0 pc=0x561e4
runtime.netpollblock(0xf7991b78, 0x72, 0x0)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/netpoll.go:573 +0x100 fp=0xc406cc sp=0xc406b4 pc=0x4dccc
internal/poll.runtime_pollWait(0xf7991b78, 0x72)
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/netpoll.go:345 +0x54 fp=0xc406e0 sp=0xc406cc pc=0x88178
internal/poll.(*pollDesc).wait(0xca7058, 0x72, 0x0)
/opt/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_poll_runtime.go:84 +0x30 fp=0xc406f4 sp=0xc406e0 pc=0xfc6d8
internal/poll.(*pollDesc).waitRead(...)
/opt/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xca7040, {0xc3002d, 0x1, 0x1})
/opt/hostedtoolcache/go/1.22.2/x64/src/internal/poll/fd_unix.go:164 +0x238 fp=0xc4073c sp=0xc406f4 pc=0xfd8c0
net.(*netFD).Read(0xca7040, {0xc3002d, 0x1, 0x1})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/fd_posix.go:55 +0x38 fp=0xc40768 sp=0xc4073c pc=0x1feb30
net.(*conn).Read(0xc98c40, {0xc3002d, 0x1, 0x1})
/opt/hostedtoolcache/go/1.22.2/x64/src/net/net.go:179 +0x48 fp=0xc40794 sp=0xc40768 pc=0x20caec
net.(*TCPConn).Read(0xc98c40, {0xc3002d, 0x1, 0x1})
:1 +0x44 fp=0xc407b4 sp=0xc40794 pc=0x21e738
net/http.(*connReader).backgroundRead(0xc30020)
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:681 +0x40 fp=0xc407e4 sp=0xc407b4 pc=0x30d924
net/http.(*connReader).startBackgroundRead.gowrap2()
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:677 +0x28 fp=0xc407ec sp=0xc407e4 pc=0x30d85c
runtime.goexit({})
/opt/hostedtoolcache/go/1.22.2/x64/src/runtime/asm_arm.s:859 +0x4 fp=0xc407ec sp=0xc407ec pc=0x8c950
created by net/http.(*connReader).startBackgroundRead in goroutine 21
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/server.go:677 +0x160
goroutine 31 gp=0xc85568 m=3 mp=0xc46b08 [running]:
goroutine running on other thread; stack unavailable
created by net/http.(*http2ClientConn).RoundTrip in goroutine 21
/opt/hostedtoolcache/go/1.22.2/x64/src/net/http/h2_bundle.go:8290 +0x338

any idea where this could come from?

ty