Sioro-Neoku / go-peerflix

Go Peerflix
MIT License
470 stars 119 forks source link

panic: sync: unlock of unlocked mutex #16

Closed clandmeter closed 8 years ago

clandmeter commented 8 years ago

I'm trying to build/run go-peerflix on alpine linux which is based on musl libc. I am getting the below error. It seems this error is also reproducible on go torrent.


2015/12/22 11:21:44 Downloading blocklist
=============================================================
Connections:    0
panic: sync: unlock of unlocked mutex

goroutine 33 [running]:
sync.(*Mutex).Unlock(0xc8200e2038)
    /usr/lib/go/src/sync/mutex.go:108 +0x9f
github.com/anacrolix/torrent/dht.(*Announce).maybeAnnouncePeer(0xc820228000, 0x7fe31087d060, 0xc820172140, 0x0, 0x0, 0xc8200dcf40, 0x14)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/announce.go:162 +0x2f1
github.com/anacrolix/torrent/dht.(*Announce).getPeers.func1(0x0, 0x0, 0x0, 0xc8200c7b10, 0x1, 0xc8200c7bb0, 0x1, 0xc8200e41e0, 0x0, 0xc8200c7220, ...)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/announce.go:199 +0x47b
github.com/anacrolix/torrent/dht.(*Transaction).tryHandleResponse(0xc82020e240)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/transaction.go:40 +0xc9
github.com/anacrolix/torrent/dht.(*Transaction).handleResponse(0xc82020e240, 0x0, 0x0, 0x0, 0xc8200c7b10, 0x1, 0xc8200c7bb0, 0x1, 0xc8200e41e0, 0x0, ...)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/transaction.go:147 +0x199
created by github.com/anacrolix/torrent/dht.(*Server).processPacket
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:197 +0x3e2

goroutine 1 [sleep]:
time.Sleep(0x3b9aca00)
    /usr/lib/go/src/runtime/time.go:59 +0xf9
main.main()
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/main.go:80 +0x6cf

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
    /usr/lib/go/src/runtime/asm_amd64.s:1721 +0x1

goroutine 5 [syscall]:
os/signal.loop()
    /usr/lib/go/src/os/signal/signal_unix.go:22 +0x18
created by os/signal.init.1
    /usr/lib/go/src/os/signal/signal_unix.go:28 +0x37

goroutine 18 [IO wait]:
net.runtime_pollWait(0x7fe310955fb0, 0x72, 0xc820010240)
    /usr/lib/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc8200c8060, 0x72, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc8200c8060, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).accept(0xc8200c8000, 0x0, 0x7fe3109af9b8, 0xc82000b240)
    /usr/lib/go/src/net/fd_unix.go:408 +0x27c
net.(*TCPListener).AcceptTCP(0xc8200cc000, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/tcpsock_posix.go:254 +0x4d
net.(*TCPListener).Accept(0xc8200cc000, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/tcpsock_posix.go:264 +0x3d
github.com/anacrolix/torrent.(*Client).acceptConnections(0xc8200b4000, 0x7fe310955030, 0xc8200cc000, 0xc8200c6000)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:625 +0x4d
created by github.com/anacrolix/torrent.NewClient
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:511 +0x863

goroutine 19 [IO wait]:
net.runtime_pollWait(0x7fe310955ef0, 0x72, 0xc820010240)
    /usr/lib/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc8200c80d0, 0x72, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc8200c80d0, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).readFrom(0xc8200c8070, 0xc8200f6000, 0x2000, 0x2000, 0x0, 0x0, 0x0, 0x7fe3109ab050, 0xc820010240)
    /usr/lib/go/src/net/fd_unix.go:259 +0x2a5
net.(*UDPConn).ReadFromUDP(0xc8200cc008, 0xc8200f6000, 0x2000, 0x2000, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/udpsock_posix.go:61 +0x117
net.(*UDPConn).ReadFrom(0xc8200cc008, 0xc8200f6000, 0x2000, 0x2000, 0x1e5, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/udpsock_posix.go:79 +0x116
github.com/anacrolix/utp.(*Socket).reader(0xc8200d8000)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/utp/utp.go:458 +0xf1
created by github.com/anacrolix/utp.NewSocketFromPacketConn
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/utp/utp.go:432 +0x24b

goroutine 20 [chan receive]:
github.com/anacrolix/utp.(*Socket).dispatcher(0xc8200d8000)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/utp/utp.go:509 +0x6e
created by github.com/anacrolix/utp.NewSocketFromPacketConn
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/utp/utp.go:433 +0x270

goroutine 21 [semacquire]:
sync.runtime_Syncsemacquire(0xc8200d8028)
    /usr/lib/go/src/runtime/sema.go:237 +0x201
sync.(*Cond).Wait(0xc8200d8018)
    /usr/lib/go/src/sync/cond.go:62 +0x9b
github.com/anacrolix/utp.(*Socket).nextSyn(0xc8200d8000, 0x0, 0x0, 0x0, 0xc820031e00)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/utp/utp.go:1258 +0x1f2
github.com/anacrolix/utp.(*Socket).Accept(0xc8200d8000, 0x0, 0x0, 0x0, 0x0)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/utp/utp.go:1265 +0x58
github.com/anacrolix/torrent.(*Client).acceptConnections(0xc8200b4000, 0x7fe310956170, 0xc8200d8000, 0xc8200dc001)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:625 +0x4d
created by github.com/anacrolix/torrent.NewClient
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:525 +0xa37

goroutine 22 [semacquire]:
sync.runtime_Semacquire(0xc8200e203c)
    /usr/lib/go/src/runtime/sema.go:43 +0x26
sync.(*Mutex).Lock(0xc8200e2038)
    /usr/lib/go/src/sync/mutex.go:82 +0x1c4
github.com/anacrolix/torrent/dht.(*Server).serve(0xc8200e2000, 0x0, 0x0)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:213 +0x1a7
github.com/anacrolix/torrent/dht.NewServer.func1(0xc8200cc018)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:102 +0x28
created by github.com/anacrolix/torrent/dht.NewServer
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:111 +0x3aa

goroutine 23 [select]:
github.com/anacrolix/torrent/dht.(*Server).bootstrap(0xc8200e2000, 0x0, 0x0)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:586 +0x5a5
github.com/anacrolix/torrent/dht.NewServer.func2(0xc8200cc018)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:113 +0x28
created by github.com/anacrolix/torrent/dht.NewServer
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:121 +0x3cc

goroutine 24 [chan receive]:
github.com/anacrolix/torrent.(*Client).announceTorrentTrackersFastStart(0xc8200b4000, 0xc820126000, 0xc8200dc220, 0x1, 0x1, 0xc8200f2420, 0x0)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:2396 +0x20f
github.com/anacrolix/torrent.(*Client).announceTorrentTrackers(0xc8200b4000, 0xc8200f2420)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:2421 +0x20c
created by github.com/anacrolix/torrent.(*Client).AddTorrentSpec
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:2217 +0x7f7

goroutine 25 [select]:
github.com/anacrolix/torrent.(*Client).announceTorrentDHT(0xc8200b4000, 0xc8200f2420, 0x1)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:2293 +0x811
created by github.com/anacrolix/torrent.(*Client).AddTorrentSpec
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:2220 +0x839

goroutine 26 [chan receive]:
main.NewClient.func1(0xc8200b4000, 0xc8200f2420)
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/client.go:95 +0x59
created by main.NewClient
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/client.go:102 +0x427

goroutine 27 [select]:
net/http.(*Transport).getConn(0xc820092090, 0xc820186000, 0x0, 0x9177e0, 0x4, 0xc82000b340, 0x14, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:554 +0x663
net/http.(*Transport).RoundTrip(0xc820092090, 0xc820186000, 0xc800000000, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:228 +0x4ac
net/http.send(0xc820186000, 0x7fe3109af4d8, 0xc820092090, 0xc82000fad0, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:220 +0x52c
net/http.(*Client).send(0xab6400, 0xc820186000, 0x2e, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:143 +0x15a
net/http.(*Client).doFollowingRedirects(0xab6400, 0xc820186000, 0x94fc60, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:380 +0xbc0
net/http.(*Client).Get(0xab6400, 0x9177e0, 0x2e, 0x403682, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:306 +0xaa
net/http.Get(0x9177e0, 0x2e, 0xc820038058, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:281 +0x45
main.downloadFile(0x9177e0, 0x2e, 0x0, 0x0, 0x0, 0x0)
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/client.go:281 +0x129
main.(*Client).addBlocklist(0xc82000f7a0)
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/client.go:121 +0x147
created by main.NewClient
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/client.go:104 +0x449

goroutine 28 [IO wait]:
net.runtime_pollWait(0x7fe310955e30, 0x72, 0xc820010240)
    /usr/lib/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc8201760d0, 0x72, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc8201760d0, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).accept(0xc820176070, 0x0, 0x7fe3109af9b8, 0xc82017a020)
    /usr/lib/go/src/net/fd_unix.go:408 +0x27c
net.(*TCPListener).AcceptTCP(0xc820182000, 0xc82013ad38, 0x0, 0x0)
    /usr/lib/go/src/net/tcpsock_posix.go:254 +0x4d
net/http.tcpKeepAliveListener.Accept(0xc820182000, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/server.go:2135 +0x41
net/http.(*Server).Serve(0xc82017e000, 0x7fe31087d028, 0xc820182000, 0x0, 0x0)
    /usr/lib/go/src/net/http/server.go:1887 +0xb3
net/http.(*Server).ListenAndServe(0xc82017e000, 0x0, 0x0)
    /usr/lib/go/src/net/http/server.go:1877 +0x136
net/http.ListenAndServe(0xc820178020, 0x5, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/server.go:1967 +0x8f
main.main.func1(0xc82000f770, 0xc8200111b0)
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/main.go:48 +0x149
created by main.main
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/main.go:49 +0x383

goroutine 29 [select, locked to thread]:
runtime.gopark(0x950078, 0xc820107f28, 0x8931a8, 0x6, 0x433218, 0x2)
    /usr/lib/go/src/runtime/proc.go:185 +0x163
runtime.selectgoImpl(0xc820107f28, 0x0, 0x18)
    /usr/lib/go/src/runtime/select.go:392 +0xa64
runtime.selectgo(0xc820107f28)
    /usr/lib/go/src/runtime/select.go:212 +0x12
runtime.ensureSigM.func1()
    /usr/lib/go/src/runtime/signal1_unix.go:227 +0x353
runtime.goexit()
    /usr/lib/go/src/runtime/asm_amd64.s:1721 +0x1

goroutine 34 [select]:
net/http.(*Transport).getConn(0xc820092090, 0xc8202020e0, 0x0, 0xc820206000, 0x4, 0xc820206007, 0x15, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:554 +0x663
net/http.(*Transport).RoundTrip(0xc820092090, 0xc8202020e0, 0x152, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:228 +0x4ac
net/http.send(0xc8202020e0, 0x7fe3109af4d8, 0xc820092090, 0xc820206100, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:220 +0x52c
net/http.(*Client).send(0xab6400, 0xc8202020e0, 0xf8, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:143 +0x15a
net/http.(*Client).doFollowingRedirects(0xab6400, 0xc8202020e0, 0x94fc60, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:380 +0xbc0
net/http.(*Client).Get(0xab6400, 0xc820206000, 0xf8, 0xc820204000, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:306 +0xaa
net/http.Get(0xc820206000, 0xf8, 0xf8, 0x0, 0x0)
    /usr/lib/go/src/net/http/client.go:281 +0x45
github.com/anacrolix/torrent/tracker.(*client).Announce(0xc8200da180, 0xc820126000, 0x0, 0xc800000000, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/tracker/http.go:74 +0xd43
github.com/anacrolix/torrent.(*Client).announceTorrentSingleTracker(0xc8200b4000, 0x7fe3109562c8, 0xc8200da180, 0xc820126000, 0xc8200f2420, 0x0, 0x0)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:2362 +0x3ed
github.com/anacrolix/torrent.(*Client).announceTorrentTrackersFastStart.func1(0xc8200b4000, 0xc820126000, 0xc8200f2420, 0xc820126060, 0x7fe3109562c8, 0xc8200da180)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:2390 +0x50
created by github.com/anacrolix/torrent.(*Client).announceTorrentTrackersFastStart
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/client.go:2392 +0x195

goroutine 30 [chan receive]:
main.main.func3(0xc82000f770, 0xc8200d4360)
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/main.go:70 +0x68
created by main.main
    /home/clandmeter/go-torrent/go/src/github.com/Sioro-Neoku/go-peerflix/main.go:75 +0x6b1

goroutine 68 [semacquire]:
sync.runtime_Semacquire(0xc82017891c)
    /usr/lib/go/src/runtime/sema.go:43 +0x26
sync.(*WaitGroup).Wait(0xc820178910)
    /usr/lib/go/src/sync/waitgroup.go:126 +0xb4
github.com/anacrolix/torrent/dht.(*Server).bootstrap.func2(0xc820178910, 0xc82017e5a0)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:582 +0x21
created by github.com/anacrolix/torrent/dht.(*Server).bootstrap
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:584 +0x3f6

goroutine 82 [IO wait]:
net.runtime_pollWait(0x7fe310955bf0, 0x77, 0x456960)
    /usr/lib/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc820067790, 0x77, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitWrite(0xc820067790, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:82 +0x36
net.(*netFD).connect(0xc820067730, 0x0, 0x0, 0x7fe3108bd0b0, 0xc82000b780, 0xece0b1b56, 0x104ca1d8, 0xab6520, 0x0, 0x0)
    /usr/lib/go/src/net/fd_unix.go:114 +0x1f6
net.(*netFD).dial(0xc820067730, 0x7fe310955068, 0x0, 0x7fe310955068, 0xc82022c150, 0xece0b1b56, 0x104ca1d8, 0xab6520, 0x0, 0x0)
    /usr/lib/go/src/net/sock_posix.go:137 +0x351
net.socket(0x893680, 0x3, 0x2, 0x1, 0x0, 0xc82022c100, 0x7fe310955068, 0x0, 0x7fe310955068, 0xc82022c150, ...)
    /usr/lib/go/src/net/sock_posix.go:89 +0x411
net.internetSocket(0x893680, 0x3, 0x7fe310955068, 0x0, 0x7fe310955068, 0xc82022c150, 0xece0b1b56, 0xc8104ca1d8, 0xab6520, 0x1, ...)
    /usr/lib/go/src/net/ipsock_posix.go:160 +0x141
net.dialTCP(0x893680, 0x3, 0x0, 0xc82022c150, 0xece0b1b56, 0xc8104ca1d8, 0xab6520, 0x1, 0x0, 0x0)
    /usr/lib/go/src/net/tcpsock_posix.go:171 +0x11e
net.dialSingle(0xc82009e600, 0x7fe310955000, 0xc82022c150, 0xece0b1b56, 0x7fff104ca1d8, 0xab6520, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/dial.go:364 +0x3f5
net.dialSerial.func1(0xece0b1b56, 0x104ca1d8, 0xab6520, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/dial.go:336 +0x75
net.dial(0x893680, 0x3, 0x7fe310955000, 0xc82022c150, 0xc8201c36e8, 0xece0b1b56, 0x104ca1d8, 0xab6520, 0x0, 0x0, ...)
    /usr/lib/go/src/net/fd_unix.go:40 +0x60
net.dialSerial(0xc82009e600, 0xc820011900, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/dial.go:338 +0x760
net.(*Dialer).Dial(0xc820012410, 0x893680, 0x3, 0xc820206007, 0x15, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/dial.go:232 +0x50f
net.(*Dialer).Dial-fm(0x893680, 0x3, 0xc820206007, 0x15, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:38 +0x6e
net/http.(*Transport).dial(0xc820092090, 0x893680, 0x3, 0xc820206007, 0x15, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:499 +0x79
net/http.(*Transport).dialConn(0xc820092090, 0x0, 0xc820206000, 0x4, 0xc820206007, 0x15, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:596 +0x19a9
net/http.(*Transport).getConn.func4(0xc820092090, 0x0, 0xc820206000, 0x4, 0xc820206007, 0x15, 0xc820208000)
    /usr/lib/go/src/net/http/transport.go:549 +0x66
created by net/http.(*Transport).getConn
    /usr/lib/go/src/net/http/transport.go:551 +0x265

goroutine 6 [IO wait]:
net.runtime_pollWait(0x7fe310955b30, 0x77, 0x456960)
    /usr/lib/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc8200c8290, 0x77, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitWrite(0xc8200c8290, 0x0, 0x0)
    /usr/lib/go/src/net/fd_poll_runtime.go:82 +0x36
net.(*netFD).connect(0xc8200c8230, 0x0, 0x0, 0x7fe3108bd0b0, 0xc8200dc4e0, 0xece0b1b56, 0x104360f2, 0xab6520, 0x0, 0x0)
    /usr/lib/go/src/net/fd_unix.go:114 +0x1f6
net.(*netFD).dial(0xc8200c8230, 0x7fe310955068, 0x0, 0x7fe310955068, 0xc8200c47b0, 0xece0b1b56, 0x104360f2, 0xab6520, 0x0, 0x0)
    /usr/lib/go/src/net/sock_posix.go:137 +0x351
net.socket(0x893680, 0x3, 0x2, 0x1, 0x0, 0xc8200c4700, 0x7fe310955068, 0x0, 0x7fe310955068, 0xc8200c47b0, ...)
    /usr/lib/go/src/net/sock_posix.go:89 +0x411
net.internetSocket(0x893680, 0x3, 0x7fe310955068, 0x0, 0x7fe310955068, 0xc8200c47b0, 0xece0b1b56, 0x5b104360f2, 0xab6520, 0x1, ...)
    /usr/lib/go/src/net/ipsock_posix.go:160 +0x141
net.dialTCP(0x893680, 0x3, 0x0, 0xc8200c47b0, 0xece0b1b56, 0xc8104360f2, 0xab6520, 0x1, 0x0, 0x0)
    /usr/lib/go/src/net/tcpsock_posix.go:171 +0x11e
net.dialSingle(0xc8200da500, 0x7fe310955000, 0xc8200c47b0, 0xece0b1b56, 0x7fff104360f2, 0xab6520, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/dial.go:364 +0x3f5
net.dialSerial.func1(0xece0b1b56, 0x104360f2, 0xab6520, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/dial.go:336 +0x75
net.dial(0x893680, 0x3, 0x7fe310955000, 0xc8200c47b0, 0xc8201996e8, 0xece0b1b56, 0x104360f2, 0xab6520, 0x0, 0x0, ...)
    /usr/lib/go/src/net/fd_unix.go:40 +0x60
net.dialSerial(0xc8200da500, 0xc8200c65e0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/dial.go:338 +0x760
net.(*Dialer).Dial(0xc820012410, 0x893680, 0x3, 0xc82000b340, 0x14, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/dial.go:232 +0x50f
net.(*Dialer).Dial-fm(0x893680, 0x3, 0xc82000b340, 0x14, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:38 +0x6e
net/http.(*Transport).dial(0xc820092090, 0x893680, 0x3, 0xc82000b340, 0x14, 0x0, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:499 +0x79
net/http.(*Transport).dialConn(0xc820092090, 0x0, 0x9177e0, 0x4, 0xc82000b340, 0x14, 0x0, 0x0, 0x0)
    /usr/lib/go/src/net/http/transport.go:596 +0x19a9
net/http.(*Transport).getConn.func4(0xc820092090, 0x0, 0x9177e0, 0x4, 0xc82000b340, 0x14, 0xc820016480)
    /usr/lib/go/src/net/http/transport.go:549 +0x66
created by net/http.(*Transport).getConn
    /usr/lib/go/src/net/http/transport.go:551 +0x265

goroutine 32 [running]:
    goroutine running on other thread; stack unavailable
created by github.com/anacrolix/torrent/dht.(*Server).processPacket
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:197 +0x3e2

goroutine 69 [select]:
github.com/anacrolix/torrent/dht.(*Server).Announce.func2(0xc820228000)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/announce.go:76 +0x244
created by github.com/anacrolix/torrent/dht.(*Server).Announce
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/announce.go:87 +0x474
panic: sync: inconsistent mutex state

goroutine 32 [running]:
sync.(*Mutex).Lock(0xc8200e2038)
    /usr/lib/go/src/sync/mutex.go:74 +0x16d
github.com/anacrolix/torrent/dht.(*Transaction).handleResponse(0xc82020e120, 0x0, 0x0, 0x0, 0xc8200c7030, 0x1, 0xc8200c70d0, 0x1, 0xc8200e40f0, 0x0, ...)
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/transaction.go:136 +0xd8
created by github.com/anacrolix/torrent/dht.(*Server).processPacket
    /home/clandmeter/go-torrent/go/src/github.com/anacrolix/torrent/dht/server.go:197 +0x3e2
anacrolix commented 8 years ago

Fixed upstream, cheers.

Sioro-Neoku commented 8 years ago

Awesome, thanks!