ooni / probe

OONI Probe network measurement tool for detecting internet censorship
https://ooni.org/install
BSD 3-Clause "New" or "Revised" License
754 stars 142 forks source link

kcp library possibly initializing more resources than needed #2739

Open ainghazal opened 4 months ago

ainghazal commented 4 months ago

Describe the bug

I've observed a bunch of goroutines related to kcp-go in an experiment that, afaik, should not be using/initializing KCP (OpenVPN).

goroutine 6 [select]:
runtime.gopark(0xc00009e788?, 0x3?, 0x0?, 0x3?, 0xc00009e712?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc00009e598 sp=0xc00009e578 pc=0x43f10e
runtime.selectgo(0xc00009e788, 0xc00009e70c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc00009e6b8 sp=0xc00009e598 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc00009e7c8 sp=0xc00009e6b8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc00009e7e0 sp=0xc00009e7c8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00009e7e8 sp=0xc00009e7e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 7 [select]:
runtime.gopark(0xc00009ef88?, 0x3?, 0x0?, 0xc0?, 0xc00009ef12?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc00009ed98 sp=0xc00009ed78 pc=0x43f10e
runtime.selectgo(0xc00009ef88, 0xc00009ef0c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc00009eeb8 sp=0xc00009ed98 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc00009efc8 sp=0xc00009eeb8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc00009efe0 sp=0xc00009efc8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00009efe8 sp=0xc00009efe0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 8 [select]:
runtime.gopark(0xc00009f788?, 0x3?, 0x80?, 0x1?, 0xc00009f712?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc00009f598 sp=0xc00009f578 pc=0x43f10e
runtime.selectgo(0xc00009f788, 0xc00009f70c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc00009f6b8 sp=0xc00009f598 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc00009f7c8 sp=0xc00009f6b8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc00009f7e0 sp=0xc00009f7c8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00009f7e8 sp=0xc00009f7e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 9 [select]:
runtime.gopark(0xc00009ff88?, 0x3?, 0x6?, 0x0?, 0xc00009ff12?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc00009fd98 sp=0xc00009fd78 pc=0x43f10e
runtime.selectgo(0xc00009ff88, 0xc00009ff0c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc00009feb8 sp=0xc00009fd98 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc00009ffc8 sp=0xc00009feb8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc00009ffe0 sp=0xc00009ffc8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00009ffe8 sp=0xc00009ffe0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 10 [select]:
runtime.gopark(0xc000098788?, 0x3?, 0x0?, 0x6?, 0xc000098712?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc000098598 sp=0xc000098578 pc=0x43f10e
runtime.selectgo(0xc000098788, 0xc00009870c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc0000986b8 sp=0xc000098598 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc0000987c8 sp=0xc0000986b8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc0000987e0 sp=0xc0000987c8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0000987e8 sp=0xc0000987e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 11 [select]:
runtime.gopark(0xc000098f88?, 0x3?, 0x80?, 0x7?, 0xc000098f12?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc000098d98 sp=0xc000098d78 pc=0x43f10e
runtime.selectgo(0xc000098f88, 0xc000098f0c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc000098eb8 sp=0xc000098d98 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc000098fc8 sp=0xc000098eb8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc000098fe0 sp=0xc000098fc8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000098fe8 sp=0xc000098fe0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 12 [select]:
runtime.gopark(0xc000099788?, 0x3?, 0x0?, 0x9?, 0xc000099712?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc000099598 sp=0xc000099578 pc=0x43f10e
runtime.selectgo(0xc000099788, 0xc00009970c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc0000996b8 sp=0xc000099598 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc0000997c8 sp=0xc0000996b8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc0000997e0 sp=0xc0000997c8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0000997e8 sp=0xc0000997e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 13 [select]:
runtime.gopark(0xc000099f88?, 0x3?, 0x80?, 0x4?, 0xc000099f12?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc000099d98 sp=0xc000099d78 pc=0x43f10e
runtime.selectgo(0xc000099f88, 0xc000099f0c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc000099eb8 sp=0xc000099d98 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc000099fc8 sp=0xc000099eb8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc000099fe0 sp=0xc000099fc8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc000099fe8 sp=0xc000099fe0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 14 [select]:
runtime.gopark(0xc00009a788?, 0x3?, 0x0?, 0xc?, 0xc00009a712?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc00009a598 sp=0xc00009a578 pc=0x43f10e
runtime.selectgo(0xc00009a788, 0xc00009a70c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc00009a6b8 sp=0xc00009a598 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc00009a7c8 sp=0xc00009a6b8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc00009a7e0 sp=0xc00009a7c8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00009a7e8 sp=0xc00009a7e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 15 [select]:
runtime.gopark(0xc00009af88?, 0x3?, 0x80?, 0xd?, 0xc00009af12?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc00009ad98 sp=0xc00009ad78 pc=0x43f10e
runtime.selectgo(0xc00009af88, 0xc00009af0c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc00009aeb8 sp=0xc00009ad98 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc00009afc8 sp=0xc00009aeb8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc00009afe0 sp=0xc00009afc8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00009afe8 sp=0xc00009afe0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 16 [select]:
runtime.gopark(0xc00009b788?, 0x3?, 0x0?, 0xf?, 0xc00009b712?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc00009b598 sp=0xc00009b578 pc=0x43f10e
runtime.selectgo(0xc00009b788, 0xc00009b70c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc00009b6b8 sp=0xc00009b598 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc00009b7c8 sp=0xc00009b6b8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc00009b7e0 sp=0xc00009b7c8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00009b7e8 sp=0xc00009b7e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 18 [select]:
runtime.gopark(0xc00009bf88?, 0x3?, 0x80?, 0xa?, 0xc00009bf12?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc00009bd98 sp=0xc00009bd78 pc=0x43f10e
runtime.selectgo(0xc00009bf88, 0xc00009bf0c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc00009beb8 sp=0xc00009bd98 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc00009bfc8 sp=0xc00009beb8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc00009bfe0 sp=0xc00009bfc8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc00009bfe8 sp=0xc00009bfe0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 19 [select]:
runtime.gopark(0xc0003a4788?, 0x3?, 0x0?, 0x12?, 0xc0003a4712?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc0003a4598 sp=0xc0003a4578 pc=0x43f10e
runtime.selectgo(0xc0003a4788, 0xc0003a470c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc0003a46b8 sp=0xc0003a4598 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc0003a47c8 sp=0xc0003a46b8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc0003a47e0 sp=0xc0003a47c8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0003a47e8 sp=0xc0003a47e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 20 [select]:
runtime.gopark(0xc0003a4f88?, 0x3?, 0x80?, 0x10?, 0xc0003a4f12?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc0003a4d98 sp=0xc0003a4d78 pc=0x43f10e
runtime.selectgo(0xc0003a4f88, 0xc0003a4f0c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc0003a4eb8 sp=0xc0003a4d98 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc0003a4fc8 sp=0xc0003a4eb8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc0003a4fe0 sp=0xc0003a4fc8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0003a4fe8 sp=0xc0003a4fe0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 21 [select]:
runtime.gopark(0xc0003a5788?, 0x3?, 0x80?, 0x13?, 0xc0003a5712?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc0003a5598 sp=0xc0003a5578 pc=0x43f10e
runtime.selectgo(0xc0003a5788, 0xc0003a570c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc0003a56b8 sp=0xc0003a5598 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc0003a57c8 sp=0xc0003a56b8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc0003a57e0 sp=0xc0003a57c8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0003a57e8 sp=0xc0003a57e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 22 [select]:
runtime.gopark(0xc0003a5f88?, 0x3?, 0x0?, 0x15?, 0xc0003a5f12?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc0003a5d98 sp=0xc0003a5d78 pc=0x43f10e
runtime.selectgo(0xc0003a5f88, 0xc0003a5f0c, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc0003a5eb8 sp=0xc0003a5d98 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).sched(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:67 +0x105 fp=0xc0003a5fc8 sp=0xc0003a5eb8 pc=0x10db8a5
github.com/xtaci/kcp-go/v5.NewTimedSched.func1()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0x25 fp=0xc0003a5fe0 sp=0xc0003a5fc8 pc=0x10db765
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0003a5fe8 sp=0xc0003a5fe0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:56 +0xe6

goroutine 23 [select]:
runtime.gopark(0xc0003a6778?, 0x2?, 0x0?, 0x0?, 0xc0003a6744?)
        /home/admin/sdk/go1.21.10/src/runtime/proc.go:398 +0xce fp=0xc0003a65c8 sp=0xc0003a65a8 pc=0x43f10e
runtime.selectgo(0xc0003a6778, 0xc0003a6740, 0x0?, 0x0, 0x0?, 0x1)
        /home/admin/sdk/go1.21.10/src/runtime/select.go:327 +0x725 fp=0xc0003a66e8 sp=0xc0003a65c8 pc=0x44ebe5
github.com/xtaci/kcp-go/v5.(*TimedSched).prepend(0xc0000d34a0)
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:103 +0x8a fp=0xc0003a67c8 sp=0xc0003a66e8 pc=0x10dbbca
github.com/xtaci/kcp-go/v5.NewTimedSched.func2()
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:58 +0x25 fp=0xc0003a67e0 sp=0xc0003a67c8 pc=0x10db705
runtime.goexit()
        /home/admin/sdk/go1.21.10/src/runtime/asm_amd64.s:1650 +0x1 fp=0xc0003a67e8 sp=0xc0003a67e0 pc=0x46e541
created by github.com/xtaci/kcp-go/v5.NewTimedSched in goroutine 1
        /home/admin/go/pkg/mod/github.com/xtaci/kcp-go/v5@v5.6.2/timedsched.go:58 +0x176

To Reproduce

Dump a stack trace while executing any other experiment than the one(s) expected to use kcp.

Expected behavior

No more goroutines than needed.