dunglas / frankenphp

🧟 The modern PHP app server
https://frankenphp.dev
MIT License
6.84k stars 234 forks source link

webklex/php-imap crashing frankenphp sapi #268

Closed DubbleClick closed 6 months ago

DubbleClick commented 1 year ago

Just updated my Symfony packages (mostly went from 6.3.2 to 6.3.5) and now worker mode is crashing with either

2023/10/19 11:20:55.668 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.695 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.721 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.735 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.752 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.755 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.782 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.793 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.806 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.811 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.843 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.857 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.861 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.895 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.920 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}
2023/10/19 11:20:55.921 ERROR   unexpected termination, restarting      {"worker": "/var/www/svm/public/index.php"}

or

2023/10/19 11:21:34.092 INFO    http    enabling automatic TLS certificate management   {"domains": ["svm.test.test"]}
2023/10/19 11:21:34.093 WARN    tls     stapling OCSP   {"error": "no OCSP stapling for [svm.test.test]: no OCSP server specified in certificate", "identifiers": ["svm.test.test"]}
Segmentation fault (core dumped)

The second folder with the same code (but without updated composer packages) still works in worker mode. The /var/www/svm/public/index.php still works with FrankenPHP if I remove the worker directive for it.

i.e.

frankenphp {
    #worker /var/www/svm/public/index.php
    worker /var/www/oldsvm/public/index.php
}
#works
frankenphp {
    worker /var/www/svm/public/index.php
    #worker /var/www/oldsvm/public/index.php
}
#crashes

Please let me know if this is something you can reproduce yourself, or if I should compile a debug version of frankenphp and see what's going on.

DubbleClick commented 1 year ago

In a surprising turn of events, I compared the composer.lock files and noticed that not only versions changed, but I also added webklex/php-imap. Removing php-imap and clearing cache, worker mode works again.

DubbleClick commented 1 year ago

Well, I got a trace out of it:


SIGSEGV: segmentation violation
PC=0x25c8620 m=13 sigcode=1
signal arrived during cgo execution

goroutine 100 [syscall, locked to thread]:
runtime.cgocall(0x177feb0, 0xc000784c88)
        /usr/local/go/src/runtime/cgocall.go:157 +0x4b fp=0xc000784c60 sp=0xc000784c28 pc=0x43d3cb
github.com/dunglas/frankenphp._Cfunc_frankenphp_update_server_context(0x1, 0x6, 0x0, 0x7f8b7036f7f0, 0x7f8b6de24180, 0x0, 0x0, 0x7f8b6dca2860, 0x0, 0x0, ...)
        _cgo_gotypes.go:957 +0x4e fp=0xc000784c88 sp=0xc000784c60 pc=0x1620b8e
github.com/dunglas/frankenphp.updateServerContext(0xc00024bf00, 0x80?, 0x0)
        /opt/frankenphp/frankenphp.go:379 +0x350 fp=0xc000784d70 sp=0xc000784c88 pc=0x1621f90
github.com/dunglas/frankenphp.go_execute_script(0x4a5c01?)
        /opt/frankenphp/frankenphp.go:466 +0x159 fp=0xc000784e18 sp=0xc000784d70 pc=0x16226b9
_cgoexp_e5b6ce8a49a6_go_execute_script(0x2c46650?)
        _cgo_gotypes.go:1023 +0x16 fp=0xc000784e30 sp=0xc000784e18 pc=0x1626e36
runtime.cgocallbackg1(0x1626e20, 0xc00024b400?, 0x0)
        /usr/local/go/src/runtime/cgocall.go:329 +0x2c2 fp=0xc000784f00 sp=0xc000784e30 pc=0x43d8c2
runtime.cgocallbackg(0xc0004b8f00?, 0xc000784f70?, 0xc000784fd0?)
        /usr/local/go/src/runtime/cgocall.go:245 +0x109 fp=0xc000784f90 sp=0xc000784f00 pc=0x43d569
runtime.cgocallbackg(0x1626e20, 0x7f8b6dd9d850, 0x0)
        <autogenerated>:1 +0x29 fp=0xc000784fb8 sp=0xc000784f90 pc=0x4aa229
runtime.cgocallback(0x0, 0x0, 0x0)
        /usr/local/go/src/runtime/asm_amd64.s:1035 +0xcc fp=0xc000784fe0 sp=0xc000784fb8 pc=0x4a796c
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000784fe8 sp=0xc000784fe0 pc=0x4a7bc1

goroutine 1 [select (no cases)]:
runtime.gopark(0xc0009f39a8?, 0x562a6c?, 0xc1?, 0xcc?, 0x4?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000829988 sp=0xc000829968 pc=0x47442e
runtime.block()
        /usr/local/go/src/runtime/select.go:103 +0x26 fp=0xc0008299b8 sp=0xc000829988 pc=0x484246
github.com/caddyserver/caddy/v2/cmd.cmdRun({0x0?})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/cmd/commandfuncs.go:277 +0xcd3 fp=0xc000829cd8 sp=0xc0008299b8 pc=0xb3ef73
github.com/caddyserver/caddy/v2/cmd.init.1.func2.WrapCommandFuncForCobra.func1(0xc0002cab00?, {0x29eced1?, 0x4?, 0x29ecce1?})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/cmd/cobra.go:126 +0x26 fp=0xc000829cf8 sp=0xc000829cd8 pc=0xb4b046
github.com/spf13/cobra.(*Command).execute(0xc000510300, {0x69de860, 0x0, 0x0})
        /root/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:940 +0x87c fp=0xc000829e30 sp=0xc000829cf8 pc=0xac1a7c
github.com/spf13/cobra.(*Command).ExecuteC(0x68be160)
        /root/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3a5 fp=0xc000829ee8 sp=0xc000829e30 pc=0xac22a5
github.com/spf13/cobra.(*Command).Execute(...)
        /root/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992
github.com/caddyserver/caddy/v2/cmd.Main()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/cmd/main.go:65 +0x5b fp=0xc000829f30 sp=0xc000829ee8 pc=0xb4371b
main.main()
        /opt/frankenphp/caddy/frankenphp/main.go:22 +0xf fp=0xc000829f40 sp=0xc000829f30 pc=0x177f54f
runtime.main()
        /usr/local/go/src/runtime/proc.go:267 +0x2bb fp=0xc000829fe0 sp=0xc000829f40 pc=0x473fbb
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000829fe8 sp=0xc000829fe0 pc=0x4a7bc1

goroutine 17 [select, locked to thread]:
runtime.gopark(0xc000090e00?, 0x2?, 0x0?, 0x47?, 0xc000090df4?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000090ca0 sp=0xc000090c80 pc=0x47442e
runtime.selectgo(0xc000090e00, 0xc000090df0, 0x0?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc000090dc0 sp=0xc000090ca0 pc=0x484985
github.com/dunglas/frankenphp.go_fetch_request(...)
        /opt/frankenphp/frankenphp.go:439
_cgoexp_e5b6ce8a49a6_go_fetch_request(0x7f8b70551920)
        _cgo_gotypes.go:1015 +0x6c fp=0xc000090e30 sp=0xc000090dc0 pc=0x1626dcc
runtime.cgocallbackg1(0x1626d60, 0xc000090fe0?, 0x0)
        /usr/local/go/src/runtime/cgocall.go:329 +0x2c2 fp=0xc000090f00 sp=0xc000090e30 pc=0x43d8c2
runtime.cgocallbackg(0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/cgocall.go:245 +0x109 fp=0xc000090f90 sp=0xc000090f00 pc=0x43d569
runtime.cgocallbackg(0x1626d60, 0x7f8b70551920, 0x0)
        <autogenerated>:1 +0x29 fp=0xc000090fb8 sp=0xc000090f90 pc=0x4aa229
runtime.cgocallback(0x0, 0x0, 0x0)
        /usr/local/go/src/runtime/asm_amd64.s:1035 +0xcc fp=0xc000090fe0 sp=0xc000090fb8 pc=0x4a796c
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000090fe8 sp=0xc000090fe0 pc=0x4a7bc1

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007cfa8 sp=0xc00007cf88 pc=0x47442e
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:404
runtime.forcegchelper()
        /usr/local/go/src/runtime/proc.go:322 +0xb3 fp=0xc00007cfe0 sp=0xc00007cfa8 pc=0x474293
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007cfe8 sp=0xc00007cfe0 pc=0x4a7bc1
created by runtime.init.6 in goroutine 1
        /usr/local/go/src/runtime/proc.go:310 +0x1a

goroutine 3 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007d778 sp=0xc00007d758 pc=0x47442e
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:404
runtime.bgsweep(0x0?)
        /usr/local/go/src/runtime/mgcsweep.go:321 +0xdf fp=0xc00007d7c8 sp=0xc00007d778 pc=0x45e39f
runtime.gcenable.func1()
        /usr/local/go/src/runtime/mgc.go:200 +0x25 fp=0xc00007d7e0 sp=0xc00007d7c8 pc=0x4534c5
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007d7e8 sp=0xc00007d7e0 pc=0x4a7bc1
created by runtime.gcenable in goroutine 1
        /usr/local/go/src/runtime/mgc.go:200 +0x66

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xc0000a4000?, 0x2eaffb0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007df70 sp=0xc00007df50 pc=0x47442e
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:404
runtime.(*scavengerState).park(0x6982940)
        /usr/local/go/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc00007dfa0 sp=0xc00007df70 pc=0x45bbc9
runtime.bgscavenge(0x0?)
        /usr/local/go/src/runtime/mgcscavenge.go:658 +0x59 fp=0xc00007dfc8 sp=0xc00007dfa0 pc=0x45c179
runtime.gcenable.func2()
        /usr/local/go/src/runtime/mgc.go:201 +0x25 fp=0xc00007dfe0 sp=0xc00007dfc8 pc=0x453465
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007dfe8 sp=0xc00007dfe0 pc=0x4a7bc1
created by runtime.gcenable in goroutine 1
        /usr/local/go/src/runtime/mgc.go:201 +0xa5

goroutine 5 [finalizer wait]:
runtime.gopark(0x29dce80?, 0x100475501?, 0x0?, 0x0?, 0x47c5e5?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007c628 sp=0xc00007c608 pc=0x47442e
runtime.runfinq()
        /usr/local/go/src/runtime/mfinal.go:193 +0x107 fp=0xc00007c7e0 sp=0xc00007c628 pc=0x452547
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007c7e8 sp=0xc00007c7e0 pc=0x4a7bc1
created by runtime.createfing in goroutine 1
        /usr/local/go/src/runtime/mfinal.go:163 +0x3d

goroutine 6 [GC worker (idle)]:
runtime.gopark(0xc9f37d99e64?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007e750 sp=0xc00007e730 pc=0x47442e
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1293 +0xe5 fp=0xc00007e7e0 sp=0xc00007e750 pc=0x455045
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007e7e8 sp=0xc00007e7e0 pc=0x4a7bc1
created by runtime.gcBgMarkStartWorkers in goroutine 1
        /usr/local/go/src/runtime/mgc.go:1217 +0x1c

goroutine 18 [GC worker (idle)]:
runtime.gopark(0xc9f37d9b82c?, 0xc000116020?, 0x1a?, 0x14?, 0x0?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000078750 sp=0xc000078730 pc=0x47442e
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1293 +0xe5 fp=0xc0000787e0 sp=0xc000078750 pc=0x455045
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0000787e8 sp=0xc0000787e0 pc=0x4a7bc1
created by runtime.gcBgMarkStartWorkers in goroutine 1
        /usr/local/go/src/runtime/mgc.go:1217 +0x1c

goroutine 7 [GC worker (idle)]:
runtime.gopark(0xc9f37c5f6c2?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007ef50 sp=0xc00007ef30 pc=0x47442e
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1293 +0xe5 fp=0xc00007efe0 sp=0xc00007ef50 pc=0x455045
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007efe8 sp=0xc00007efe0 pc=0x4a7bc1
created by runtime.gcBgMarkStartWorkers in goroutine 1
        /usr/local/go/src/runtime/mgc.go:1217 +0x1c

goroutine 19 [GC worker (idle)]:
runtime.gopark(0xc9f37d99ec8?, 0x3?, 0x73?, 0x30?, 0x0?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000078f50 sp=0xc000078f30 pc=0x47442e
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1293 +0xe5 fp=0xc000078fe0 sp=0xc000078f50 pc=0x455045
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000078fe8 sp=0xc000078fe0 pc=0x4a7bc1
created by runtime.gcBgMarkStartWorkers in goroutine 1
        /usr/local/go/src/runtime/mgc.go:1217 +0x1c

goroutine 8 [select]:
runtime.gopark(0xc000079790?, 0x2?, 0x11?, 0x36?, 0xc000079774?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000079618 sp=0xc0000795f8 pc=0x47442e
runtime.selectgo(0xc000079790, 0xc000079770, 0x0?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc000079738 sp=0xc000079618 pc=0x484985
github.com/golang/glog.(*fileSink).flushDaemon(0x6982638)
        /root/go/pkg/mod/github.com/golang/glog@v1.1.2/glog_file.go:351 +0xb9 fp=0xc0000797c8 sp=0xc000079738 pc=0xded5b9
github.com/golang/glog.init.1.func1()
        /root/go/pkg/mod/github.com/golang/glog@v1.1.2/glog_file.go:166 +0x25 fp=0xc0000797e0 sp=0xc0000797c8 pc=0xdec665
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0000797e8 sp=0xc0000797e0 pc=0x4a7bc1
created by github.com/golang/glog.init.1 in goroutine 1
        /root/go/pkg/mod/github.com/golang/glog@v1.1.2/glog_file.go:166 +0x135

goroutine 53 [select]:
runtime.gopark(0xc000079ee8?, 0x3?, 0xf8?, 0x9d?, 0xc000079eda?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000079d80 sp=0xc000079d60 pc=0x47442e
runtime.selectgo(0xc000079ee8, 0xc000079ed4, 0xc000079ed0?, 0x2, 0xc0004e03b0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc000079ea0 sp=0xc000079d80 pc=0x484985
github.com/caddyserver/certmagic.(*RingBufferRateLimiter).permit(0xc0002d6e60)
        /root/go/pkg/mod/github.com/caddyserver/certmagic@v0.19.2/ratelimiter.go:217 +0x86 fp=0xc000079f28 sp=0xc000079ea0 pc=0x8d63e6
github.com/caddyserver/certmagic.(*RingBufferRateLimiter).loop(0xc0002d6e60)
        /root/go/pkg/mod/github.com/caddyserver/certmagic@v0.19.2/ratelimiter.go:89 +0x8b fp=0xc000079fc8 sp=0xc000079f28 pc=0x8d5d8b
github.com/caddyserver/certmagic.NewRateLimiter.func1()
        /root/go/pkg/mod/github.com/caddyserver/certmagic@v0.19.2/ratelimiter.go:45 +0x25 fp=0xc000079fe0 sp=0xc000079fc8 pc=0x8d5cc5
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000079fe8 sp=0xc000079fe0 pc=0x4a7bc1
created by github.com/caddyserver/certmagic.NewRateLimiter in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/certmagic@v0.19.2/ratelimiter.go:45 +0x13c

goroutine 55 [chan receive]:
runtime.gopark(0xc00007a660?, 0xa51805?, 0x1?, 0xcf?, 0xc00007a6d8?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007a648 sp=0xc00007a628 pc=0x47442e
runtime.chanrecv(0xc0003992c0, 0x0, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x3cd fp=0xc00007a6c0 sp=0xc00007a648 pc=0x43f82d
runtime.chanrecv1(0xc0003992c0?, 0xc00007a740?)
        /usr/local/go/src/runtime/chan.go:442 +0x12 fp=0xc00007a6e8 sp=0xc00007a6c0 pc=0x43f432
github.com/caddyserver/caddy/v2.trapSignalsCrossPlatform.func1()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/sigtrap.go:43 +0xd8 fp=0xc00007a7e0 sp=0xc00007a6e8 pc=0xa71858
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007a7e8 sp=0xc00007a7e0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2.trapSignalsCrossPlatform in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/sigtrap.go:38 +0x1a

goroutine 56 [chan receive]:
runtime.gopark(0xc0002ecd30?, 0xa51805?, 0x1?, 0x0?, 0xc0002ecda8?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0002ecd18 sp=0xc0002eccf8 pc=0x47442e
runtime.chanrecv(0xc0000383c0, 0xc0002ece30, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x3cd fp=0xc0002ecd90 sp=0xc0002ecd18 pc=0x43f82d
runtime.chanrecv2(0xc0000383c0?, 0xc0002ecf80?)
        /usr/local/go/src/runtime/chan.go:447 +0x12 fp=0xc0002ecdb8 sp=0xc0002ecd90 pc=0x43f452
github.com/caddyserver/caddy/v2.trapSignalsPosix.func1()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/sigtrap_posix.go:35 +0xfa fp=0xc0002ecfe0 sp=0xc0002ecdb8 pc=0xa7111a
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0002ecfe8 sp=0xc0002ecfe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2.trapSignalsPosix in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/sigtrap_posix.go:31 +0x1a

goroutine 35 [select, locked to thread]:
runtime.gopark(0xc0002e8fa8?, 0x2?, 0xc9?, 0x46?, 0xc0002e8fa4?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0002e8e38 sp=0xc0002e8e18 pc=0x47442e
runtime.selectgo(0xc0002e8fa8, 0xc0002e8fa0, 0x0?, 0x0, 0x10?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc0002e8f58 sp=0xc0002e8e38 pc=0x484985
runtime.ensureSigM.func1()
        /usr/local/go/src/runtime/signal_unix.go:1014 +0x19f fp=0xc0002e8fe0 sp=0xc0002e8f58 pc=0x49e3bf
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0002e8fe8 sp=0xc0002e8fe0 pc=0x4a7bc1
created by runtime.ensureSigM in goroutine 55
        /usr/local/go/src/runtime/signal_unix.go:997 +0xc8

goroutine 12 [syscall]:
runtime.notetsleepg(0x0?, 0x0?)
        /usr/local/go/src/runtime/lock_futex.go:236 +0x29 fp=0xc00016afa0 sp=0xc00016af68 pc=0x444f69
os/signal.signal_recv()
        /usr/local/go/src/runtime/sigqueue.go:152 +0x29 fp=0xc00016afc0 sp=0xc00016afa0 pc=0x4a3f69
os/signal.loop()
        /usr/local/go/src/os/signal/signal_unix.go:23 +0x13 fp=0xc00016afe0 sp=0xc00016afc0 pc=0xa51ef3
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00016afe8 sp=0xc00016afe0 pc=0x4a7bc1
created by os/signal.Notify.func1.1 in goroutine 55
        /usr/local/go/src/os/signal/signal.go:151 +0x1f

goroutine 61 [IO wait]:
runtime.gopark(0xc0006f9b68?, 0x453856?, 0xc0?, 0x9b?, 0x55e99d?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0006f9b50 sp=0xc0006f9b30 pc=0x47442e
runtime.netpollblock(0xd0?, 0x43cb66?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:564 +0xf7 fp=0xc0006f9b88 sp=0xc0006f9b50 pc=0x46cbb7
internal/poll.runtime_pollWait(0x7f8b70907eb0, 0x72)
        /usr/local/go/src/runtime/netpoll.go:343 +0x85 fp=0xc0006f9ba8 sp=0xc0006f9b88 pc=0x4a1e25
internal/poll.(*pollDesc).wait(0xc00060f200?, 0x44c065?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc0006f9bd0 sp=0xc0006f9ba8 pc=0x557607
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc00060f200)
        /usr/local/go/src/internal/poll/fd_unix.go:611 +0x2ac fp=0xc0006f9c78 sp=0xc0006f9bd0 pc=0x55caec
net.(*netFD).accept(0xc00060f200)
        /usr/local/go/src/net/fd_unix.go:172 +0x29 fp=0xc0006f9d30 sp=0xc0006f9c78 pc=0x604da9
net.(*TCPListener).accept(0xc0000521c0)
        /usr/local/go/src/net/tcpsock_posix.go:152 +0x1e fp=0xc0006f9d58 sp=0xc0006f9d30 pc=0x61ed7e
net.(*TCPListener).Accept(0xc0000521c0)
        /usr/local/go/src/net/tcpsock.go:315 +0x30 fp=0xc0006f9d88 sp=0xc0006f9d58 pc=0x61df30
github.com/caddyserver/caddy/v2.(*deleteListener).Accept(0x689ef90?)
        <autogenerated>:1 +0x24 fp=0xc0006f9da0 sp=0xc0006f9d88 pc=0xa747e4
net/http.(*onceCloseListener).Accept(0x2ecf348?)
        <autogenerated>:1 +0x24 fp=0xc0006f9db8 sp=0xc0006f9da0 pc=0x7734a4
net/http.(*Server).Serve(0xc0003d0870, {0x2ec9f90, 0xc0000521e0})
        /usr/local/go/src/net/http/server.go:3056 +0x364 fp=0xc0006f9ee8 sp=0xc0006f9db8 pc=0x74f604
github.com/caddyserver/caddy/v2.replaceLocalAdminServer.func2()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/admin.go:449 +0xc8 fp=0xc0006f9fe0 sp=0xc0006f9ee8 pc=0xa54468
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0006f9fe8 sp=0xc0006f9fe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2.replaceLocalAdminServer in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/admin.go:445 +0x4a6

goroutine 62 [select]:
runtime.gopark(0xc00008ceb0?, 0x3?, 0x0?, 0x0?, 0xc00008ce3a?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00008cce0 sp=0xc00008ccc0 pc=0x47442e
runtime.selectgo(0xc00008ceb0, 0xc00008ce34, 0x1?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc00008ce00 sp=0xc00008cce0 pc=0x484985
github.com/caddyserver/certmagic.(*Cache).maintainAssets(0xc00060f280, 0x0)
        /root/go/pkg/mod/github.com/caddyserver/certmagic@v0.19.2/maintain.go:67 +0x305 fp=0xc00008cfc0 sp=0xc00008ce00 pc=0x8cca05
github.com/caddyserver/certmagic.NewCache.func1()
        /root/go/pkg/mod/github.com/caddyserver/certmagic@v0.19.2/cache.go:127 +0x25 fp=0xc00008cfe0 sp=0xc00008cfc0 pc=0x8aa6a5
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00008cfe8 sp=0xc00008cfe0 pc=0x4a7bc1
created by github.com/caddyserver/certmagic.NewCache in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/certmagic@v0.19.2/cache.go:127 +0x1f6

goroutine 14 [select]:
runtime.gopark(0xc000092fa8?, 0x2?, 0xb8?, 0x85?, 0xc000092f8c?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000092e30 sp=0xc000092e10 pc=0x47442e
runtime.selectgo(0xc000092fa8, 0xc000092f88, 0x43e717?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc000092f50 sp=0xc000092e30 pc=0x484985
github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy.(*metricsUpstreamsHealthyUpdater).Init.func1()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/reverseproxy/metrics.go:61 +0xca fp=0xc000092fe0 sp=0xc000092f50 pc=0x14dd18a
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000092fe8 sp=0xc000092fe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy.(*metricsUpstreamsHealthyUpdater).Init in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/reverseproxy/metrics.go:48 +0x4f

goroutine 15 [select]:
runtime.gopark(0xc000093fa8?, 0x2?, 0xc5?, 0x64?, 0xc000093f8c?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000093e30 sp=0xc000093e10 pc=0x47442e
runtime.selectgo(0xc000093fa8, 0xc000093f88, 0xc000117aa0?, 0x0, 0x8?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc000093f50 sp=0xc000093e30 pc=0x484985
github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy.(*metricsUpstreamsHealthyUpdater).Init.func1()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/reverseproxy/metrics.go:61 +0xca fp=0xc000093fe0 sp=0xc000093f50 pc=0x14dd18a
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000093fe8 sp=0xc000093fe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy.(*metricsUpstreamsHealthyUpdater).Init in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/reverseproxy/metrics.go:48 +0x4f

goroutine 16 [select]:
runtime.gopark(0xc0006cffa8?, 0x2?, 0x24?, 0x0?, 0xc0006cff9c?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0006f7e40 sp=0xc0006f7e20 pc=0x47442e
runtime.selectgo(0xc0006f7fa8, 0xc0006cff98, 0x7?, 0x0, 0xc000117aa0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc0006f7f60 sp=0xc0006f7e40 pc=0x484985
github.com/caddyserver/caddy/v2/modules/caddytls.(*TLS).keepStorageClean.func1()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddytls/tls.go:540 +0x93 fp=0xc0006f7fe0 sp=0xc0006f7f60 pc=0x1089973
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0006f7fe8 sp=0xc0006f7fe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddytls.(*TLS).keepStorageClean in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddytls/tls.go:532 +0xe5

goroutine 66 [syscall, locked to thread]:
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00008ffe8 sp=0xc00008ffe0 pc=0x4a7bc1

goroutine 67 [select]:
runtime.gopark(0xc0002e6788?, 0x2?, 0x70?, 0x40?, 0xc0002e6764?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0002e6608 sp=0xc0002e65e8 pc=0x47442e
runtime.selectgo(0xc0002e6788, 0xc0002e6760, 0x0?, 0x0, 0x14?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc0002e6728 sp=0xc0002e6608 pc=0x484985
github.com/caddyserver/caddy/v2/modules/caddypki.(*PKI).maintenance(0xc0000a8960)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddypki/maintain.go:38 +0xef fp=0xc0002e67c8 sp=0xc0002e6728 pc=0x10766cf
github.com/caddyserver/caddy/v2/modules/caddypki.(*PKI).Start.func1()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddypki/pki.go:113 +0x25 fp=0xc0002e67e0 sp=0xc0002e67c8 pc=0x1077d85
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0002e67e8 sp=0xc0002e67e0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddypki.(*PKI).Start in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddypki/pki.go:113 +0x47f

goroutine 68 [IO wait]:
runtime.gopark(0xc000054c00?, 0xc0006f49d0?, 0x3b?, 0xe9?, 0xc0006f4ab8?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0006f4980 sp=0xc0006f4960 pc=0x47442e
runtime.netpollblock(0x80?, 0x2eb9ee0?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:564 +0xf7 fp=0xc0006f49b8 sp=0xc0006f4980 pc=0x46cbb7
internal/poll.runtime_pollWait(0x7f8b70907cc0, 0x72)
        /usr/local/go/src/runtime/netpoll.go:343 +0x85 fp=0xc0006f49d8 sp=0xc0006f49b8 pc=0x4a1e25
internal/poll.(*pollDesc).wait(0xc00039e180?, 0xc0006f49f8?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc0006f4a00 sp=0xc0006f49d8 pc=0x557607
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).RawRead(0xc00039e180, 0xc0003c0000)
        /usr/local/go/src/internal/poll/fd_unix.go:708 +0x12a fp=0xc0006f4a60 sp=0xc0006f4a00 pc=0x55d76a
net.(*rawConn).Read(0xc0005286f8, 0xc0001f8120?)
        /usr/local/go/src/net/rawconn.go:44 +0x36 fp=0xc0006f4a98 sp=0xc0006f4a60 pc=0x61a076
golang.org/x/net/internal/socket.(*syscaller).recvmmsg(0xc0001f8168, {0x2eca110?, 0xc0005286f8?}, {0xc000054c00?, 0x2c489b0?, 0x0?}, 0x445d5e?)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/internal/socket/mmsghdr_unix.go:121 +0x7d fp=0xc0006f4ac8 sp=0xc0006f4a98 pc=0x83e77d
golang.org/x/net/internal/socket.(*Conn).recvMsgs(0xc000515da0, {0xc000480580?, 0x8, 0x8}, 0x280ef00?)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/internal/socket/rawconn_mmsg.go:25 +0x170 fp=0xc0006f4b98 sp=0xc0006f4ac8 pc=0x83f990
golang.org/x/net/internal/socket.(*Conn).RecvMsgs(...)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/internal/socket/socket.go:267
golang.org/x/net/ipv4.(*payloadHandler).ReadBatch(0xc0000d9e60, {0xc000480580?, 0x0?, 0x2?}, 0x0?)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/ipv4/batch.go:80 +0x57 fp=0xc0006f4c08 sp=0xc0006f4b98 pc=0x8467f7
golang.org/x/net/ipv4.(*PacketConn).ReadBatch(0x69814e0?, {0xc000480580?, 0x20?, 0x7?}, 0x0?)
        <autogenerated>:1 +0x27 fp=0xc0006f4c40 sp=0xc0006f4c08 pc=0x84ce67
github.com/quic-go/quic-go.(*oobConn).ReadPacket(0xc0003f0360)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/sys_conn_oob.go:168 +0x668 fp=0xc0006f4dd8 sp=0xc0006f4c40 pc=0xa1bfa8
github.com/quic-go/quic-go.(*Transport).listen(0xc00087c8c0, {0x2ed3eb0, 0xc0003f0360})
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:317 +0x169 fp=0xc0006f4fb8 sp=0xc0006f4dd8 pc=0xa1d809
github.com/quic-go/quic-go.(*Transport).init.func1.1()
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:221 +0x28 fp=0xc0006f4fe0 sp=0xc0006f4fb8 pc=0xa1d068
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0006f4fe8 sp=0xc0006f4fe0 pc=0x4a7bc1
created by github.com/quic-go/quic-go.(*Transport).init.func1 in goroutine 1
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:221 +0x3c9

goroutine 69 [select]:
runtime.gopark(0xc0002e7688?, 0x3?, 0x20?, 0x0?, 0xc0002e7682?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0002e74d8 sp=0xc0002e74b8 pc=0x47442e
runtime.selectgo(0xc0002e7688, 0xc0002e767c, 0x7?, 0x0, 0xc000063000?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc0002e75f8 sp=0xc0002e74d8 pc=0x484985
github.com/quic-go/quic-go.(*Transport).runSendQueue(0xc00087c8c0)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:246 +0x10a fp=0xc0002e77c8 sp=0xc0002e75f8 pc=0xa1d1aa
github.com/quic-go/quic-go.(*Transport).init.func1.2()
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:222 +0x25 fp=0xc0002e77e0 sp=0xc0002e77c8 pc=0xa1d005
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0002e77e8 sp=0xc0002e77e0 pc=0x4a7bc1
created by github.com/quic-go/quic-go.(*Transport).init.func1 in goroutine 1
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:222 +0x405

goroutine 70 [select]:
runtime.gopark(0xc0002e7eb0?, 0x2?, 0x20?, 0x0?, 0xc0002e7e9c?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0002e7cf8 sp=0xc0002e7cd8 pc=0x47442e
runtime.selectgo(0xc0002e7eb0, 0xc0002e7e98, 0x7?, 0x0, 0xc000063000?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc0002e7e18 sp=0xc0002e7cf8 pc=0x484985
github.com/quic-go/quic-go.(*baseServer).run(0xc0005ba300)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:271 +0x129 fp=0xc0002e7fc8 sp=0xc0002e7e18 pc=0xa10f89
github.com/quic-go/quic-go.newServer.func1()
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:257 +0x25 fp=0xc0002e7fe0 sp=0xc0002e7fc8 pc=0xa10e25
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0002e7fe8 sp=0xc0002e7fe0 pc=0x4a7bc1
created by github.com/quic-go/quic-go.newServer in goroutine 1
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:257 +0x45b

goroutine 71 [select]:
runtime.gopark(0xc0002e86a8?, 0x3?, 0x0?, 0x0?, 0xc0002e86a2?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0002e8500 sp=0xc0002e84e0 pc=0x47442e
runtime.selectgo(0xc0002e86a8, 0xc0002e869c, 0xc000063000?, 0x0, 0x20?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc0002e8620 sp=0xc0002e8500 pc=0x484985
github.com/quic-go/quic-go.(*baseServer).runSendQueue(0xc0005ba300)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:284 +0x107 fp=0xc0002e87c8 sp=0xc0002e8620 pc=0xa111c7
github.com/quic-go/quic-go.newServer.func2()
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:258 +0x25 fp=0xc0002e87e0 sp=0xc0002e87c8 pc=0xa10dc5
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0002e87e8 sp=0xc0002e87e0 pc=0x4a7bc1
created by github.com/quic-go/quic-go.newServer in goroutine 1
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:258 +0x498

goroutine 72 [select]:
runtime.gopark(0xc000091ea8?, 0x3?, 0x1?, 0x0?, 0xc000091e92?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000091d38 sp=0xc000091d18 pc=0x47442e
runtime.selectgo(0xc000091ea8, 0xc000091e8c, 0x0?, 0x0, 0xc000091e90?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc000091e58 sp=0xc000091d38 pc=0x484985
github.com/quic-go/quic-go.(*baseServer).accept(0xc0005ba300, {0x2ecf498, 0xc0000d9e00})
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:302 +0x9d fp=0xc000091ee8 sp=0xc000091e58 pc=0xa1139d
github.com/quic-go/quic-go.(*EarlyListener).Accept(...)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:149
github.com/caddyserver/caddy/v2.(*fakeCloseQuicListener).Accept(0xc00067f590, {0xc000274000?, 0x0?})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/listeners.go:677 +0x31 fp=0xc000091f30 sp=0xc000091ee8 pc=0xa694f1
github.com/quic-go/quic-go/http3.(*Server).ServeListener(0xc0003c4790, {0x2ec9f00, 0xc00067f590})
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/http3/server.go:270 +0x113 fp=0xc000091fb8 sp=0xc000091f30 pc=0xa35f53
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*Server).serveHTTP3.func1()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/server.go:585 +0x28 fp=0xc000091fe0 sp=0xc000091fb8 pc=0x1260a28
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000091fe8 sp=0xc000091fe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddyhttp.(*Server).serveHTTP3 in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/server.go:585 +0x425

goroutine 73 [IO wait]:
runtime.gopark(0x0?, 0x0?, 0xb8?, 0xda?, 0x55e99d?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00008da48 sp=0xc00008da28 pc=0x47442e
runtime.netpollblock(0x0?, 0x43cb66?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:564 +0xf7 fp=0xc00008da80 sp=0xc00008da48 pc=0x46cbb7
internal/poll.runtime_pollWait(0x7f8b70907db8, 0x72)
        /usr/local/go/src/runtime/netpoll.go:343 +0x85 fp=0xc00008daa0 sp=0xc00008da80 pc=0x4a1e25
internal/poll.(*pollDesc).wait(0xc00039e100?, 0x0?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc00008dac8 sp=0xc00008daa0 pc=0x557607
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc00039e100)
        /usr/local/go/src/internal/poll/fd_unix.go:611 +0x2ac fp=0xc00008db70 sp=0xc00008dac8 pc=0x55caec
net.(*netFD).accept(0xc00039e100)
        /usr/local/go/src/net/fd_unix.go:172 +0x29 fp=0xc00008dc28 sp=0xc00008db70 pc=0x604da9
net.(*TCPListener).accept(0xc000515d00)
        /usr/local/go/src/net/tcpsock_posix.go:152 +0x1e fp=0xc00008dc50 sp=0xc00008dc28 pc=0x61ed7e
net.(*TCPListener).Accept(0xc000515d00)
        /usr/local/go/src/net/tcpsock.go:315 +0x30 fp=0xc00008dc80 sp=0xc00008dc50 pc=0x61df30
github.com/caddyserver/caddy/v2.(*deleteListener).Accept(0x7f8b70917728?)
        <autogenerated>:1 +0x24 fp=0xc00008dc98 sp=0xc00008dc80 pc=0xa747e4
crypto/tls.(*listener).Accept(0xc000881668)
        /usr/local/go/src/crypto/tls/tls.go:66 +0x27 fp=0xc00008dcd8 sp=0xc00008dc98 pc=0x6aef67
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*http2Listener).Accept(0xc00067f5c0)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/http2listener.go:35 +0x49 fp=0xc00008de70 sp=0xc00008dcd8 pc=0x1249d69
net/http.(*onceCloseListener).Accept(0x2ecf348?)
        <autogenerated>:1 +0x24 fp=0xc00008de88 sp=0xc00008de70 pc=0x7734a4
net/http.(*Server).Serve(0xc0003d03c0, {0x2ecafe0, 0xc00067f5c0})
        /usr/local/go/src/net/http/server.go:3056 +0x364 fp=0xc00008dfb8 sp=0xc00008de88 pc=0x74f604
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*App).Start.func4()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/app.go:513 +0x28 fp=0xc00008dfe0 sp=0xc00008dfb8 pc=0x123c148
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00008dfe8 sp=0xc00008dfe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddyhttp.(*App).Start in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/app.go:513 +0x1c0e

goroutine 74 [IO wait]:
runtime.gopark(0xc0007e0000?, 0xc00008e9d0?, 0x3b?, 0xe9?, 0xc00008eab8?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00008e980 sp=0xc00008e960 pc=0x47442e
runtime.netpollblock(0x80?, 0x2eb9ee0?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:564 +0xf7 fp=0xc00008e9b8 sp=0xc00008e980 pc=0x46cbb7
internal/poll.runtime_pollWait(0x7f8b70907ad0, 0x72)
        /usr/local/go/src/runtime/netpoll.go:343 +0x85 fp=0xc00008e9d8 sp=0xc00008e9b8 pc=0x4a1e25
internal/poll.(*pollDesc).wait(0xc00039e300?, 0xc00008e9e8?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc00008ea00 sp=0xc00008e9d8 pc=0x557607
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).RawRead(0xc00039e300, 0xc000274050)
        /usr/local/go/src/internal/poll/fd_unix.go:708 +0x12a fp=0xc00008ea60 sp=0xc00008ea00 pc=0x55d76a
net.(*rawConn).Read(0xc000528948, 0xc00063a120?)
        /usr/local/go/src/net/rawconn.go:44 +0x36 fp=0xc00008ea98 sp=0xc00008ea60 pc=0x61a076
golang.org/x/net/internal/socket.(*syscaller).recvmmsg(0xc00063a168, {0x2eca110?, 0xc000528948?}, {0xc0007e0000?, 0x2c489b0?, 0x0?}, 0x445d5e?)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/internal/socket/mmsghdr_unix.go:121 +0x7d fp=0xc00008eac8 sp=0xc00008ea98 pc=0x83e77d
golang.org/x/net/internal/socket.(*Conn).recvMsgs(0xc000515f20, {0xc000480dc0?, 0x8, 0x8}, 0x280ef00?)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/internal/socket/rawconn_mmsg.go:25 +0x170 fp=0xc00008eb98 sp=0xc00008eac8 pc=0x83f990
golang.org/x/net/internal/socket.(*Conn).RecvMsgs(...)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/internal/socket/socket.go:267
golang.org/x/net/ipv4.(*payloadHandler).ReadBatch(0xc0003db500, {0xc000480dc0?, 0x0?, 0x1?}, 0x0?)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/ipv4/batch.go:80 +0x57 fp=0xc00008ec08 sp=0xc00008eb98 pc=0x8467f7
golang.org/x/net/ipv4.(*PacketConn).ReadBatch(0x69814e0?, {0xc000480dc0?, 0xc000324000?, 0x0?}, 0xfb00000000?)
        <autogenerated>:1 +0x27 fp=0xc00008ec40 sp=0xc00008ec08 pc=0x84ce67
github.com/quic-go/quic-go.(*oobConn).ReadPacket(0xc0003f03f0)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/sys_conn_oob.go:168 +0x668 fp=0xc00008edd8 sp=0xc00008ec40 pc=0xa1bfa8
github.com/quic-go/quic-go.(*Transport).listen(0xc00087c9a0, {0x2ed3eb0, 0xc0003f03f0})
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:317 +0x169 fp=0xc00008efb8 sp=0xc00008edd8 pc=0xa1d809
github.com/quic-go/quic-go.(*Transport).init.func1.1()
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:221 +0x28 fp=0xc00008efe0 sp=0xc00008efb8 pc=0xa1d068
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00008efe8 sp=0xc00008efe0 pc=0x4a7bc1
created by github.com/quic-go/quic-go.(*Transport).init.func1 in goroutine 1
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:221 +0x3c9

goroutine 75 [select]:
runtime.gopark(0xc00007f688?, 0x3?, 0x0?, 0x0?, 0xc00007f682?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007f4d8 sp=0xc00007f4b8 pc=0x47442e
runtime.selectgo(0xc00007f688, 0xc00007f67c, 0x0?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc00007f5f8 sp=0xc00007f4d8 pc=0x484985
github.com/quic-go/quic-go.(*Transport).runSendQueue(0xc00087c9a0)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:246 +0x10a fp=0xc00007f7c8 sp=0xc00007f5f8 pc=0xa1d1aa
github.com/quic-go/quic-go.(*Transport).init.func1.2()
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:222 +0x25 fp=0xc00007f7e0 sp=0xc00007f7c8 pc=0xa1d005
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007f7e8 sp=0xc00007f7e0 pc=0x4a7bc1
created by github.com/quic-go/quic-go.(*Transport).init.func1 in goroutine 1
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/transport.go:222 +0x405

goroutine 76 [select]:
runtime.gopark(0xc00007feb0?, 0x2?, 0x0?, 0x0?, 0xc00007fe9c?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00007fcf8 sp=0xc00007fcd8 pc=0x47442e
runtime.selectgo(0xc00007feb0, 0xc00007fe98, 0x0?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc00007fe18 sp=0xc00007fcf8 pc=0x484985
github.com/quic-go/quic-go.(*baseServer).run(0xc0005ba400)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:271 +0x129 fp=0xc00007ffc8 sp=0xc00007fe18 pc=0xa10f89
github.com/quic-go/quic-go.newServer.func1()
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:257 +0x25 fp=0xc00007ffe0 sp=0xc00007ffc8 pc=0xa10e25
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00007ffe8 sp=0xc00007ffe0 pc=0x4a7bc1
created by github.com/quic-go/quic-go.newServer in goroutine 1
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:257 +0x45b

goroutine 77 [select]:
runtime.gopark(0xc0002edea8?, 0x3?, 0x0?, 0x0?, 0xc0002edea2?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0006f5d00 sp=0xc0006f5ce0 pc=0x47442e
runtime.selectgo(0xc0006f5ea8, 0xc0002ede9c, 0x0?, 0x0, 0xfb00000000?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc0006f5e20 sp=0xc0006f5d00 pc=0x484985
github.com/quic-go/quic-go.(*baseServer).runSendQueue(0xc0005ba400)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:284 +0x107 fp=0xc0006f5fc8 sp=0xc0006f5e20 pc=0xa111c7
github.com/quic-go/quic-go.newServer.func2()
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:258 +0x25 fp=0xc0006f5fe0 sp=0xc0006f5fc8 pc=0xa10dc5
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0006f5fe8 sp=0xc0006f5fe0 pc=0x4a7bc1
created by github.com/quic-go/quic-go.newServer in goroutine 1
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:258 +0x498

goroutine 78 [select]:
runtime.gopark(0xc000786ea8?, 0x3?, 0x1?, 0x0?, 0xc000786e92?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000786d38 sp=0xc000786d18 pc=0x47442e
runtime.selectgo(0xc000786ea8, 0xc000786e8c, 0x0?, 0x0, 0xc000786e90?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc000786e58 sp=0xc000786d38 pc=0x484985
github.com/quic-go/quic-go.(*baseServer).accept(0xc0005ba400, {0x2ecf498, 0xc0000d9f90})
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:302 +0x9d fp=0xc000786ee8 sp=0xc000786e58 pc=0xa1139d
github.com/quic-go/quic-go.(*EarlyListener).Accept(...)
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/server.go:149
github.com/caddyserver/caddy/v2.(*fakeCloseQuicListener).Accept(0xc00067f950, {0xc000274070?, 0xc0000a9140?})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/listeners.go:677 +0x31 fp=0xc000786f30 sp=0xc000786ee8 pc=0xa694f1
github.com/quic-go/quic-go/http3.(*Server).ServeListener(0xc0003c4a50, {0x2ec9f00, 0xc00067f950})
        /root/go/pkg/mod/github.com/quic-go/quic-go@v0.37.6/http3/server.go:270 +0x113 fp=0xc000786fb8 sp=0xc000786f30 pc=0xa35f53
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*Server).serveHTTP3.func1()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/server.go:585 +0x28 fp=0xc000786fe0 sp=0xc000786fb8 pc=0x1260a28
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000786fe8 sp=0xc000786fe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddyhttp.(*Server).serveHTTP3 in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/server.go:585 +0x425

goroutine 79 [IO wait]:
runtime.gopark(0x4cd670?, 0xc0006f6a68?, 0xb8?, 0x6a?, 0x55e99d?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0006f6a48 sp=0xc0006f6a28 pc=0x47442e
runtime.netpollblock(0x0?, 0x43cb66?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:564 +0xf7 fp=0xc0006f6a80 sp=0xc0006f6a48 pc=0x46cbb7
internal/poll.runtime_pollWait(0x7f8b70907bc8, 0x72)
        /usr/local/go/src/runtime/netpoll.go:343 +0x85 fp=0xc0006f6aa0 sp=0xc0006f6a80 pc=0x4a1e25
internal/poll.(*pollDesc).wait(0xc00039e280?, 0x0?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc0006f6ac8 sp=0xc0006f6aa0 pc=0x557607
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc00039e280)
        /usr/local/go/src/internal/poll/fd_unix.go:611 +0x2ac fp=0xc0006f6b70 sp=0xc0006f6ac8 pc=0x55caec
net.(*netFD).accept(0xc00039e280)
        /usr/local/go/src/net/fd_unix.go:172 +0x29 fp=0xc0006f6c28 sp=0xc0006f6b70 pc=0x604da9
net.(*TCPListener).accept(0xc000515ea0)
        /usr/local/go/src/net/tcpsock_posix.go:152 +0x1e fp=0xc0006f6c50 sp=0xc0006f6c28 pc=0x61ed7e
net.(*TCPListener).Accept(0xc000515ea0)
        /usr/local/go/src/net/tcpsock.go:315 +0x30 fp=0xc0006f6c80 sp=0xc0006f6c50 pc=0x61df30
github.com/caddyserver/caddy/v2.(*deleteListener).Accept(0x0?)
        <autogenerated>:1 +0x24 fp=0xc0006f6c98 sp=0xc0006f6c80 pc=0xa747e4
crypto/tls.(*listener).Accept(0xc000881848)
        /usr/local/go/src/crypto/tls/tls.go:66 +0x27 fp=0xc0006f6cd8 sp=0xc0006f6c98 pc=0x6aef67
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*http2Listener).Accept(0xc00067f980)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/http2listener.go:35 +0x49 fp=0xc0006f6e70 sp=0xc0006f6cd8 pc=0x1249d69
net/http.(*onceCloseListener).Accept(0xc0003f0990?)
        <autogenerated>:1 +0x24 fp=0xc0006f6e88 sp=0xc0006f6e70 pc=0x7734a4
net/http.(*Server).Serve(0xc0003d04b0, {0x2ecafe0, 0xc00067f980})
        /usr/local/go/src/net/http/server.go:3056 +0x364 fp=0xc0006f6fb8 sp=0xc0006f6e88 pc=0x74f604
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*App).Start.func4()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/app.go:513 +0x28 fp=0xc0006f6fe0 sp=0xc0006f6fb8 pc=0x123c148
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0006f6fe8 sp=0xc0006f6fe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddyhttp.(*App).Start in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/app.go:513 +0x1c0e

goroutine 80 [IO wait]:
runtime.gopark(0x4615bb?, 0xc0002e9c38?, 0x90?, 0x2c?, 0x55e99d?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000782c20 sp=0xc000782c00 pc=0x47442e
runtime.netpollblock(0xe?, 0x43cb66?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:564 +0xf7 fp=0xc000782c58 sp=0xc000782c20 pc=0x46cbb7
internal/poll.runtime_pollWait(0x7f8b709079d8, 0x72)
        /usr/local/go/src/runtime/netpoll.go:343 +0x85 fp=0xc000782c78 sp=0xc000782c58 pc=0x4a1e25
internal/poll.(*pollDesc).wait(0xc00039e500?, 0x44f693?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc000782ca0 sp=0xc000782c78 pc=0x557607
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc00039e500)
        /usr/local/go/src/internal/poll/fd_unix.go:611 +0x2ac fp=0xc000782d48 sp=0xc000782ca0 pc=0x55caec
net.(*netFD).accept(0xc00039e500)
        /usr/local/go/src/net/fd_unix.go:172 +0x29 fp=0xc000782e00 sp=0xc000782d48 pc=0x604da9
net.(*TCPListener).accept(0xc0004aa040)
        /usr/local/go/src/net/tcpsock_posix.go:152 +0x1e fp=0xc000782e28 sp=0xc000782e00 pc=0x61ed7e
net.(*TCPListener).Accept(0xc0004aa040)
        /usr/local/go/src/net/tcpsock.go:315 +0x30 fp=0xc000782e58 sp=0xc000782e28 pc=0x61df30
github.com/caddyserver/caddy/v2.(*deleteListener).Accept(0x689ef90?)
        <autogenerated>:1 +0x24 fp=0xc000782e70 sp=0xc000782e58 pc=0xa747e4
net/http.(*onceCloseListener).Accept(0x2ecf348?)
        <autogenerated>:1 +0x24 fp=0xc000782e88 sp=0xc000782e70 pc=0x7734a4
net/http.(*Server).Serve(0xc0003d05a0, {0x2ec9f90, 0xc0004aa060})
        /usr/local/go/src/net/http/server.go:3056 +0x364 fp=0xc000782fb8 sp=0xc000782e88 pc=0x74f604
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*App).Start.func4()
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/app.go:513 +0x28 fp=0xc000782fe0 sp=0xc000782fb8 pc=0x123c148
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000782fe8 sp=0xc000782fe0 pc=0x4a7bc1
created by github.com/caddyserver/caddy/v2/modules/caddyhttp.(*App).Start in goroutine 1
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/app.go:513 +0x1c0e

goroutine 82 [select]:
runtime.gopark(0xc00082d7c8?, 0x5?, 0x13?, 0xee?, 0xc00082d38e?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc00082d1e0 sp=0xc00082d1c0 pc=0x47442e
runtime.selectgo(0xc00082d7c8, 0xc00082d384, 0xc0006d4cc0?, 0x0, 0x0?, 0x1)
        /usr/local/go/src/runtime/select.go:327 +0x725 fp=0xc00082d300 sp=0xc00082d1e0 pc=0x484985
golang.org/x/net/http2.(*serverConn).serve(0xc0004b8f00)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:938 +0x88f fp=0xc00082d828 sp=0xc00082d300 pc=0xb60d8f
golang.org/x/net/http2.(*Server).ServeConn(0xc0000d9ea0, {0x2ed8048?, 0xc0005c8e00}, 0xc00082db18)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:531 +0xbcc fp=0xc00082dae0 sp=0xc00082d828 pc=0xb5f08c
golang.org/x/net/http2.ConfigureServer.func1(0xc0003d04b0, 0x2ed8048?, {0x2ebac00, 0xc0002a4dc0})
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:321 +0xff fp=0xc00082db78 sp=0xc00082dae0 pc=0xb5e47f
net/http.(*conn).serve(0xc0003f0990, {0x2ecf460, 0xc0006d44b0})
        /usr/local/go/src/net/http/server.go:1917 +0x1213 fp=0xc00082dfb8 sp=0xc00082db78 pc=0x74bcb3
net/http.(*Server).Serve.func3()
        /usr/local/go/src/net/http/server.go:3086 +0x28 fp=0xc00082dfe0 sp=0xc00082dfb8 pc=0x74f9c8
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00082dfe8 sp=0xc00082dfe0 pc=0x4a7bc1
created by net/http.(*Server).Serve in goroutine 79
        /usr/local/go/src/net/http/server.go:3086 +0x5cb

goroutine 85 [IO wait]:
runtime.gopark(0xea0bfbc19e35d072?, 0xb?, 0x0?, 0x0?, 0xe?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc0006e26f0 sp=0xc0006e26d0 pc=0x47442e
runtime.netpollblock(0x4cb418?, 0x43cb66?, 0x0?)
        /usr/local/go/src/runtime/netpoll.go:564 +0xf7 fp=0xc0006e2728 sp=0xc0006e26f0 pc=0x46cbb7
internal/poll.runtime_pollWait(0x7f8b709078e0, 0x72)
        /usr/local/go/src/runtime/netpoll.go:343 +0x85 fp=0xc0006e2748 sp=0xc0006e2728 pc=0x4a1e25
internal/poll.(*pollDesc).wait(0xc00039e780?, 0xc000650500?, 0x0)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc0006e2770 sp=0xc0006e2748 pc=0x557607
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00039e780, {0xc000650500, 0x500, 0x500})
        /usr/local/go/src/internal/poll/fd_unix.go:164 +0x27a fp=0xc0006e2808 sp=0xc0006e2770 pc=0x5588fa
net.(*netFD).Read(0xc00039e780, {0xc000650500?, 0xc000650505?, 0x84?})
        /usr/local/go/src/net/fd_posix.go:55 +0x25 fp=0xc0006e2850 sp=0xc0006e2808 pc=0x602d85
net.(*conn).Read(0xc000528aa8, {0xc000650500?, 0x7f8b70989a88?, 0xc0005c8fb8?})
        /usr/local/go/src/net/net.go:179 +0x45 fp=0xc0006e2898 sp=0xc0006e2850 pc=0x6163e5
net.(*TCPConn).Read(0xc0006e2930?, {0xc000650500?, 0xc0008801e0?, 0x18?})
        <autogenerated>:1 +0x25 fp=0xc0006e28c8 sp=0xc0006e2898 pc=0x627d25
crypto/tls.(*atLeastReader).Read(0xc0008801e0, {0xc000650500?, 0xc0008801e0?, 0x0?})
        /usr/local/go/src/crypto/tls/conn.go:805 +0x3b fp=0xc0006e2910 sp=0xc0006e28c8 pc=0x67471b
bytes.(*Buffer).ReadFrom(0xc0005c90a8, {0x2eba240, 0xc0008801e0})
        /usr/local/go/src/bytes/buffer.go:211 +0x98 fp=0xc0006e2968 sp=0xc0006e2910 pc=0x4bdb58
crypto/tls.(*Conn).readFromUntil(0xc0005c8e00, {0x2eba680?, 0xc000528aa8}, 0xc000502000?)
        /usr/local/go/src/crypto/tls/conn.go:827 +0xde fp=0xc0006e29a8 sp=0xc0006e2968 pc=0x6748fe
crypto/tls.(*Conn).readRecordOrCCS(0xc0005c8e00, 0x0)
        /usr/local/go/src/crypto/tls/conn.go:625 +0x250 fp=0xc0006e2d48 sp=0xc0006e29a8 pc=0x671ed0
crypto/tls.(*Conn).readRecord(...)
        /usr/local/go/src/crypto/tls/conn.go:587
crypto/tls.(*Conn).Read(0xc0005c8e00, {0xc00087d380, 0x9, 0x484e86?})
        /usr/local/go/src/crypto/tls/conn.go:1369 +0x158 fp=0xc0006e2db8 sp=0xc0006e2d48 pc=0x678198
io.ReadAtLeast({0x7f8b70302d00, 0xc0005c8e00}, {0xc00087d380, 0x9, 0x9}, 0x9)
        /usr/local/go/src/io/io.go:335 +0x90 fp=0xc0006e2e00 sp=0xc0006e2db8 pc=0x4b51b0
io.ReadFull(...)
        /usr/local/go/src/io/io.go:354
golang.org/x/net/http2.readFrameHeader({0xc00087d380, 0x9, 0x0?}, {0x7f8b70302d00?, 0xc0005c8e00?})
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/frame.go:237 +0x65 fp=0xc0006e2e50 sp=0xc0006e2e00 pc=0xb548a5
golang.org/x/net/http2.(*Framer).ReadFrame(0xc00087d340)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/frame.go:498 +0x85 fp=0xc0006e2ef8 sp=0xc0006e2e50 pc=0xb54fe5
golang.org/x/net/http2.(*serverConn).readFrames(0xc0004b8f00)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:818 +0x87 fp=0xc0006e2fc8 sp=0xc0006e2ef8 pc=0xb5ff27
golang.org/x/net/http2.(*serverConn).serve.func7()
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:930 +0x25 fp=0xc0006e2fe0 sp=0xc0006e2fc8 pc=0xb61565
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0006e2fe8 sp=0xc0006e2fe0 pc=0x4a7bc1
created by golang.org/x/net/http2.(*serverConn).serve in goroutine 82
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:930 +0x56a

goroutine 99 [syscall, locked to thread]:
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0004fbfe8 sp=0xc0004fbfe0 pc=0x4a7bc1

goroutine 103 [chan receive]:
runtime.gopark(0x2?, 0xc0007ca7c0?, 0xc0?, 0x7e?, 0x447a3e?)
        /usr/local/go/src/runtime/proc.go:398 +0xce fp=0xc000627e70 sp=0xc000627e50 pc=0x47442e
runtime.chanrecv(0xc0008a23c0, 0x0, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x3cd fp=0xc000627ee8 sp=0xc000627e70 pc=0x43f82d
runtime.chanrecv1(0xc000627fb0?, 0xc000627f50?)
        /usr/local/go/src/runtime/chan.go:442 +0x12 fp=0xc000627f10 sp=0xc000627ee8 pc=0x43f432
github.com/dunglas/frankenphp.ServeHTTP({0x2ecb100?, 0xc0002d7a90}, 0xc00024bf00)
        /opt/frankenphp/frankenphp.go:431 +0x355 fp=0xc000627fe8 sp=0xc000627f10 pc=0x1622375
github.com/dunglas/frankenphp/caddy.FrankenPHPModule.ServeHTTP({{0x2a10977, 0x10}, {0xc00037ff40, 0x1, 0x1}, 0x0, 0x0, 0xc000248770}, {0x2ecb100, 0xc0002d7a90}, ...)
        /opt/frankenphp/caddy/caddy.go:246 +0x445 fp=0xc0006282d8 sp=0xc000627fe8 pc=0x1628c85
github.com/dunglas/frankenphp/caddy.(*FrankenPHPModule).ServeHTTP(0x446845?, {0x2ecb100?, 0xc0002d7a90?}, 0xc000880e01?, {0x2ebd3c0?, 0xc00031e7c0?})
        <autogenerated>:1 +0xe5 fp=0xc000628390 sp=0xc0006282d8 pc=0x162dba5
github.com/caddyserver/caddy/v2/modules/caddyhttp.wrapMiddleware.func1.1({0x2ecb100?, 0xc0002d7a90?}, 0x2ebd3c0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:331 +0x3a fp=0xc0006283d0 sp=0xc000628390 pc=0x125dbfa
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x2ebd3c0?, {0x2ecb100?, 0xc0002d7a90?}, 0xc000628478?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc0006283f8 sp=0xc0006283d0 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.RouteList.Compile.wrapRoute.func1.1({0x2ecb100, 0xc0002d7a90}, 0xf?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:300 +0x2c9 fp=0xc000628488 sp=0xc0006283f8 pc=0x125d989
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x0?, {0x2ecb100?, 0xc0002d7a90?}, 0xc0002bc400?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc0006284b0 sp=0xc000628488 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp/rewrite.Rewrite.ServeHTTP({{0x0, 0x0}, {0xc00017bfc0, 0x1d}, {0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0, ...}, ...}, ...)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/rewrite/rewrite.go:137 +0x3f3 fp=0xc000628638 sp=0xc0006284b0 pc=0x14a01d3
github.com/caddyserver/caddy/v2/modules/caddyhttp/rewrite.(*Rewrite).ServeHTTP(0x446845?, {0x2ecb100?, 0xc0002d7a90?}, 0x26c2d01?, {0x2ebd3c0?, 0xc00031e7e0?})
        <autogenerated>:1 +0xd6 fp=0xc000628760 sp=0xc000628638 pc=0x14a21f6
github.com/caddyserver/caddy/v2/modules/caddyhttp.wrapMiddleware.func1.1({0x2ecb100?, 0xc0002d7a90?}, 0x2ebd3c0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:331 +0x3a fp=0xc0006287a0 sp=0xc000628760 pc=0x125dbfa
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x2ebd3c0?, {0x2ecb100?, 0xc0002d7a90?}, 0x6?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc0006287c8 sp=0xc0006287a0 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.RouteList.Compile.wrapRoute.func1.1({0x2ecb100, 0xc0002d7a90}, 0xe?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:300 +0x2c9 fp=0xc000628858 sp=0xc0006287c8 pc=0x125d989
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x2ecf460?, {0x2ecb100?, 0xc0002d7a90?}, 0xe?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000628880 sp=0xc000628858 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.RouteList.Compile.wrapRoute.func1.1({0x2ecb100, 0xc0002d7a90}, 0xc00039bc20?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:268 +0x264 fp=0xc000628910 sp=0xc000628880 pc=0x125d924
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0xc0004fc9a8?, {0x2ecb100?, 0xc0002d7a90?}, 0x4?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000628938 sp=0xc000628910 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.VarsMiddleware.ServeHTTP(0x0?, {0x2ecb100, 0xc0002d7a90}, 0xc00024be00, {0x2ebd3c0, 0xc00031e820})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/vars.go:61 +0x273 fp=0xc000628a18 sp=0xc000628938 pc=0x1265e13
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*VarsMiddleware).ServeHTTP(0x28cc780?, {0x2ecb100?, 0xc0002d7a90?}, 0x7f8bb75885b8?, {0x2ebd3c0?, 0xc00031e820?})
        <autogenerated>:1 +0x38 fp=0xc000628a58 sp=0xc000628a18 pc=0x1271778
github.com/caddyserver/caddy/v2/modules/caddyhttp.wrapMiddleware.func1.1({0x2ecb100?, 0xc0002d7a90?}, 0x28?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:331 +0x3a fp=0xc000628a98 sp=0xc000628a58 pc=0x125dbfa
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0xc0004fcbb8?, {0x2ecb100?, 0xc0002d7a90?}, 0xc000880d50?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000628ac0 sp=0xc000628a98 pc=0x1242ce9
github.com/dunglas/mercure/caddy.Mercure.ServeHTTP({0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, {{0xc0007ae480, 0x26}, {0xc00017bbe0, ...}}, ...}, ...)
        /root/go/pkg/mod/github.com/dunglas/mercure/caddy@v0.15.2/caddy.go:235 +0xb8 fp=0xc000628af0 sp=0xc000628ac0 pc=0x170d6b8
github.com/dunglas/mercure/caddy.(*Mercure).ServeHTTP(0x7f8b705a59e0?, {0x2ecb100?, 0xc0002d7a90?}, 0xc000502000?, {0x2ebd3c0?, 0xc0006d51d0?})
        <autogenerated>:1 +0xa7 fp=0xc000628cc8 sp=0xc000628af0 pc=0x170e6c7
github.com/caddyserver/caddy/v2/modules/caddyhttp.wrapMiddleware.func1.1({0x2ecb100?, 0xc0002d7a90?}, 0xc0006fab60?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:331 +0x3a fp=0xc000628d08 sp=0xc000628cc8 pc=0x125dbfa
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0xc000352e50?, {0x2ecb100?, 0xc0002d7a90?}, 0x4?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000628d30 sp=0xc000628d08 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp/encode.(*Encode).ServeHTTP(0xc0002ac880, {0x7f8b70269480, 0xc0006d5080}, 0xc00024be00, {0x2ebd3c0, 0xc0006d5200})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/encode/encode.go:137 +0x283 fp=0xc000628da0 sp=0xc000628d30 pc=0x12a2f23
github.com/caddyserver/caddy/v2/modules/caddyhttp.wrapMiddleware.func1.1({0x7f8b70269480?, 0xc0006d5080?}, 0x2ebd3c0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:331 +0x3a fp=0xc000628de0 sp=0xc000628da0 pc=0x125dbfa
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x2ebd3c0?, {0x7f8b70269480?, 0xc0006d5080?}, 0x0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000628e08 sp=0xc000628de0 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.RouteList.Compile.wrapRoute.func1.1({0x7f8b70269480, 0xc0006d5080}, 0x1?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:300 +0x2c9 fp=0xc000628e98 sp=0xc000628e08 pc=0x125d989
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0xc00036b200?, {0x7f8b70269480?, 0xc0006d5080?}, 0x2ebd3c0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000628ec0 sp=0xc000628e98 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*Subroute).ServeHTTP(0xc0002e4380, {0x7f8b70269480, 0xc0006d5080}, 0x1?, {0x2ebd3c0, 0x2c46e28})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/subroute.go:74 +0x67 fp=0xc000628f00 sp=0xc000628ec0 pc=0x1265a47
github.com/caddyserver/caddy/v2/modules/caddyhttp.wrapMiddleware.func1.1({0x7f8b70269480?, 0xc0006d5080?}, 0x2ebd3c0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:331 +0x3a fp=0xc000628f40 sp=0xc000628f00 pc=0x125dbfa
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x2ebd3c0?, {0x7f8b70269480?, 0xc0006d5080?}, 0xc000352860?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000628f68 sp=0xc000628f40 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.RouteList.Compile.wrapRoute.func1.1({0x7f8b70269480, 0xc0006d5080}, 0xe?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:300 +0x2c9 fp=0xc000628ff8 sp=0xc000628f68 pc=0x125d989
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x2ecf460?, {0x7f8b70269480?, 0xc0006d5080?}, 0xe?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000629020 sp=0xc000628ff8 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.RouteList.Compile.wrapRoute.func1.1({0x7f8b70269480, 0xc0006d5080}, 0x1?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:268 +0x264 fp=0xc0006290b0 sp=0xc000629020 pc=0x125d924
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0xc000351680?, {0x7f8b70269480?, 0xc0006d5080?}, 0x2ebd3c0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc0006290d8 sp=0xc0006290b0 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*Subroute).ServeHTTP(0xc0002bfd60, {0x7f8b70269480, 0xc0006d5080}, 0x26c2d01?, {0x2ebd3c0, 0x2c46e28})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/subroute.go:74 +0x67 fp=0xc000629118 sp=0xc0006290d8 pc=0x1265a47
github.com/caddyserver/caddy/v2/modules/caddyhttp.wrapMiddleware.func1.1({0x7f8b70269480?, 0xc0006d5080?}, 0x2ebd3c0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:331 +0x3a fp=0xc000629158 sp=0xc000629118 pc=0x125dbfa
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x2ebd3c0?, {0x7f8b70269480?, 0xc0006d5080?}, 0x0?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000629180 sp=0xc000629158 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.RouteList.Compile.wrapRoute.func1.1({0x7f8b70269480, 0xc0006d5080}, 0xe?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:300 +0x2c9 fp=0xc000629210 sp=0xc000629180 pc=0x125d989
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x2ecf460?, {0x7f8b70269480?, 0xc0006d5080?}, 0xe?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000629238 sp=0xc000629210 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.RouteList.Compile.wrapRoute.func1.1({0x7f8b70269480, 0xc0006d5080}, 0x4464c5?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/routes.go:268 +0x264 fp=0xc0006292c8 sp=0xc000629238 pc=0x125d924
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0x18?, {0x7f8b70269480?, 0xc0006d5080?}, 0x7f8b70768bc8?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc0006292f0 sp=0xc0006292c8 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*Server).enforcementHandler(0x446845?, {0x7f8b70269480?, 0xc0006d5080?}, 0x1?, {0x2ebd3c0?, 0xc000301040?})
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/server.go:430 +0x248 fp=0xc0006293c8 sp=0xc0006292f0 pc=0x1260048
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*App).Provision.(*Server).wrapPrimaryRoute.func1({0x7f8b70269480?, 0xc0006d5080?}, 0x4d97af?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/server.go:406 +0x35 fp=0xc000629408 sp=0xc0006293c8 pc=0x1239755
github.com/caddyserver/caddy/v2/modules/caddyhttp.HandlerFunc.ServeHTTP(0xc000185180?, {0x7f8b70269480?, 0xc0006d5080?}, 0xc00024be00?)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/caddyhttp.go:58 +0x29 fp=0xc000629430 sp=0xc000629408 pc=0x1242ce9
github.com/caddyserver/caddy/v2/modules/caddyhttp.(*Server).ServeHTTP(0xc000480840, {0x2ecbae0, 0xc0000805e0}, 0xc00024bc00)
        /root/go/pkg/mod/github.com/caddyserver/caddy/v2@v2.7.4/modules/caddyhttp/server.go:342 +0xf2e fp=0xc000629d18 sp=0xc000629430 pc=0x125f1ce
net/http.serverHandler.ServeHTTP({0x69de860?}, {0x2ecbae0?, 0xc0000805e0?}, 0x100000000000002?)
        /usr/local/go/src/net/http/server.go:2938 +0x8e fp=0xc000629d48 sp=0xc000629d18 pc=0x74f1ae
net/http.initALPNRequest.ServeHTTP({{0x2ecf460?, 0xc0006d4510?}, 0xc0005c8e00?, {0xc0003d04b0?}}, {0x2ecbae0, 0xc0000805e0}, 0xc00024bc00)
        /usr/local/go/src/net/http/server.go:3546 +0x231 fp=0xc000629ed8 sp=0xc000629d48 pc=0x752331
net/http.(*initALPNRequest).ServeHTTP(0xb6014b?, {0x2ecbae0?, 0xc0000805e0?}, 0xc0004b8f00?)
        <autogenerated>:1 +0x4f fp=0xc000629f20 sp=0xc000629ed8 pc=0x77372f
net/http.Handler.ServeHTTP-fm({0x2ecbae0?, 0xc0000805e0?}, 0x2ec78f0?)
        <autogenerated>:1 +0x3b fp=0xc000629f50 sp=0xc000629f20 pc=0x774c9b
golang.org/x/net/http2.(*serverConn).runHandler(0x69de860?, 0x0?, 0x0?, 0x0?)
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:2306 +0x78 fp=0xc000629fb0 sp=0xc000629f50 pc=0xb682d8
golang.org/x/net/http2.(*serverConn).processHeaders.func2()
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:2020 +0x2c fp=0xc000629fe0 sp=0xc000629fb0 pc=0xb65b4c
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000629fe8 sp=0xc000629fe0 pc=0x4a7bc1
created by golang.org/x/net/http2.(*serverConn).processHeaders in goroutine 82
        /root/go/pkg/mod/golang.org/x/net@v0.15.0/http2/server.go:2020 +0x691

rax    0x55
rbx    0x2f5c623
rcx    0x1
rdx    0xe
rdi    0x2f5c623
rsi    0x7f8b6dcbaa70
rbp    0x7f8b6dcd5af0
rsp    0x7f8b6dd9d638
r8     0x3d3d3d3d3d3d3d01
r9     0x2f5c623
r10    0x7f8b6dcbaa70
r11    0x0
r12    0xe
r13    0x4
r14    0x20
r15    0x7f8b7029d9b0
rip    0x25c8620
rflags 0x10202
cs     0x33
fs     0x0
gs     0x0````
DubbleClick commented 1 year ago

Same problem when using docker to serve by the way (what's the recommended way to configure Caddy there? I went to replace the Caddyfile by ssh'ing into the container...). Also an issue every few requests without worker mode, I suppose it just immediately threw errors in worker mode. Works with php-fpm SAPI (php_fastcgi directive in Caddyfile).

I guess we'll have to remove our recommendations. imap is basically not usable with FrankenPHP at the moment then.

dunglas commented 1 year ago

Unfortunately, the stack trace doesn't say much about what occurs. Do you think this could be possible to get an isolated test?

DubbleClick commented 1 year ago

In the form of a reproducer repository, or a Dockerfile running a Symfony skeleton with php-imap installed?

dunglas commented 10 months ago

php-imap is not thread-safe (not compatible with ZTS is required by FrankenPHP) and is planned to be removed from the main PHP distribution because it is unmaintained.

Unfortunately, there is nothing we can do on our side.

See https://github.com/dunglas/frankenphp/issues/226.

DubbleClick commented 10 months ago

This is about the pure php library webklex/php-imap, not the extension php-imap.

dunglas commented 10 months ago

Sorry I read to fast. Yes a reproducer repo (bo Dockerfile needed), just the Caddyfile could help a lot!

mhpcc commented 6 months ago

Sorry, I totally forgot to create a reproducer, here you go: https://github.com/mhpcc/frankenphp_imap_test/

Starting the worker with ./frankenphp php-server --worker ./public/index.php

dunglas commented 6 months ago

I tried to reproduce it locally (Mac), but it didn't crash.

However, there is a typo in your command, this should be frankenphp php-server -r public/ --worker ./public/index.php (notice the -r public/).

dunglas commented 6 months ago

This also works without crashing using the latest Docker image (Linux ARM):

docker run -v $PWD:/app \
    -p 80:80 -p 443:443 -p 443:443/udp \
    dunglas/frankenphp

Closing for now, please reopen if it still crashes on your side, and give the exact version of FrankenPHP, PHP, and the OS you are using.

mhpcc commented 6 months ago
[root@svmdev frankenphp_imap]# ./frankenphp-linux-x86_64-debug php-server -r public/ --worker ./public/index.php
2024/04/16 08:20:28.170 WARN    admin   admin endpoint disabled
2024/04/16 08:20:28.170 WARN    http.auto_https server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server {"server_name": "php", "http_port": 80}
2024/04/16 08:20:28.170 INFO    tls.cache.maintenance   started background certificate maintenance      {"cache": "0xc000498d80"}
2024/04/16 08:20:28.276 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.276 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.276 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.276 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.277 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.276 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.277 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.276 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.292 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.293 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.294 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.295 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.297 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.298 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.299 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.299 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.301 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.302 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.304 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.306 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.307 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.307 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.307 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.307 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.308 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.310 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.311 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.312 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.313 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.313 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.314 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.315 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.315 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.315 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.316 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.317 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.318 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.320 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.320 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.321 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.325 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.326 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.327 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.327 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.329 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.329 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.330 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.331 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.333 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.333 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.334 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.335 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.336 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.336 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.336 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.338 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.339 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.340 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.342 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.343 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.343 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.345 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.345 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.346 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.347 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.348 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.348 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.349 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.350 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.352 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.353 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.356 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.356 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.357 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.357 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.358 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.358 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.360 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.360 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.362 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.363 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.364 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.365 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.365 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.366 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.366 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.367 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.368 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.369 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.371 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.371 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.372 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.373 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.373 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.373 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.375 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.375 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.376 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.378 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.379 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.380 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.380 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.380 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.381 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.383 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.383 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.384 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.385 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.386 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.389 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.390 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.391 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.392 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.392 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.392 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.393 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.393 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.396 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.397 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.398 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.399 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.399 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.400 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.400 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.400 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.404 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.405 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.406 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.406 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.408 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.409 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.412 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.412 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.412 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.413 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.413 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.413 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.414 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.415 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.415 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.415 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.417 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.420 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.421 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.424 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.424 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.424 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.425 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.426 INFO    [info] Matched route "default". {"syslog_level": "notice"}
2024/04/16 08:20:28.426 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.426 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
2024/04/16 08:20:28.426 INFO    restarting      {"worker": "/var/www/frankenphp_imap/public/index.php"}
Segmentation fault (core dumped)

Using static version 1.12, happens with both the release and the debug version.

DubbleClick commented 6 months ago

@dunglas I can't reopen this.

I haven't tried with docker this version, but back before 1.0 release when I opened this, it also happened with the docker version.