Skip to content

Instantly share code, notes, and snippets.

@pciet
Created November 16, 2017 18:04
Show Gist options
  • Save pciet/7faa58cc143c1bfcab4f3d27f07af709 to your computer and use it in GitHub Desktop.
Save pciet/7faa58cc143c1bfcab4f3d27f07af709 to your computer and use it in GitHub Desktop.
wichess: fatal error: sweep increased allocation count (https://github.com/pciet/wichess/issues/19)
runtime: nelems=512 nalloc=34 previous allocCount=33 nfreed=65535
fatal error: sweep increased allocation count
runtime stack:
runtime.throw(0x840ca2, 0x20)
/usr/local/go/src/runtime/panic.go:605 +0x95
runtime.(*mspan).sweep(0x7fda09d7b8e8, 0x7fda09d7b801, 0x0)
/usr/local/go/src/runtime/mgcsweep.go:298 +0x911
runtime.(*mcentral).cacheSpan(0xa6be90, 0x7fda09dc6030)
/usr/local/go/src/runtime/mcentral.go:58 +0x2cd
runtime.(*mcache).refill(0x7fda09e1b6c8, 0xc4204d0304, 0x7fda09dc6030)
/usr/local/go/src/runtime/mcache.go:123 +0xa4
runtime.(*mcache).nextFree.func1()
/usr/local/go/src/runtime/malloc.go:557 +0x32
runtime.systemstack(0xa63000)
/usr/local/go/src/runtime/asm_amd64.s:344 +0x79
runtime.mstart()
/usr/local/go/src/runtime/proc.go:1135
goroutine 815 [running]:
runtime.systemstack_switch()
/usr/local/go/src/runtime/asm_amd64.s:298 fp=0xc420656c38 sp=0xc420656c30 pc=0x456c10
runtime.(*mcache).nextFree(0x7fda09e1b6c8, 0x4, 0x0, 0x7c86a0, 0xc420656d20)
/usr/local/go/src/runtime/malloc.go:556 +0xa9 fp=0xc420656c90 sp=0xc420656c38 pc=0x411ad9
runtime.mallocgc(0x10, 0x7fa260, 0x1, 0xffffffffffffffff)
/usr/local/go/src/runtime/malloc.go:711 +0x6f0 fp=0xc420656d38 sp=0xc420656c90 pc=0x4123a0
runtime.newobject(0x7fa260, 0x302)
/usr/local/go/src/runtime/malloc.go:840 +0x38 fp=0xc420656d68 sp=0xc420656d38 pc=0x4126e8
github.com/pciet/wichess/wichessing.Board.Move(0xc42021e000, 0x0, 0xc42021e030, 0x1, 0xc42021e060, 0x2, 0xc42021e090, 0x3, 0xc42021e0c0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:295 +0xe99 fp=0xc420657fd8 sp=0xc420656d68 pc=0x4d4949
github.com/pciet/wichess/wichessing.Board.AfterMove(0xc4200c8c30, 0x0, 0xc4200c8c60, 0x1, 0xc4200c8c90, 0x2, 0xc4200c8cc0, 0x3, 0xc4200c8cf0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:10 +0x141 fp=0xc420658c48 sp=0xc420657fd8 pc=0x4d39c1
github.com/pciet/wichess/wichessing.Board.Check(0xc4200c8c30, 0x0, 0xc4200c8c60, 0x1, 0xc4200c8c90, 0x2, 0xc4200c8cc0, 0x3, 0xc4200c8cf0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:47 +0x267 fp=0xc420659950 sp=0xc420658c48 pc=0x4d2b47
github.com/pciet/wichess/wichessing.Board.Draw(0xc4202c3000, 0x0, 0xc4202c3038, 0x1, 0xc4202c3070, 0x2, 0xc4202c30a8, 0x3, 0xc4202c30e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_draw.go:17 +0x378 fp=0xc42065a778 sp=0xc420659950 pc=0x4d3008
main.game.moves(0xb, 0xc, 0x1, 0xc420618020, 0x8, 0x0, 0xc20d008, 0xed19d608e, 0xc4201e24e0, 0x16768958, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:256 +0x698 fp=0xc42065be88 sp=0xc42065a778 pc=0x748528
main.movesHandler(0xa27380, 0xc42013c540, 0xc42015b000)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:55 +0x31c fp=0xc42065dcb0 sp=0xc42065be88 pc=0x7564dc
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42013c540, 0xc42015b000)
/usr/local/go/src/net/http/server.go:1918 +0x44 fp=0xc42065dcd8 sp=0xc42065dcb0 pc=0x6c4ba4
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013c540, 0xc42015b000)
/usr/local/go/src/net/http/server.go:2254 +0x130 fp=0xc42065dd18 sp=0xc42065dcd8 pc=0x6c6360
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013c540, 0xc42015b000)
/usr/local/go/src/net/http/server.go:2619 +0xb4 fp=0xc42065dd48 sp=0xc42065dd18 pc=0x6c78d4
net/http.(*conn).serve(0xc420086780, 0xa279c0, 0xc420166740)
/usr/local/go/src/net/http/server.go:1801 +0x71d fp=0xc42065dfc8 sp=0xc42065dd48 pc=0x6c3a7d
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc42065dfd0 sp=0xc42065dfc8 pc=0x459801
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 1 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbfeb0, 0x72, 0xffffffffffffffff)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420138298, 0x72, 0xc420039c00, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420138298, 0xffffffffffffff00, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Accept(0xc420138280, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:335 +0x1e2
net.(*netFD).accept(0xc420138280, 0x850978, 0xc420039d88, 0x402e8b)
/usr/local/go/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc42000e088, 0x7b63a0, 0xc420039db8, 0x401c27)
/usr/local/go/src/net/tcpsock_posix.go:136 +0x2e
net.(*TCPListener).AcceptTCP(0xc42000e088, 0xc420039e00, 0xc420039e08, 0xc420039df8)
/usr/local/go/src/net/tcpsock.go:234 +0x49
net/http.tcpKeepAliveListener.Accept(0xc42000e088, 0x850330, 0xc4201f6500, 0xa27a80, 0xc42013e240)
/usr/local/go/src/net/http/server.go:3120 +0x2f
net/http.(*Server).Serve(0xc42007f380, 0xa27540, 0xc42000e088, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:2695 +0x1b2
net/http.(*Server).ListenAndServe(0xc42007f380, 0xc42007f380, 0xa23b00)
/usr/local/go/src/net/http/server.go:2636 +0xa9
net/http.ListenAndServe(0x8312a1, 0x5, 0x0, 0x0, 0xa23b00, 0xc42013e120)
/usr/local/go/src/net/http/server.go:2882 +0x7f
main.main()
/home/pciet/go/src/github.com/pciet/wichess/main.go:58 +0x552
goroutine 5 [chan receive]:
database/sql.(*DB).connectionOpener(0xc420087400)
/usr/local/go/src/database/sql/sql.go:871 +0x53
created by database/sql.Open
/usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 7 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbfdf0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420138318, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420138318, 0xc420154000, 0x1000, 0x1000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420138300, 0xc420154000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420138300, 0xc420154000, 0x1000, 0x1000, 0xc4207158c8, 0x6bdfea, 0xc42014c068)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc42000e098, 0xc420154000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).Read(0xc42014c060, 0xc420154000, 0x1000, 0x1000, 0xc42014e080, 0xa202b4, 0x2)
/usr/local/go/src/net/http/server.go:753 +0x105
bufio.(*Reader).fill(0xc420152000)
/usr/local/go/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).ReadSlice(0xc420152000, 0xc420715a0a, 0x411af6, 0x7fda09d83bc0, 0x1, 0xc420715ab8, 0x411f87)
/usr/local/go/src/bufio/bufio.go:338 +0x2c
bufio.(*Reader).ReadLine(0xc420152000, 0x100, 0xf8, 0x824580, 0x1, 0x1220020250380, 0xf8)
/usr/local/go/src/bufio/bufio.go:367 +0x34
net/textproto.(*Reader).readLineSlice(0xc4203c8e70, 0xc420715b20, 0xc420715b20, 0x4126e8, 0x100, 0x824580)
/usr/local/go/src/net/textproto/reader.go:55 +0x70
net/textproto.(*Reader).ReadLine(0xc4203c8e70, 0xc4203f0100, 0x0, 0xc420715b90, 0x499b02)
/usr/local/go/src/net/textproto/reader.go:36 +0x2b
net/http.readRequest(0xc420152000, 0x0, 0xc4203f0100, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:925 +0x99
net/http.(*conn).readRequest(0xc4200875e0, 0xa279c0, 0xc42014e040, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:933 +0x17c
net/http.(*conn).serve(0xc4200875e0, 0xa279c0, 0xc42014e040)
/usr/local/go/src/net/http/server.go:1739 +0x50e
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 8 [semacquire]:
sync.runtime_SemacquireMutex(0xc42014a044, 0x74cc00)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc42014a040)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc42014a040)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0x4)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.movesHandler(0xa27380, 0xc42013ca80, 0xc42015b900)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:48 +0x1da
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42013ca80, 0xc42015b900)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013ca80, 0xc42015b900)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013ca80, 0xc42015b900)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc420087680, 0xa279c0, 0xc420058300)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 258 [semacquire]:
sync.runtime_SemacquireMutex(0xc42014a144, 0x74cc00)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc42014a140)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc42014a140)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0x6)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.moveRequestHandler(0xa27380, 0xc42013c380, 0xc42015a500)
/home/pciet/go/src/github.com/pciet/wichess/web_move.go:83 +0x2dd
net/http.HandlerFunc.ServeHTTP(0x850148, 0xa27380, 0xc42013c380, 0xc42015a500)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013c380, 0xc42015a500)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013c380, 0xc42015a500)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc42036c140, 0xa279c0, 0xc4201d1a00)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 2334 [runnable]:
golang.org/x/crypto/blowfish.ExpandKey(0xc42014a1a0, 0x10, 0x12, 0xc4205e0600)
/home/pciet/go/src/golang.org/x/crypto/blowfish/block.go:28 +0x2a9
golang.org/x/crypto/bcrypt.expensiveBlowfishSetup(0xc420335a40, 0x10, 0x20, 0xc40000000a, 0xc42014a020, 0x16, 0x18, 0x23, 0xc4205cc030, 0x23)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:228 +0x183
golang.org/x/crypto/bcrypt.bcrypt(0xc420335a40, 0x10, 0x20, 0xa, 0xc42014a020, 0x16, 0x18, 0xc420335990, 0x4468fa, 0x40, ...)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:191 +0xe6
golang.org/x/crypto/bcrypt.CompareHashAndPassword(0xc42001e600, 0x40, 0x40, 0xc420335a40, 0x10, 0x20, 0x886100, 0x79ea80)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:105 +0xc6
main.DB.login(0xc420087400, 0xc4206717a5, 0x8, 0xc4206717b7, 0x10, 0x3c, 0x3c)
/home/pciet/go/src/github.com/pciet/wichess/login.go:24 +0xf7
main.DB.createAndLogin(0xc420087400, 0xc4206717a5, 0x8, 0xc4206717b7, 0x10, 0x0, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/login.go:46 +0x194
main.DB.loginOrCreate(0xc420087400, 0xc4206717a5, 0x8, 0xc4206717b7, 0x10, 0x0, 0xc42003ecc8)
/home/pciet/go/src/github.com/pciet/wichess/login.go:16 +0xb0
main.loginAttempt(0xa27380, 0xc4201f2c40, 0xc42015a400)
/home/pciet/go/src/github.com/pciet/wichess/web_login.go:49 +0x167
main.loginHandler(0xa27380, 0xc4201f2c40, 0xc42015a400)
/home/pciet/go/src/github.com/pciet/wichess/web_login.go:19 +0x144
net/http.HandlerFunc.ServeHTTP(0x850138, 0xa27380, 0xc4201f2c40, 0xc42015a400)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f2c40, 0xc42015a400)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f2c40, 0xc42015a400)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4201f63c0, 0xa279c0, 0xc42014fac0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 164 [semacquire]:
sync.runtime_SemacquireMutex(0xc42014a2c4, 0x74cc00)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc42014a2c0)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc42014a2c0)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0x5)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.movesHandler(0xa27380, 0xc4201f2e00, 0xc42015a000)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:48 +0x1da
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc4201f2e00, 0xc42015a000)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f2e00, 0xc42015a000)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f2e00, 0xc42015a000)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc420318960, 0xa279c0, 0xc42014f640)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 47 [runnable]:
github.com/pciet/wichess/wichessing.Board.SurroundingPoints(0xc42004a510, 0x0, 0xc42004a540, 0x1, 0xc42004a570, 0x2, 0xc42004a5a0, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:704 +0x8c
github.com/pciet/wichess/wichessing.Board.ActualPaths(0xc42004a510, 0x0, 0xc42004a540, 0x1, 0xc42004a570, 0x2, 0xc42004a5a0, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:562 +0xcfd
github.com/pciet/wichess/wichessing.Board.MovesFromPoint(0xc42004a510, 0x0, 0xc42004a540, 0x1, 0xc42004a570, 0x2, 0xc42004a5a0, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:215 +0x708
github.com/pciet/wichess/wichessing.Board.AllNaiveMovesFor(0xc42004a510, 0x0, 0xc42004a540, 0x1, 0xc42004a570, 0x2, 0xc42004a5a0, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:191 +0x18c
github.com/pciet/wichess/wichessing.Board.Check(0xc42004a510, 0x0, 0xc42004a540, 0x1, 0xc42004a570, 0x2, 0xc42004a5a0, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:39 +0xb6
github.com/pciet/wichess/wichessing.Board.Draw(0xc4201a6000, 0x0, 0xc4201a6038, 0x1, 0xc4201a6070, 0x2, 0xc4201a60a8, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_draw.go:17 +0x378
main.game.move(0x3, 0xb, 0x1, 0xc42059c020, 0x8, 0x0, 0xbe7af84394ea9244, 0x3fcfc2e53, 0xa62a80, 0xc530e015, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:45 +0x282
main.moveRequestHandler(0xa27380, 0xc4201f27e0, 0xc42015b500)
/home/pciet/go/src/github.com/pciet/wichess/web_move.go:104 +0xbf5
net/http.HandlerFunc.ServeHTTP(0x850148, 0xa27380, 0xc4201f27e0, 0xc42015b500)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f27e0, 0xc42015b500)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f27e0, 0xc42015b500)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4201ceb40, 0xa279c0, 0xc420166780)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 385 [chan receive]:
main.listeningToGame.func3(0x4, 0xc4201b8035, 0x8, 0xc420156538, 0x8, 0xc42016a660, 0xc42008aa00)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 203 [chan receive]:
main.listeningToGame.func3(0x1, 0xc4201b8725, 0x8, 0xc4200148b8, 0x8, 0xc420168060, 0xc42008a3c0)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 45 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbfa30, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420158798, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420158798, 0xc4202f4000, 0x1000, 0x1000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420158780, 0xc4202f4000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420158780, 0xc4202f4000, 0x1000, 0x1000, 0xc4205298c8, 0x6bdfea, 0xc420292e18)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202e2010, 0xc4202f4000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).Read(0xc420292e10, 0xc4202f4000, 0x1000, 0x1000, 0xc42014ee00, 0xa202b4, 0x2)
/usr/local/go/src/net/http/server.go:753 +0x105
bufio.(*Reader).fill(0xc4201523c0)
/usr/local/go/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).ReadSlice(0xc4201523c0, 0xc420529a0a, 0x411af6, 0x7fda09d7b1c8, 0x13, 0x0, 0xf3)
/usr/local/go/src/bufio/bufio.go:338 +0x2c
bufio.(*Reader).ReadLine(0xc4201523c0, 0x100, 0xf8, 0x824580, 0xc420529a01, 0x1220000402d89, 0xf8)
/usr/local/go/src/bufio/bufio.go:367 +0x34
net/textproto.(*Reader).readLineSlice(0xc42040fc20, 0xc420529b20, 0xc420529b20, 0x4126e8, 0x100, 0x824580)
/usr/local/go/src/net/textproto/reader.go:55 +0x70
net/textproto.(*Reader).ReadLine(0xc42040fc20, 0xc42015b300, 0x0, 0xc420529b90, 0x499b02)
/usr/local/go/src/net/textproto/reader.go:36 +0x2b
net/http.readRequest(0xc4201523c0, 0x0, 0xc42015b300, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:925 +0x99
net/http.(*conn).readRequest(0xc4201cea00, 0xa279c0, 0xc42014edc0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:933 +0x17c
net/http.(*conn).serve(0xc4201cea00, 0xa279c0, 0xc42014edc0)
/usr/local/go/src/net/http/server.go:1739 +0x50e
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 442 [select]:
main.listeningToGame.func2(0xc4201f86c5, 0x8, 0xc4201682a0, 0xc4201683c0, 0x6, 0xd18c2e2800, 0xf255d78, 0xed19d6088, 0xc42005c180)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 96 [runnable]:
github.com/pciet/wichess/wichessing.Piece.SetKindFlags(0x6, 0x1, 0x6, 0x1, 0x0, 0x4, 0x1, 0x4, 0x1, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/piece.go:123 +0x2e2
github.com/pciet/wichess/wichessing.(*Piece).Copy(0xc42001c900, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/piece.go:220 +0x106
github.com/pciet/wichess/wichessing.Board.Copy(0xc42001c510, 0x0, 0x0, 0x1, 0xc42001c540, 0x2, 0x0, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board.go:21 +0xbd
github.com/pciet/wichess/wichessing.Board.AfterMove(0xc42001c510, 0x0, 0x0, 0x1, 0xc42001c540, 0x2, 0x0, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:9 +0x73
github.com/pciet/wichess/wichessing.Board.Check(0xc42001c510, 0x0, 0x0, 0x1, 0xc42001c540, 0x2, 0x0, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:47 +0x267
github.com/pciet/wichess/wichessing.Board.Moves(0xc42021b000, 0x0, 0x0, 0x1, 0xc42021b070, 0x2, 0xc42021b0a8, 0x3, 0x0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:50 +0x4f8
main.game.moves(0x5, 0x11, 0x1, 0xc4202e8308, 0x8, 0x0, 0x109b28e0, 0xed19d608d, 0xc420152600, 0xaabdb912, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:266 +0x719
main.movesHandler(0xa27380, 0xc42017a1c0, 0xc42015ad00)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:55 +0x31c
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42017a1c0, 0xc42015ad00)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42017a1c0, 0xc42015ad00)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42017a1c0, 0xc42015ad00)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4201f7f40, 0xa279c0, 0xc4201d0cc0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 2335 [runnable]:
golang.org/x/crypto/blowfish.ExpandKey(0xc42014a260, 0x10, 0x12, 0xc4205df300)
/home/pciet/go/src/golang.org/x/crypto/blowfish/block.go:28 +0x2a9
golang.org/x/crypto/bcrypt.expensiveBlowfishSetup(0xc4201c1a40, 0xf, 0x20, 0xc40000000a, 0xc42014a120, 0x16, 0x18, 0x23, 0xc420500030, 0x23)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:228 +0x183
golang.org/x/crypto/bcrypt.bcrypt(0xc4201c1a40, 0xf, 0x20, 0xa, 0xc42014a120, 0x16, 0x18, 0xc4201c1990, 0x4468fa, 0x40, ...)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:191 +0xe6
golang.org/x/crypto/bcrypt.CompareHashAndPassword(0xc42001e700, 0x40, 0x40, 0xc4201c1a40, 0xf, 0x20, 0x886100, 0x79ea80)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:105 +0xc6
main.DB.login(0xc420087400, 0xc4201ba035, 0x7, 0xc4201ba046, 0xf, 0x3c, 0x3c)
/home/pciet/go/src/github.com/pciet/wichess/login.go:24 +0xf7
main.DB.createAndLogin(0xc420087400, 0xc4201ba035, 0x7, 0xc4201ba046, 0xf, 0x0, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/login.go:46 +0x194
main.DB.loginOrCreate(0xc420087400, 0xc4201ba035, 0x7, 0xc4201ba046, 0xf, 0x0, 0xc42003dcc8)
/home/pciet/go/src/github.com/pciet/wichess/login.go:16 +0xb0
main.loginAttempt(0xa27380, 0xc4201f29a0, 0xc42015b700)
/home/pciet/go/src/github.com/pciet/wichess/web_login.go:49 +0x167
main.loginHandler(0xa27380, 0xc4201f29a0, 0xc42015b700)
/home/pciet/go/src/github.com/pciet/wichess/web_login.go:19 +0x144
net/http.HandlerFunc.ServeHTTP(0x850138, 0xa27380, 0xc4201f29a0, 0xc42015b700)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f29a0, 0xc42015b700)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f29a0, 0xc42015b700)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4201f6460, 0xa279c0, 0xc42014fcc0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 67 [runnable]:
github.com/pciet/wichess/wichessing.TruncatedAbsPathsForKind(0x3, 0x706, 0x1, 0xc4206a1848)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/path.go:43 +0x309
github.com/pciet/wichess/wichessing.Board.MovesFromPoint(0x0, 0x0, 0xc420611d40, 0x1, 0x0, 0x2, 0x0, 0x3, 0xc420611d70, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:214 +0x3a1
github.com/pciet/wichess/wichessing.Board.Move(0x0, 0x0, 0xc420611d40, 0x1, 0x0, 0x2, 0x0, 0x3, 0xc420611d70, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:126 +0xdf4
github.com/pciet/wichess/wichessing.Board.AfterMove(0x0, 0x0, 0xc4202f2a50, 0x1, 0x0, 0x2, 0x0, 0x3, 0xc4202f2a80, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:10 +0x141
github.com/pciet/wichess/wichessing.Board.Check(0x0, 0x0, 0xc4202f2a50, 0x1, 0x0, 0x2, 0x0, 0x3, 0xc4202f2a80, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:47 +0x267
github.com/pciet/wichess/wichessing.Board.Moves(0x0, 0x0, 0xc4205a7038, 0x1, 0x0, 0x2, 0x0, 0x3, 0xc4205a70e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:50 +0x4f8
main.game.moves(0x2, 0xc, 0x1, 0xc4205c0070, 0x8, 0x0, 0x2d6f1a80, 0xed19d608d, 0xc4201e2f00, 0xb383d6a7, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:266 +0x719
main.movesHandler(0xa27380, 0xc42017a8c0, 0xc42015ac00)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:55 +0x31c
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42017a8c0, 0xc42015ac00)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42017a8c0, 0xc42015ac00)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42017a8c0, 0xc42015ac00)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4201a0dc0, 0xa279c0, 0xc4200586c0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 68 [semacquire]:
sync.runtime_SemacquireMutex(0xc420290404, 0x74cc00)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc420290400)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc420290400)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0x8)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.movesHandler(0xa27380, 0xc42013c1c0, 0xc42015ab00)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:48 +0x1da
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42013c1c0, 0xc42015ab00)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013c1c0, 0xc42015ab00)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013c1c0, 0xc42015ab00)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4201a0e60, 0xa279c0, 0xc42014e880)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 46 [runnable]:
github.com/pciet/wichess/wichessing.TruncatedAbsPathsForKind(0x2, 0x4, 0x0, 0xc420679fa0)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/path.go:18 +0x458
github.com/pciet/wichess/wichessing.Board.MovesFromPoint(0x0, 0x0, 0xc4206111a0, 0x1, 0xc4206111d0, 0x2, 0x0, 0x3, 0xc420611200, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:214 +0x3a1
github.com/pciet/wichess/wichessing.Board.Move(0x0, 0x0, 0xc4206111a0, 0x1, 0xc4206111d0, 0x2, 0x0, 0x3, 0xc420611200, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:126 +0xdf4
github.com/pciet/wichess/wichessing.Board.AfterMove(0x0, 0x0, 0xc420430e40, 0x1, 0xc420430e70, 0x2, 0x0, 0x3, 0xc420430ea0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:10 +0x141
github.com/pciet/wichess/wichessing.Board.Check(0x0, 0x0, 0xc420430e40, 0x1, 0xc420430e70, 0x2, 0x0, 0x3, 0xc420430ea0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:47 +0x267
github.com/pciet/wichess/wichessing.Board.Draw(0x0, 0x0, 0xc420344870, 0x1, 0xc4203448a0, 0x2, 0x0, 0x3, 0xc4203448d0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_draw.go:17 +0x378
main.game.move(0x4, 0x18, 0x1, 0xc4201dd4e8, 0x8, 0x0, 0xbe7af8438e26d7bb, 0x3f63873ad, 0xa62a80, 0xbb1006a3, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:128 +0xccc
main.moveRequestHandler(0xa27380, 0xc42013c9a0, 0xc42015a700)
/home/pciet/go/src/github.com/pciet/wichess/web_move.go:104 +0xbf5
net/http.HandlerFunc.ServeHTTP(0x850148, 0xa27380, 0xc42013c9a0, 0xc42015a700)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013c9a0, 0xc42015a700)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013c9a0, 0xc42015a700)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4201ceaa0, 0xa279c0, 0xc420058ac0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 2261 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf670, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420139118, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420139118, 0xc420293d00, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420139100, 0xc420293d21, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420139100, 0xc420293d21, 0x1, 0x1, 0xc420074060, 0x20002, 0xc42019e7a4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc42000e138, 0xc420293d21, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc420293d10)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 350 [chan receive]:
main.listeningToGame.func3(0x3, 0xc4201b8425, 0x8, 0xc420503040, 0x8, 0xc42016a300, 0xc42008ac80)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2064 [chan receive]:
main.listeningToGame.func3(0x8, 0xc42001c395, 0x8, 0xc4201489f8, 0x7, 0xc420168d20, 0xc42060a000)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2166 [chan receive]:
main.listeningToGame.func3(0x9, 0xc42001ca55, 0x8, 0xc4201572e0, 0x8, 0xc42016ac00, 0xc42060a140)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 178 [runnable]:
github.com/pciet/wichess/wichessing.Board.SurroundingPoints(0xc4203a2600, 0x0, 0x0, 0x1, 0xc4203a2630, 0x2, 0x0, 0x3, 0xc4203a2660, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:704 +0x8c
github.com/pciet/wichess/wichessing.Board.ActualPaths(0xc4203a2600, 0x0, 0x0, 0x1, 0xc4203a2630, 0x2, 0x0, 0x3, 0xc4203a2660, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:562 +0xcfd
github.com/pciet/wichess/wichessing.Board.MovesFromPoint(0xc4203a2600, 0x0, 0x0, 0x1, 0xc4203a2630, 0x2, 0x0, 0x3, 0xc4203a2660, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:215 +0x708
github.com/pciet/wichess/wichessing.Board.AllNaiveMovesFor(0xc4203a2600, 0x0, 0x0, 0x1, 0xc4203a2630, 0x2, 0x0, 0x3, 0xc4203a2660, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:191 +0x18c
github.com/pciet/wichess/wichessing.Board.Check(0xc4203a2600, 0x0, 0x0, 0x1, 0xc4203a2630, 0x2, 0x0, 0x3, 0xc4203a2660, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:39 +0xb6
github.com/pciet/wichess/wichessing.Board.Draw(0xc420581000, 0x0, 0x0, 0x1, 0xc420581070, 0x2, 0x0, 0x3, 0xc4205810e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_draw.go:17 +0x378
main.game.move(0x1, 0x13, 0x1, 0xc420502208, 0x8, 0x0, 0xbe7af8439538c793, 0x3fd4a639d, 0xa62a80, 0xd2474ab2, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:45 +0x282
main.moveRequestHandler(0xa27380, 0xc4201f2700, 0xc42015b400)
/home/pciet/go/src/github.com/pciet/wichess/web_move.go:104 +0xbf5
net/http.HandlerFunc.ServeHTTP(0x850148, 0xa27380, 0xc4201f2700, 0xc42015b400)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f2700, 0xc42015b400)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f2700, 0xc42015b400)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4202f0e60, 0xa279c0, 0xc420059100)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 165 [semacquire]:
sync.runtime_SemacquireMutex(0xc42036a444, 0x74cc00)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc42036a440)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc42036a440)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0x2)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.movesHandler(0xa27380, 0xc4201f2540, 0xc42015b100)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:48 +0x1da
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc4201f2540, 0xc42015b100)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f2540, 0xc42015b100)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f2540, 0xc42015b100)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc420318a00, 0xa279c0, 0xc42014f580)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 113 [runnable]:
github.com/pciet/wichess/wichessing.Piece.SetKindFlags(0x5, 0x0, 0x5, 0x0, 0x0, 0x3, 0x1, 0x3, 0x0, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/piece.go:123 +0x2e2
github.com/pciet/wichess/wichessing.(*Piece).Copy(0xc4203ab470, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/piece.go:220 +0x106
github.com/pciet/wichess/wichessing.Board.Copy(0x0, 0x0, 0xc4203ab470, 0x1, 0x0, 0x2, 0xc4203ab4a0, 0x3, 0xc4203ab4d0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board.go:21 +0xbd
github.com/pciet/wichess/wichessing.Board.AfterMove(0x0, 0x0, 0xc4203ab470, 0x1, 0x0, 0x2, 0xc4203ab4a0, 0x3, 0xc4203ab4d0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:9 +0x73
github.com/pciet/wichess/wichessing.Board.Check(0x0, 0x0, 0xc4203ab470, 0x1, 0x0, 0x2, 0xc4203ab4a0, 0x3, 0xc4203ab4d0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:47 +0x267
github.com/pciet/wichess/wichessing.Board.Moves(0x0, 0x0, 0xc4201a7038, 0x1, 0x0, 0x2, 0xc4201a70a8, 0x3, 0xc4201a70e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:34 +0x8b3
main.game.moves(0x6, 0x7, 0x1, 0xc4204a4838, 0x8, 0x0, 0x2a8a0b90, 0xed19d608d, 0xc4201e2300, 0xb517e4cb, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:266 +0x719
main.movesHandler(0xa27380, 0xc42017a7e0, 0xc42015af00)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:55 +0x31c
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42017a7e0, 0xc42015af00)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42017a7e0, 0xc42015af00)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42017a7e0, 0xc42015af00)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4202f0d20, 0xa279c0, 0xc42014f4c0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 505 [chan receive]:
main.listeningToGame.func3(0x6, 0xc42001c965, 0x8, 0xc42059c1b8, 0x8, 0xc42016aba0, 0xc4203ae500)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2336 [runnable]:
golang.org/x/crypto/blowfish.ExpandKey(0xc42014a6c0, 0x10, 0x12, 0xc4205de000)
/home/pciet/go/src/golang.org/x/crypto/blowfish/block.go:28 +0x2a9
golang.org/x/crypto/bcrypt.expensiveBlowfishSetup(0xc4201c5a40, 0x10, 0x20, 0xc40000000a, 0xc42014a4c0, 0x16, 0x18, 0x23, 0xc420344000, 0x23)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:228 +0x183
golang.org/x/crypto/bcrypt.bcrypt(0xc4201c5a40, 0x10, 0x20, 0xa, 0xc42014a4c0, 0x16, 0x18, 0xc4201c5990, 0x4468fa, 0x40, ...)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:191 +0xe6
golang.org/x/crypto/bcrypt.CompareHashAndPassword(0xc42001e600, 0x40, 0x40, 0xc4201c5a40, 0x10, 0x20, 0x886100, 0x79ea80)
/home/pciet/go/src/golang.org/x/crypto/bcrypt/bcrypt.go:105 +0xc6
main.DB.login(0xc420087400, 0xc4201ba0c5, 0x8, 0xc4201ba0d7, 0x10, 0x3c, 0x3c)
/home/pciet/go/src/github.com/pciet/wichess/login.go:24 +0xf7
main.DB.createAndLogin(0xc420087400, 0xc4201ba0c5, 0x8, 0xc4201ba0d7, 0x10, 0x0, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/login.go:46 +0x194
main.DB.loginOrCreate(0xc420087400, 0xc4201ba0c5, 0x8, 0xc4201ba0d7, 0x10, 0x0, 0xc4205d8cc8)
/home/pciet/go/src/github.com/pciet/wichess/login.go:16 +0xb0
main.loginAttempt(0xa27380, 0xc4201f2a80, 0xc42015b800)
/home/pciet/go/src/github.com/pciet/wichess/web_login.go:49 +0x167
main.loginHandler(0xa27380, 0xc4201f2a80, 0xc42015b800)
/home/pciet/go/src/github.com/pciet/wichess/web_login.go:19 +0x144
net/http.HandlerFunc.ServeHTTP(0x850138, 0xa27380, 0xc4201f2a80, 0xc42015b800)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f2a80, 0xc42015b800)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f2a80, 0xc42015b800)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4201f6500, 0xa279c0, 0xc42014e180)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 239 [runnable]:
github.com/lib/pq.(*readBuf).string(0xc4206db280, 0x1, 0x1)
/home/pciet/go/src/github.com/lib/pq/buf.go:31 +0x164
github.com/lib/pq.parseStatementRowDescribe(0xc4206db280, 0xc4201ad054, 0xc4206db280, 0xc4201dd058, 0x1, 0x1, 0xc4206db240)
/home/pciet/go/src/github.com/lib/pq/conn.go:1715 +0x13f
github.com/lib/pq.(*conn).readStatementDescribeResponse(0xc4201ad080, 0xc420243760, 0x1, 0x830319, 0x1, 0x830319, 0x1, 0xc4201d10c0, 0xc420243730, 0x42adbd)
/home/pciet/go/src/github.com/lib/pq/conn.go:1601 +0x11d
github.com/lib/pq.(*conn).prepareTo(0xc4201ad080, 0x8433f4, 0x26, 0x0, 0x0, 0x412fb6)
/home/pciet/go/src/github.com/lib/pq/conn.go:784 +0x55f
github.com/lib/pq.(*conn).query(0xc4201ad080, 0x8433f4, 0x26, 0xc4201e0cb0, 0x1, 0x1, 0x0, 0x0, 0x0)
/home/pciet/go/src/github.com/lib/pq/conn.go:854 +0x335
github.com/lib/pq.(*conn).QueryContext(0xc4201ad080, 0xa27a00, 0xc4200142a8, 0x8433f4, 0x26, 0xc42054e720, 0x1, 0x1, 0x7fda09cdd3a9, 0xc4202439f0, ...)
/home/pciet/go/src/github.com/lib/pq/conn_go18.go:21 +0x1f9
database/sql.ctxDriverQuery(0xa27a00, 0xc4200142a8, 0x7fda09d3b050, 0xc4201ad080, 0x8433f4, 0x26, 0xc42054e720, 0x1, 0x1, 0x42a699, ...)
/usr/local/go/src/database/sql/ctxutil.go:48 +0x277
database/sql.(*DB).queryDC.func1()
/usr/local/go/src/database/sql/sql.go:1320 +0x99
database/sql.withLock(0xa25080, 0xc42012e070, 0xc420243b90)
/usr/local/go/src/database/sql/sql.go:2867 +0x65
database/sql.(*DB).queryDC(0xc420087400, 0xa27a00, 0xc4200142a8, 0x0, 0x0, 0xc42012e070, 0xc4201e0ca0, 0x8433f4, 0x26, 0xc420243e68, ...)
/usr/local/go/src/database/sql/sql.go:1319 +0x6ba
database/sql.(*DB).query(0xc420087400, 0xa27a00, 0xc4200142a8, 0x8433f4, 0x26, 0xc420243e68, 0x1, 0x1, 0xc420243d01, 0x42b036, ...)
/usr/local/go/src/database/sql/sql.go:1304 +0x147
database/sql.(*DB).QueryContext(0xc420087400, 0xa27a00, 0xc4200142a8, 0x8433f4, 0x26, 0xc420243e68, 0x1, 0x1, 0x453fd0, 0xc420250000, ...)
/usr/local/go/src/database/sql/sql.go:1281 +0xd2
database/sql.(*DB).QueryRowContext(0xc420087400, 0xa27a00, 0xc4200142a8, 0x8433f4, 0x26, 0xc420243e68, 0x1, 0x1, 0xc4201e0c90)
/usr/local/go/src/database/sql/sql.go:1376 +0x90
database/sql.(*DB).QueryRow(0xc420087400, 0x8433f4, 0x26, 0xc420243e68, 0x1, 0x1, 0xc4205836e0)
/usr/local/go/src/database/sql/sql.go:1387 +0x7c
main.DB.playersCompetitive15HourGameID(0xc420087400, 0xc42001ca55, 0x8, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/player.go:28 +0xd7
main.movesHandler(0xa27380, 0xc42013cb60, 0xc42015a300)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:43 +0x4bd
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42013cb60, 0xc42015a300)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013cb60, 0xc42015a300)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013cb60, 0xc42015a300)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4203861e0, 0xa279c0, 0xc42037a3c0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 443 [chan receive]:
main.listeningToGame.func3(0x6, 0xc4201f86c5, 0x8, 0xc4204a4170, 0x8, 0xc420168420, 0xc4203ae3c0)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 417 [select]:
main.listeningToGame.func2(0xc4201b87b5, 0x8, 0xc42016a0c0, 0xc42016a7e0, 0x5, 0xd18c2e2800, 0xca8c4b8, 0xed19d6088, 0xc42005c180)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 297 [chan receive]:
main.listeningToGame.func3(0x2, 0xc4201b8245, 0x7, 0xc42059c558, 0x8, 0xc420298360, 0xc42008a640)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2340 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dd6b00, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420138918, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420138918, 0xc42041a600, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420138900, 0xc42041a611, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420138900, 0xc42041a611, 0x1, 0x1, 0xc420153d40, 0x0, 0xc42014fde8)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202a4018, 0xc42041a611, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc42041a600)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 281 [select]:
main.listeningToGame.func2(0xc4201b6035, 0x8, 0xc42016b1a0, 0xc42016b200, 0x1, 0xd18c2e2800, 0x391aca28, 0xed19d6087, 0xc4201e2300)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 282 [chan receive]:
main.listeningToGame.func3(0x1, 0xc4201b6035, 0x8, 0xc4203ac858, 0x8, 0xc42016b260, 0xc4203ae140)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 341 [chan receive]:
main.listeningToGame.func3(0x2, 0xc4201b63f5, 0x8, 0xc4200142e0, 0x8, 0xc4202983c0, 0xc42008a780)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 296 [select]:
main.listeningToGame.func2(0xc4201b8245, 0x7, 0xc4202981e0, 0xc4202982a0, 0x2, 0xd18c2e2800, 0x4d06048, 0xed19d6088, 0xc4201e2060)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 2435 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09d3dec0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420162598, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420162598, 0xc4205a4800, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420162580, 0xc4205a4851, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420162580, 0xc4205a4851, 0x1, 0x1, 0xc420132660, 0x0, 0xa22301)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4201920b8, 0xc4205a4851, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc4205a4840)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 318 [chan receive]:
main.listeningToGame.func3(0x3, 0xc4201b62a5, 0x8, 0xc420156508, 0x8, 0xc420168660, 0xc42008a8c0)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 317 [select]:
main.listeningToGame.func2(0xc4201b62a5, 0x8, 0xc420168540, 0xc420168600, 0x3, 0xd18c2e2800, 0x7ab8fe0, 0xed19d6088, 0xc42005c180)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 466 [chan receive]:
main.listeningToGame.func3(0x5, 0xc4201b87b5, 0x8, 0xc4203ac690, 0x8, 0xc42016a840, 0xc42008adc0)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2213 [chan receive]:
main.listeningToGame.func3(0xa, 0xc4205e4ff5, 0x8, 0xc4204ea1e8, 0x8, 0xc42016afc0, 0xc4203ae640)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2329 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf430, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc42032c498, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc42032c498, 0xc420293e00, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc42032c480, 0xc420293e71, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc42032c480, 0xc420293e71, 0x1, 0x1, 0xc420152c00, 0x0, 0xc420167f68)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420192120, 0xc420293e71, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc420293e60)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 384 [semacquire]:
sync.runtime_SemacquireMutex(0xc42014a044, 0x0)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc42014a040)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc42014a040)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0x4)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.listeningToGame.func2(0xc4201b8035, 0x8, 0xc42016a540, 0xc42016a5a0, 0x4, 0xd18c2e2800, 0xa56d5d8, 0xed19d6088, 0xc4201e2300)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:102 +0x69
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 2352 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09d3df80, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420162398, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420162398, 0xc4205a4500, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420162380, 0xc4205a45b1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420162380, 0xc4205a45b1, 0x1, 0x1, 0xc420074060, 0x20002, 0xc420452fa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4201920b0, 0xc4205a45b1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc4205a45a0)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 429 [chan receive]:
main.listeningToGame.func3(0x4, 0xc4201b6215, 0x8, 0xc4203ac398, 0x8, 0xc42016a780, 0xc42008ab40)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2266 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbfbb0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420162d18, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420162d18, 0xc42013e700, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420162d00, 0xc42013e7c1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420162d00, 0xc42013e7c1, 0x1, 0x1, 0xc420074060, 0x20002, 0xc42002c7a4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4201920c0, 0xc42013e7c1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc42013e7b0)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2391 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09d3e280, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420162098, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420162098, 0xc4205a4000, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420162080, 0xc4205a40a1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420162080, 0xc4205a40a1, 0x1, 0x1, 0xc420074060, 0x20002, 0xc4204537a4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420192068, 0xc4205a40a1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc4205a4090)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 478 [chan receive]:
main.listeningToGame.func3(0x5, 0xc4201f8515, 0x8, 0xc4205c14e8, 0x8, 0xc42016a720, 0xc4203ae280)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2032 [chan receive]:
main.listeningToGame.func3(0x7, 0xc4205bc515, 0x8, 0xc4205031f8, 0x8, 0xc4201687e0, 0xc42008b040)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2379 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbfaf0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420162d98, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420162d98, 0xc420292600, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420162d80, 0xc420292641, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420162d80, 0xc420292641, 0x1, 0x1, 0xc420132c00, 0x0, 0xa22301)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4201920c8, 0xc420292641, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc420292630)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2054 [select]:
main.listeningToGame.func2(0xc420372035, 0x8, 0xc420168d80, 0xc420168e40, 0x7, 0xd18c2e2800, 0x157b2540, 0xed19d608d, 0xc4201530e0)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 2341 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dd6a40, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420138a18, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420138a18, 0xc42041a200, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420138a00, 0xc42041a281, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420138a00, 0xc42041a281, 0x1, 0x1, 0xc420152cc0, 0x0, 0xa22301)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202a4020, 0xc42041a281, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc42041a270)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2293 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf730, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc4201fb198, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc4201fb198, 0xc4201e5000, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc4201fb180, 0xc4201e50c1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc4201fb180, 0xc4201e50c1, 0x1, 0x1, 0xc420074060, 0x20002, 0xc42058cfa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202a4038, 0xc4201e50c1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc4201e50b0)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2381 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf2b0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420358718, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420358718, 0xc420360500, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420358700, 0xc420360521, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420358700, 0xc420360521, 0x1, 0x1, 0xc420074060, 0x20002, 0xc42058afa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202a4080, 0xc420360521, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc420360510)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2169 [chan receive]:
main.listeningToGame.func3(0x9, 0xc420236035, 0x8, 0xc420156050, 0x8, 0xc42016ad80, 0xc42008b2c0)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2374 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dd7400, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc4201fa818, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc4201fa818, 0xc4202ec100, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc4201fa800, 0xc4202ec191, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc4201fa800, 0xc4202ec191, 0x1, 0x1, 0xc420152c00, 0x0, 0xc420167de8)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202e2050, 0xc4202ec191, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc4202ec180)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 834 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09d3e1c0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420162118, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420162118, 0xc42030a000, 0x1000, 0x1000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420162100, 0xc42030a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420162100, 0xc42030a000, 0x1000, 0x1000, 0xc4206b98c8, 0x6bdfea, 0xc4205a4188)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420192088, 0xc42030a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).Read(0xc4205a4180, 0xc42030a000, 0x1000, 0x1000, 0xc4201d1400, 0x320020250000, 0x198)
/usr/local/go/src/net/http/server.go:753 +0x105
bufio.(*Reader).fill(0xc420132ba0)
/usr/local/go/src/bufio/bufio.go:97 +0x11a
bufio.(*Reader).ReadSlice(0xc420132ba0, 0xc4206b9a0a, 0x411af6, 0x7fda09d7b1c8, 0xa, 0xc4206b9ab8, 0x411f87)
/usr/local/go/src/bufio/bufio.go:338 +0x2c
bufio.(*Reader).ReadLine(0xc420132ba0, 0x100, 0xf8, 0x824580, 0x1, 0x1220020250000, 0xf8)
/usr/local/go/src/bufio/bufio.go:367 +0x34
net/textproto.(*Reader).readLineSlice(0xc42045de30, 0xc4206b9b20, 0xc4206b9b20, 0x4126e8, 0x100, 0x824580)
/usr/local/go/src/net/textproto/reader.go:55 +0x70
net/textproto.(*Reader).ReadLine(0xc42045de30, 0xc42015aa00, 0x0, 0xc4206b9b90, 0x499b02)
/usr/local/go/src/net/textproto/reader.go:36 +0x2b
net/http.readRequest(0xc420132ba0, 0x0, 0xc42015aa00, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:925 +0x99
net/http.(*conn).readRequest(0xc420086500, 0xa279c0, 0xc4201d13c0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:933 +0x17c
net/http.(*conn).serve(0xc420086500, 0xa279c0, 0xc4201d13c0)
/usr/local/go/src/net/http/server.go:1739 +0x50e
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 785 [semacquire]:
sync.runtime_SemacquireMutex(0xc42014a204, 0x74cc00)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc42014a200)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc42014a200)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0xa)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.moveRequestHandler(0xa27380, 0xc42013c0e0, 0xc42015ae00)
/home/pciet/go/src/github.com/pciet/wichess/web_move.go:83 +0x2dd
net/http.HandlerFunc.ServeHTTP(0x850148, 0xa27380, 0xc42013c0e0, 0xc42015ae00)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013c0e0, 0xc42015ae00)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013c0e0, 0xc42015ae00)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc420086460, 0xa279c0, 0xc4201d1240)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 2290 [chan receive]:
main.listeningToGame.func3(0xb, 0xc42036e035, 0x8, 0xc4204a4020, 0x8, 0xc42016a360, 0xc42008b180)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2234 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf970, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420158818, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420158818, 0xc42013ec00, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420158800, 0xc42013ecd1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420158800, 0xc42013ecd1, 0x1, 0x1, 0xc420074060, 0x20002, 0xc420453fa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202e2018, 0xc42013ecd1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc42013ecc0)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2063 [select]:
main.listeningToGame.func2(0xc42001c395, 0x8, 0xc420168180, 0xc420168960, 0x8, 0xd18c2e2800, 0x1a918380, 0xed19d608d, 0xc420153020)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 816 [runnable]:
github.com/pciet/wichess/wichessing.TruncatedAbsPathsForKind(0x4, 0x705, 0x1, 0xc420529fa0)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/path.go:18 +0x458
github.com/pciet/wichess/wichessing.Board.MovesFromPoint(0xc420375680, 0x0, 0xc4203756b0, 0x1, 0xc4203756e0, 0x2, 0xc420375710, 0x3, 0xc420375740, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:214 +0x3a1
github.com/pciet/wichess/wichessing.Board.Move(0xc420375680, 0x0, 0xc4203756b0, 0x1, 0xc4203756e0, 0x2, 0xc420375710, 0x3, 0xc420375740, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:126 +0xdf4
github.com/pciet/wichess/wichessing.Board.AfterMove(0xc4201431a0, 0x0, 0xc4201431d0, 0x1, 0xc420143200, 0x2, 0xc420143230, 0x3, 0xc420143260, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:10 +0x141
github.com/pciet/wichess/wichessing.Board.Check(0xc4201431a0, 0x0, 0xc4201431d0, 0x1, 0xc420143200, 0x2, 0xc420143230, 0x3, 0xc420143260, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:47 +0x267
github.com/pciet/wichess/wichessing.Board.Draw(0xc4202e4000, 0x0, 0xc4202e4038, 0x1, 0xc4202e4070, 0x2, 0xc4202e40a8, 0x3, 0xc4202e40e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_draw.go:17 +0x378
main.game.move(0x7, 0x18, 0x1, 0xc420014978, 0x8, 0x0, 0xbe7af8439539154b, 0x3fd4ab156, 0xa62a80, 0x289219f9, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:45 +0x282
main.moveRequestHandler(0xa27380, 0xc42013c2a0, 0xc42015bb00)
/home/pciet/go/src/github.com/pciet/wichess/web_move.go:104 +0xbf5
net/http.HandlerFunc.ServeHTTP(0x850148, 0xa27380, 0xc42013c2a0, 0xc42015bb00)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013c2a0, 0xc42015bb00)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013c2a0, 0xc42015bb00)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc420086dc0, 0xa279c0, 0xc420166bc0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 817 [runnable]:
github.com/pciet/wichess/wichessing.Board.SurroundingPoints(0xc4202b7c20, 0x0, 0xc4202b7c50, 0x1, 0xc4202b7c80, 0x2, 0xc4202b7cb0, 0x3, 0xc4202b7ce0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:704 +0x8c
github.com/pciet/wichess/wichessing.Board.ActualPaths(0xc4202b7c20, 0x0, 0xc4202b7c50, 0x1, 0xc4202b7c80, 0x2, 0xc4202b7cb0, 0x3, 0xc4202b7ce0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:562 +0xcfd
github.com/pciet/wichess/wichessing.Board.MovesFromPoint(0xc4202b7c20, 0x0, 0xc4202b7c50, 0x1, 0xc4202b7c80, 0x2, 0xc4202b7cb0, 0x3, 0xc4202b7ce0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:215 +0x708
github.com/pciet/wichess/wichessing.Board.Move(0xc4202b7c20, 0x0, 0xc4202b7c50, 0x1, 0xc4202b7c80, 0x2, 0xc4202b7cb0, 0x3, 0xc4202b7ce0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:126 +0xdf4
github.com/pciet/wichess/wichessing.Board.AfterMove(0xc420294d50, 0x0, 0xc420294d80, 0x1, 0xc420294db0, 0x2, 0xc420294de0, 0x3, 0xc420294e10, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:10 +0x141
github.com/pciet/wichess/wichessing.Board.Check(0xc420294d50, 0x0, 0xc420294d80, 0x1, 0xc420294db0, 0x2, 0xc420294de0, 0x3, 0xc420294e10, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:47 +0x267
github.com/pciet/wichess/wichessing.Board.Moves(0xc42043f000, 0x0, 0xc42043f038, 0x1, 0xc42043f070, 0x2, 0xc42043f0a8, 0x3, 0xc42043f0e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:50 +0x4f8
main.game.moves(0x8, 0x19, 0x1, 0xc420380020, 0x7, 0x0, 0x2cc647c0, 0xed19d608d, 0xc42005c180, 0x1234c531, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:266 +0x719
main.movesHandler(0xa27380, 0xc4201f22a0, 0xc42015b200)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:55 +0x31c
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc4201f22a0, 0xc42015b200)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f22a0, 0xc42015b200)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f22a0, 0xc42015b200)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc420086e60, 0xa279c0, 0xc420166d40)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 851 [semacquire]:
sync.runtime_SemacquireMutex(0xc420290564, 0x74cc00)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc420290560)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc420290560)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0xb)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.movesHandler(0xa27380, 0xc42013c7e0, 0xc42015a100)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:48 +0x1da
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42013c7e0, 0xc42015a100)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013c7e0, 0xc42015a100)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013c7e0, 0xc42015a100)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc420087360, 0xa279c0, 0xc420166ec0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 2165 [runnable]:
github.com/pciet/wichess/wichessing.Piece.SetKindFlags(0x6, 0x0, 0x6, 0x0, 0x0, 0x6, 0x0, 0x6, 0x0, 0x0)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/piece.go:123 +0x2e2
github.com/pciet/wichess/wichessing.(*Piece).Copy(0xc42021ec60, 0xc420374420)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/piece.go:220 +0x106
github.com/pciet/wichess/wichessing.Board.Copy(0xc42021e9f0, 0x0, 0xc42021ea20, 0x1, 0xc42021ea50, 0x2, 0xc42021ea80, 0x3, 0xc42021eab0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board.go:21 +0xbd
github.com/pciet/wichess/wichessing.Board.AfterMove(0xc42021e9f0, 0x0, 0xc42021ea20, 0x1, 0xc42021ea50, 0x2, 0xc42021ea80, 0x3, 0xc42021eab0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:9 +0x73
github.com/pciet/wichess/wichessing.Board.Check(0xc42021e9f0, 0x0, 0xc42021ea20, 0x1, 0xc42021ea50, 0x2, 0xc42021ea80, 0x3, 0xc42021eab0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_check.go:47 +0x267
github.com/pciet/wichess/wichessing.Board.Draw(0xc420352000, 0x0, 0xc420352038, 0x1, 0xc420352070, 0x2, 0xc4203520a8, 0x3, 0xc4203520e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_draw.go:17 +0x378
main.listeningToGame.func2(0xc42001ca55, 0x8, 0xc42016a4e0, 0xc42016ab40, 0x9, 0xd18c2e2800, 0x22acec30, 0xed19d608d, 0xc42005c180)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:114 +0x223
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 1388 [semacquire]:
sync.runtime_SemacquireMutex(0xc420290204, 0x74cc00)
/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc420290200)
/usr/local/go/src/sync/mutex.go:134 +0xee
sync.(*RWMutex).Lock(0xc420290200)
/usr/local/go/src/sync/rwmutex.go:93 +0x2d
main.lockGame(0x9)
/home/pciet/go/src/github.com/pciet/wichess/game_lock.go:39 +0x8b
main.movesHandler(0xa27380, 0xc42013c8c0, 0xc42015bc00)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:48 +0x1da
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc42013c8c0, 0xc42015bc00)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc42013c8c0, 0xc42015bc00)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc42013c8c0, 0xc42015bc00)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4202f0000, 0xa279c0, 0xc420167ec0)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 2283 [chan receive]:
main.listeningToGame.func3(0xb, 0xc420372095, 0x7, 0xc4203ac248, 0x8, 0xc42016b2c0, 0xc42060a280)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2242 [chan receive]:
main.listeningToGame.func3(0xa, 0xc4202d6035, 0x7, 0xc4203c0020, 0x8, 0xc42016b140, 0xc4203aea00)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2212 [select]:
main.listeningToGame.func2(0xc4205e4ff5, 0x8, 0xc42016acc0, 0xc42016af60, 0xa, 0xd18c2e2800, 0x29c9d488, 0xed19d608d, 0xc42005c180)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 1389 [runnable]:
github.com/pciet/wichess/wichessing.(*Piece).Copy(0xc420353000, 0x105)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/piece.go:210 +0x16c
github.com/pciet/wichess/wichessing.Board.Copy(0xc420353000, 0x0, 0xc420353038, 0x1, 0xc420353070, 0x2, 0xc4203530a8, 0x3, 0xc4203530e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board.go:21 +0xbd
github.com/pciet/wichess/wichessing.Board.AfterMove(0xc420353000, 0x0, 0xc420353038, 0x1, 0xc420353070, 0x2, 0xc4203530a8, 0x3, 0xc4203530e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_move.go:9 +0x73
github.com/pciet/wichess/wichessing.Board.Moves(0xc420353000, 0x0, 0xc420353038, 0x1, 0xc420353070, 0x2, 0xc4203530a8, 0x3, 0xc4203530e0, 0x4, ...)
/home/pciet/go/src/github.com/pciet/wichess/wichessing/board_moves.go:50 +0x461
main.game.moves(0xa, 0x14, 0x1, 0xc4202e9b28, 0x8, 0x0, 0x2672c60, 0xed19d608e, 0xc4201e2060, 0x14381be7, ...)
/home/pciet/go/src/github.com/pciet/wichess/game_moving.go:266 +0x719
main.movesHandler(0xa27380, 0xc4201f3180, 0xc42015ba00)
/home/pciet/go/src/github.com/pciet/wichess/web_moves.go:55 +0x31c
net/http.HandlerFunc.ServeHTTP(0x850150, 0xa27380, 0xc4201f3180, 0xc42015ba00)
/usr/local/go/src/net/http/server.go:1918 +0x44
net/http.(*ServeMux).ServeHTTP(0xa62540, 0xa27380, 0xc4201f3180, 0xc42015ba00)
/usr/local/go/src/net/http/server.go:2254 +0x130
net/http.serverHandler.ServeHTTP(0xc42007f380, 0xa27380, 0xc4201f3180, 0xc42015ba00)
/usr/local/go/src/net/http/server.go:2619 +0xb4
net/http.(*conn).serve(0xc4202f01e0, 0xa279c0, 0xc420167d40)
/usr/local/go/src/net/http/server.go:1801 +0x71d
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2720 +0x288
goroutine 2408 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dd74c0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc4201fa798, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc4201fa798, 0xc4202ec300, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc4201fa780, 0xc4202ec341, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc4201fa780, 0xc4202ec341, 0x1, 0x1, 0xc420298a20, 0x20002, 0xc42044ffa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202e2048, 0xc4202ec341, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc4202ec330)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2418 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09d3e100, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420162298, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420162298, 0xc4205a4300, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420162280, 0xc4205a43a1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420162280, 0xc4205a43a1, 0x1, 0x1, 0xc420298a20, 0x20002, 0xc42044f7a4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420192090, 0xc4205a43a1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc4205a4390)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2282 [select]:
main.listeningToGame.func2(0xc420372095, 0x7, 0xc42016ae40, 0xc42016b0e0, 0xb, 0xd18c2e2800, 0x31450d68, 0xed19d608d, 0xc4201e2060)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:123 +0x471
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:100 +0x585
goroutine 2413 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf1f0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc42032d598, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc42032d598, 0xc420340f00, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc42032d580, 0xc420340f41, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc42032d580, 0xc420340f41, 0x1, 0x1, 0xc42016a5f8, 0x453de0, 0xc42016a5a0)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420192178, 0xc420340f41, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc420340f30)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2332 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf5b0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420139198, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420139198, 0xc42013f200, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420139180, 0xc42013f2a1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420139180, 0xc42013f2a1, 0x1, 0x1, 0xc420074060, 0x20002, 0xc42044cfa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc42000e140, 0xc42013f2a1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc42013f290)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2342 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dd6bc0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420138818, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420138818, 0xc42041a400, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420138800, 0xc42041a431, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420138800, 0xc42041a431, 0x1, 0x1, 0xc420074060, 0x20002, 0xc42044c7a4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202a4000, 0xc42041a431, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc42041a420)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2424 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbfd30, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420138398, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420138398, 0xc42013e300, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420138380, 0xc42013e3d1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420138380, 0xc42013e3d1, 0x1, 0x1, 0xc420074060, 0x20002, 0xc420028fa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc42000e0a0, 0xc42013e3d1, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc42013e3c0)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2402 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09d3e040, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420162318, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420162318, 0xc4205a4400, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420162300, 0xc4205a4491, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420162300, 0xc4205a4491, 0x1, 0x1, 0xc420074060, 0x20002, 0xc42002cfa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4201920a0, 0xc4205a4491, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc4205a4480)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2055 [chan receive]:
main.listeningToGame.func3(0x7, 0xc420372035, 0x8, 0xc420156138, 0x8, 0xc420168ea0, 0xc42008af00)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2044 [chan receive]:
main.listeningToGame.func3(0x8, 0xc4205cecf5, 0x7, 0xc4205020e0, 0x7, 0xc420168480, 0xc4203ae780)
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:166 +0x42
created by main.listeningToGame
/home/pciet/go/src/github.com/pciet/wichess/game_listening.go:164 +0x184
goroutine 2313 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf8b0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420158898, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420158898, 0xc42015c800, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc420158880, 0xc42015c851, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc420158880, 0xc42015c851, 0x1, 0x1, 0xc420074060, 0x20002, 0xc42044efa4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc4202e2020, 0xc42015c851, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc42015c840)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
goroutine 2373 [IO wait]:
internal/poll.runtime_pollWait(0x7fda09dbf4f0, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc42032c418, 0x72, 0xffffffffffffff00, 0xa244c0, 0xa205e8)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc42032c418, 0xc420293f00, 0x1, 0x1)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc42032c400, 0xc420293f01, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:126 +0x18a
net.(*netFD).Read(0xc42032c400, 0xc420293f01, 0x1, 0x1, 0xc420074060, 0x20002, 0xc4204507a4)
/usr/local/go/src/net/fd_unix.go:202 +0x52
net.(*conn).Read(0xc420192118, 0xc420293f01, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x6d
net/http.(*connReader).backgroundRead(0xc420293ef0)
/usr/local/go/src/net/http/server.go:660 +0x62
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:656 +0xd8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment