capnproto / go-capnp

Cap'n Proto library and code generator for Go

Home Page:https://capnproto.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Possible deadlock

zenhack opened this issue · comments

Per #373 (comment), it seems like we have a very rare deadlock; opening an issue to track it:

panic: test timed out after 10m0s

goroutine 333 [running]:
testing.(*M).startAlarm.func1()
	/opt/hostedtoolcache/go/1.19.4/x64/src/testing/testing.go:2036 +0x8e
created by time.goFunc
	/opt/hostedtoolcache/go/1.19.4/x64/src/time/sleep.go:176 +0x32

goroutine 1 [chan receive]:
testing.tRunner.func1()
	/opt/hostedtoolcache/go/1.19.4/x64/src/testing/testing.go:1412 +0x4a5
testing.tRunner(0xc0000831e0, 0xc0000ebc60)
	/opt/hostedtoolcache/go/1.19.4/x64/src/testing/testing.go:1452 +0x144
testing.runTests(0xc0000b9180?, {0x8a9180, 0x1c, 0x1c}, {0x40eb1f?, 0x66d900?, 0x8aecc0?})
	/opt/hostedtoolcache/go/1.19.4/x64/src/testing/testing.go:1844 +0x456
testing.(*M).Run(0xc0000b9180)
	/opt/hostedtoolcache/go/1.19.4/x64/src/testing/testing.go:1[726](https://github.com/capnproto/go-capnproto2/actions/runs/3644441569/jobs/6153694175#step:7:727) +0x5d9
capnproto.org/go/capnp/v3/rpc_test.TestMain(0xffffffffffffffff?)
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/level0_test.go:44 +0xbb
main.main()
	_testmain.go:109 +0x1d3

goroutine 40 [chan receive]:
capnproto.org/go/capnp/v3.(*Future).Ptr(0xc0002ee638)
	/home/runner/work/go-capnproto2/go-capnproto2/answer.go:432 +0x65
capnproto.org/go/capnp/v3/rpc/internal/testcapnp.CapArgsTest_call_Results_Future.Struct({0xc0002ec420?})
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/internal/testcapnp/test.capnp.go:886 +0x3d
capnproto.org/go/capnp/v3/rpc.TestCallReceiverAnswerRpc(0xc000121a00)
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/receiveranswer_test.go:131 +0x448
testing.tRunner(0xc000121a00, 0x6df118)
	/opt/hostedtoolcache/go/1.19.4/x64/src/testing/testing.go:1446 +0x10b
created by testing.(*T).Run
	/opt/hostedtoolcache/go/1.19.4/x64/src/testing/testing.go:1493 +0x35f

goroutine 325 [select]:
capnproto.org/go/capnp/v3/exp/spsc.(*Rx[...]).Recv(0xc0002f0618?, {0x7326b0, 0xc0002d2c80})
	/home/runner/work/go-capnproto2/go-capnproto2/exp/spsc/spsc.go:82 +0x9d
capnproto.org/go/capnp/v3/exp/mpsc.(*Rx[...]).Recv(0xc00026bb80?, {0x7326b0?, 0xc0002d2c80?})
	/home/runner/work/go-capnproto2/go-capnproto2/exp/mpsc/mpsc.go:53 +0x29
capnproto.org/go/capnp/v3/server.(*Server).handleCalls(0xc0001bd6c0, {0x7326b0?, 0xc0002d2c80})
	/home/runner/work/go-capnproto2/go-capnproto2/server/server.go:162 +0x5c
created by capnproto.org/go/capnp/v3/server.New
	/home/runner/work/go-capnproto2/go-capnproto2/server/server.go:122 +0x2e5

goroutine 340 [select]:
net.(*pipe).read(0xc00010ae80, {0xc000281210, 0x8, 0xc000264898?})
	/opt/hostedtoolcache/go/1.19.4/x64/src/net/pipe.go:159 +0x157
net.(*pipe).Read(0x100000000?, {0xc000281210?, 0x40?, 0x0?})
	/opt/hostedtoolcache/go/1.19.4/x64/src/net/pipe.go:142 +0x25
io.ReadAtLeast({0x7f893c1a3e08, 0xc00010ae80}, {0xc000281210, 0x8, 0x8}, 0x8)
	/opt/hostedtoolcache/go/1.19.4/x64/src/io/io.go:332 +0x9a
io.ReadFull(...)
	/opt/hostedtoolcache/go/1.19.4/x64/src/io/io.go:351
capnproto.org/go/capnp/v3.(*Decoder).Decode(0xc000281200)
	/home/runner/work/go-capnproto2/go-capnproto2/message.go:681 +0x7d
capnproto.org/go/capnp/v3/rpc/transport.(*transport).RecvMessage(0xc0002a9350)
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/transport/transport.go:144 +0x50
capnproto.org/go/capnp/v3/rpc.reader({0x7326b0, 0xc0002d2d00}, 0xc000260e40, {0x7320f8, 0xc0002a9350})
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:1515 +0x6c
created by capnproto.org/go/capnp/v3/rpc.(*Conn).receive
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:472 +0x12f

goroutine 348 [select]:
capnproto.org/go/capnp/v3/rpc.(*question).handleCancel(0xc0002a1900, {0x7326e8, 0xc0000b0000})
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/question.go:93 +0xea
capnproto.org/go/capnp/v3/rpc.(*importClient).Send.func3.2.2()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/import.go:120 +0x69
created by capnproto.org/go/capnp/v3/rpc.(*importClient).Send.func3.2
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/import.go:118 +0x345

goroutine 330 [select]:
capnproto.org/go/capnp/v3/rpc.(*Conn).receive(0xc0002ec420)
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:480 +0x1e5
capnproto.org/go/capnp/v3/rpc.(*Conn).backgroundTask.func1()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:198 +0x6b
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:57 +0x67
created by golang.org/x/sync/errgroup.(*Group).Go
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:54 +0x8d

goroutine 343 [semacquire]:
sync.runtime_Semacquire(0xc000050d01?)
	/opt/hostedtoolcache/go/1.19.4/x64/src/runtime/sema.go:62 +0x25
sync.(*WaitGroup).Wait(0xc000261101?)
	/opt/hostedtoolcache/go/1.19.4/x64/src/sync/waitgroup.go:139 +0x52
capnproto.org/go/capnp/v3/server.(*Server).Shutdown(0xc000212d90)
	/home/runner/work/go-capnproto2/go-capnproto2/server/server.go:241 +0x33
capnproto.org/go/capnp/v3.Client.Release({0x68?})
	/home/runner/work/go-capnproto2/go-capnproto2/capability.go:589 +0x1da
capnproto.org/go/capnp/v3.(*Message).Reset(0xc0002dd180, {0x0?, 0x0})
	/home/runner/work/go-capnproto2/go-capnproto2/message.go:139 +0x12c
capnproto.org/go/capnp/v3/rpc/transport.(*transport).RecvMessage.func1()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/transport/transport.go:156 +0x2f
capnproto.org/go/capnp/v3/rpc.(*Conn).handleCall.func4()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:[730](https://github.com/capnproto/go-capnproto2/actions/runs/3644441569/jobs/6153694175#step:7:731) +0x33
capnproto.org/go/capnp/v3/server.(*Server).handleCall(0x443cf1?, {0x[732](https://github.com/capnproto/go-capnproto2/actions/runs/3644441569/jobs/6153694175#step:7:733)6b0?, 0xc0002d2f00?}, 0xc0002daf70)
	/home/runner/work/go-capnproto2/go-capnproto2/server/server.go:208 +0xb2
capnproto.org/go/capnp/v3/server.(*Server).handleCalls.func2(0x7326b0?, 0xc0002d2ec0?, {0x7326b0?, 0xc0002d2f00?}, 0x0?)
	/home/runner/work/go-capnproto2/go-capnproto2/server/server.go:182 +0x4a
capnproto.org/go/capnp/v3/server.(*Server).handleCalls(0xc000212d90, {0x7326b0?, 0xc00026bc00})
	/home/runner/work/go-capnproto2/go-capnproto2/server/server.go:183 +0x145
created by capnproto.org/go/capnp/v3/server.New
	/home/runner/work/go-capnproto2/go-capnproto2/server/server.go:122 +0x2e5

goroutine 329 [select]:
capnproto.org/go/capnp/v3/exp/spsc.(*Rx[...]).Recv(0xc0002ec4a0?, {0x7326b0, 0xc0002d2e00})
	/home/runner/work/go-capnproto2/go-capnproto2/exp/spsc/spsc.go:82 +0xb3
capnproto.org/go/capnp/v3/rpc.(*Conn).send(0xc0002ec420)
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:452 +0x45
capnproto.org/go/capnp/v3/rpc.(*Conn).backgroundTask.func1()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:198 +0x6b
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:57 +0x67
created by golang.org/x/sync/errgroup.(*Group).Go
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:54 +0x8d

goroutine 328 [semacquire]:
sync.runtime_Semacquire(0x5fc66b?)
	/opt/hostedtoolcache/go/1.19.4/x64/src/runtime/sema.go:62 +0x25
sync.(*WaitGroup).Wait(0xc0000fb638?)
	/opt/hostedtoolcache/go/1.19.4/x64/src/sync/waitgroup.go:139 +0x52
golang.org/x/sync/errgroup.(*Group).Wait(0xc0002d2d40)
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:40 +0x27
capnproto.org/go/capnp/v3/rpc.NewConn.func1()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:168 +0x3b
created by capnproto.org/go/capnp/v3/rpc.NewConn
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:167 +0x37d

goroutine 326 [select]:
capnproto.org/go/capnp/v3/exp/spsc.(*Rx[...]).Recv(0xc0002ec340?, {0x7326b0, 0xc0002d2d00})
	/home/runner/work/go-capnproto2/go-capnproto2/exp/spsc/spsc.go:82 +0xb3
capnproto.org/go/capnp/v3/rpc.(*Conn).send(0xc0002ec2c0)
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:452 +0x45
capnproto.org/go/capnp/v3/rpc.(*Conn).backgroundTask.func1()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:198 +0x6b
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:57 +0x67
created by golang.org/x/sync/errgroup.(*Group).Go
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:54 +0x8d

goroutine 327 [select]:
capnproto.org/go/capnp/v3/rpc.(*Conn).receive(0xc0002ec2c0)
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:480 +0x1e5
capnproto.org/go/capnp/v3/rpc.(*Conn).backgroundTask.func1()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:198 +0x6b
golang.org/x/sync/errgroup.(*Group).Go.func1()
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:57 +0x67
created by golang.org/x/sync/errgroup.(*Group).Go
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:54 +0x8d

goroutine 331 [semacquire]:
sync.runtime_Semacquire(0x730cc0?)
	/opt/hostedtoolcache/go/1.19.4/x64/src/runtime/sema.go:62 +0x25
sync.(*WaitGroup).Wait(0xc000041790?)
	/opt/hostedtoolcache/go/1.19.4/x64/src/sync/waitgroup.go:139 +0x52
golang.org/x/sync/errgroup.(*Group).Wait(0xc0002d2e40)
	/home/runner/go/pkg/mod/golang.org/x/sync@v0.0.0-20201020160332-67f06af15bc9/errgroup/errgroup.go:40 +0x27
capnproto.org/go/capnp/v3/rpc.NewConn.func1()
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:168 +0x3b
created by capnproto.org/go/capnp/v3/rpc.NewConn
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:167 +0x37d

goroutine 345 [select]:
net.(*pipe).read(0xc00010ae00, {0xc000281330, 0x8, 0xc0002644d8?})
	/opt/hostedtoolcache/go/1.19.4/x64/src/net/pipe.go:159 +0x157
net.(*pipe).Read(0x100000000?, {0xc000281330?, 0x40?, 0x0?})
	/opt/hostedtoolcache/go/1.19.4/x64/src/net/pipe.go:142 +0x25
io.ReadAtLeast({0x7f893c1a3e08, 0xc00010ae00}, {0xc000281330, 0x8, 0x8}, 0x8)
	/opt/hostedtoolcache/go/1.19.4/x64/src/io/io.go:332 +0x9a
io.ReadFull(...)
	/opt/hostedtoolcache/go/1.19.4/x64/src/io/io.go:351
capnproto.org/go/capnp/v3.(*Decoder).Decode(0xc000281320)
	/home/runner/work/go-capnproto2/go-capnproto2/message.go:681 +0x7d
capnproto.org/go/capnp/v3/rpc/transport.(*transport).RecvMessage(0xc0002a9428)
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/transport/transport.go:144 +0x50
capnproto.org/go/capnp/v3/rpc.reader({0x7326b0, 0xc0002d2e00}, 0xc000261260, {0x7320f8, 0xc0002a9428})
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:1515 +0x6c
created by capnproto.org/go/capnp/v3/rpc.(*Conn).receive
	/home/runner/work/go-capnproto2/go-capnproto2/rpc/rpc.go:472 +0x12f
exit status 2
FAIL	capnproto.org/go/capnp/v3/rpc	600.109s