go-libp2p-kad-dht: panic: counter already signaled done. use a new counter. in addPeerToQuery

I’ve encountered this panic a few times in go-ipfs 0.4.19 on Windows 7 amd64 after a few hours of running:

panic: counter already signaled done. use a new counter.

goroutine 2351179 [running]:
gx/ipfs/QmQNQhNmY4STU1MURjH9vYEMpx2ncMS4gbwxXWtrEjzVAq/go-todocounter.(*todoCounter).Increment(0xc003d04540, 0xc000000001)
        /home/steb/projects/go/src/github.com/ipfs/distributions/dists/go-ipfs/gopath/src/gx/ipfs/QmQNQhNmY4STU1MURjH9vYEMpx2ncMS4gbwxXWtrEjzVAq/go-todocounter/counter.go:86 +0xb6
gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht.(*dhtQueryRunner).addPeerToQuery(0xc00d958580, 0xc0126e6450, 0x22)
        /home/steb/projects/go/src/github.com/ipfs/distributions/dists/go-ipfs/gopath/src/gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht/query.go:200 +0x110
gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht.(*dhtQueryRunner).Run(0xc00d958580, 0x138ef40, 0xc0077b7f80, 0xc004d3fe90, 0x3, 0x3, 0x0, 0x0, 0x0)
        /home/steb/projects/go/src/github.com/ipfs/distributions/dists/go-ipfs/gopath/src/gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht/query.go:136 +0x14a
gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht.(*dhtQuery).Run(0xc004d3fef0, 0x138ef40, 0xc0077b7f80, 0xc004d3fe90, 0x3, 0x3, 0x0, 0x0, 0x0)
        /home/steb/projects/go/src/github.com/ipfs/distributions/dists/go-ipfs/gopath/src/gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht/query.go:70 +0x109
gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht.(*IpfsDHT).GetClosestPeers.func2(0xc0012c7800, 0xc00e867da0, 0xc004d3fef0, 0x138efc0, 0xc0015e7bc0, 0xc004d3fe90, 0x3, 0x3, 0xc008891a40, 0x22)
        /home/steb/projects/go/src/github.com/ipfs/distributions/dists/go-ipfs/gopath/src/gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht/lookup.go:96 +0xe2
created by gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht.(*IpfsDHT).GetClosestPeers
        /home/steb/projects/go/src/github.com/ipfs/distributions/dists/go-ipfs/gopath/src/gx/ipfs/QmdR6WN3TUEAVQ9KWE2UiFJikWTbUvgBJay6mjB4yUJebq/go-libp2p-kad-dht/lookup.go:92 +0x2fd

for reference, my daemon says:

go-ipfs version: 0.4.19-
Repo version: 7
System version: amd64/windows
Golang version: go1.11.5

0.4.19’s package.json indicates go-libp2p-kad-dht version 4.4.31, so possibly this is related to #277? I haven’t run recent earlier builds long enough to be sure this is a regression.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 1
  • Comments: 17 (14 by maintainers)

Most upvoted comments

This problem still exists.

Found the same thing:

goroutine 82649 [running]:
github.com/ipfs/go-todocounter.(*todoCounter).Increment(0xc001ee46f0, 0xc000000001)
	/home/steb/projects/go/pkg/mod/github.com/ipfs/go-todocounter@v0.0.1/counter.go:86 +0xaf
github.com/libp2p/go-libp2p-kad-dht.(*dhtQueryRunner).addPeerToQuery(0xc00085e9a0, 0xc000d2f0b0, 0x22)
	/home/steb/projects/go/src/github.com/libp2p/go-libp2p-kad-dht/query.go:300 +0x140
github.com/libp2p/go-libp2p-kad-dht.(*dhtQueryRunner).Recurse(0xc00085e9a0, 0xc5f260, 0xc002ab8740, 0xc001ee4480, 0x3, 0x3, 0x0, 0x0, 0x0)
	/home/steb/projects/go/src/github.com/libp2p/go-libp2p-kad-dht/query.go:147 +0x149
github.com/libp2p/go-libp2p-kad-dht.(*dhtQuery).Recurse(0xc001ee44b0, 0xc5f260, 0xc002ab8740, 0xc001ee4480, 0x3, 0x3, 0x0, 0x0, 0x0)
	/home/steb/projects/go/src/github.com/libp2p/go-libp2p-kad-dht/query.go:78 +0xff
github.com/libp2p/go-libp2p-kad-dht.(*dhtQuery).Run(0xc001ee44b0, 0xc5f2e0, 0xc0026b4540, 0xc001ee4480, 0x3, 0x3, 0x0, 0xc000cdeea0, 0x0, 0x1, ...)
	/home/steb/projects/go/src/github.com/libp2p/go-libp2p-kad-dht/query.go:59 +0x64
github.com/libp2p/go-libp2p-kad-dht.(*IpfsDHT).FindPeerAsync.func3(0xc0024569d8, 0xc001ee44b0, 0xc5f2e0, 0xc0026b4540, 0xc001ee4480, 0x3, 0x3)
	/home/steb/projects/go/src/github.com/libp2p/go-libp2p-kad-dht/routing.go:660 +0x96
created by github.com/libp2p/go-libp2p-kad-dht.(*IpfsDHT).FindPeerAsync
	/home/steb/projects/go/src/github.com/libp2p/go-libp2p-kad-dht/routing.go:658 +0x44f

This is certainly due to the dialing changes.