panic: want 1 rows updated, got 4
goroutine 13 [running]:
github.com/oursky/skygear/skydb/pq.(*conn).DeleteDeviceByToken(0xc8204fa6e0, 0xc8203df980, 0x40, 0xececf9ed4, 0x0, 0x1083a60, 0x0, 0x0)
/go/src/github.com/oursky/skygear/skydb/pq/device.go:133 +0x4f4
github.com/oursky/skygear/push.(*APNSPusher).recvFeedback(0xc82017eba0)
/go/src/github.com/oursky/skygear/push/apns.go:125 +0x40a
github.com/oursky/skygear/push.(*APNSPusher).RunFeedback(0xc82017eba0)
/go/src/github.com/oursky/skygear/push/apns.go:104 +0x3e7
created by main.initAPNSPusher
/go/src/github.com/oursky/skygear/main.go:304 +0x1b8
goroutine 1 [IO wait, 2 minutes]:
net.runtime_pollWait(0x7f651e8d1c40, 0x72, 0xc820018150)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc820179e20, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820179e20, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).accept(0xc820179dc0, 0x0, 0x7f651e8d76b0, 0xc8204f3a00)
/usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(*TCPListener).AcceptTCP(0xc820028338, 0x45cc30, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
net/http.tcpKeepAliveListener.Accept(0xc820028338, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:2135 +0x41
net/http.(*Server).Serve(0xc820187e60, 0x7f651e8d7678, 0xc820028338, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1887 +0xb3
net/http.(*Server).ListenAndServe(0xc820187e60, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1877 +0x136
net/http.ListenAndServe(0xc8200ffbb0, 0x5, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1967 +0x8f
main.main()
/go/src/github.com/oursky/skygear/main.go:205 +0x39e8
goroutine 17 [syscall, 736 minutes, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1721 +0x1
goroutine 5 [chan receive, 736 minutes]:
github.com/getsentry/raven-go.(*Client).worker(0xc820080e60)
/go/src/github.com/getsentry/raven-go/client.go:414 +0x60
created by github.com/getsentry/raven-go.newClient
/go/src/github.com/getsentry/raven-go/client.go:304 +0x192
goroutine 8 [chan receive]:
github.com/oursky/skygear/skydb/pq.dbInitializer()
/go/src/github.com/oursky/skygear/skydb/pq/pq.go:104 +0x95
created by github.com/oursky/skygear/skydb/pq.init.2
/go/src/github.com/oursky/skygear/skydb/pq/pq.go:150 +0x7b
goroutine 9 [chan receive, 736 minutes]:
github.com/getsentry/raven-go.(*Client).worker(0xc820081ae0)
/go/src/github.com/getsentry/raven-go/client.go:414 +0x60
created by github.com/getsentry/raven-go.newClient
/go/src/github.com/getsentry/raven-go/client.go:304 +0x192
goroutine 10 [chan receive, 736 minutes]:
database/sql.(*DB).connectionOpener(0xc820081b80)
/usr/local/go/src/database/sql/sql.go:634 +0x45
created by database/sql.Open
/usr/local/go/src/database/sql/sql.go:481 +0x336
goroutine 11 [select, 58 minutes]:
github.com/timehop/apns.(*Client).runLoop(0xc820152020)
/go/src/github.com/timehop/apns/client.go:153 +0x970
created by github.com/timehop/apns.newClientWithConn
/go/src/github.com/timehop/apns/client.go:46 +0x148
goroutine 12 [chan receive, 736 minutes]:
github.com/oursky/skygear/push.(*APNSPusher).Run(0xc82017eba0)
/go/src/github.com/oursky/skygear/push/apns.go:80 +0xa0
created by main.initAPNSPusher
/go/src/github.com/oursky/skygear/main.go:303 +0x196
goroutine 14 [select, 2 minutes]:
github.com/oursky/skygear/subscription.(*Service).Run(0xc820185660)
/go/src/github.com/oursky/skygear/subscription/service.go:36 +0x7ee
created by main.initSubscription
/go/src/github.com/oursky/skygear/main.go:324 +0x396
goroutine 27 [select, 2 minutes]:
github.com/oursky/skygear/pubsub.(*Hub).run(0xc820181fc0)
/go/src/github.com/oursky/skygear/pubsub/hub.go:43 +0x634
created by github.com/oursky/skygear/pubsub.NewWsPubsub
/go/src/github.com/oursky/skygear/pubsub/ws.go:49 +0x33e
goroutine 37530 [IO wait, 58 minutes]:
net.runtime_pollWait(0x7f651e8d1880, 0x72, 0xc820018150)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc820281720, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820281720, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc8202816c0, 0xc820087800, 0x400, 0x400, 0x0, 0x7f651e8cc050, 0xc820018150)
/usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(*conn).Read(0xc820521978, 0xc820087800, 0x400, 0x400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
crypto/tls.(*block).readFromUntil(0xc820399a10, 0x7f651e8d2000, 0xc820521978, 0x5, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:455 +0xcc
crypto/tls.(*Conn).readRecord(0xc82057a2c0, 0xc72e17, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:540 +0x2d1
crypto/tls.(*Conn).Read(0xc82057a2c0, 0xc8204629c0, 0x6, 0x6, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:901 +0x167
github.com/timehop/apns.(*Conn).Read(0xc82014a360, 0xc8204629c0, 0x6, 0x6, 0x6, 0x0, 0x0)
/go/src/github.com/timehop/apns/conn.go:88 +0x6a
github.com/timehop/apns.readErrs.func1(0xc82014a360, 0xc8205384e0)
/go/src/github.com/timehop/apns/client.go:208 +0x7f
created by github.com/timehop/apns.readErrs
/go/src/github.com/timehop/apns/client.go:216 +0x5d
goroutine 28 [select, 736 minutes]:
github.com/oursky/skygear/pubsub.(*Hub).run(0xc820181480)
/go/src/github.com/oursky/skygear/pubsub/hub.go:43 +0x634
created by github.com/oursky/skygear/pubsub.NewWsPubsub
/go/src/github.com/oursky/skygear/pubsub/ws.go:49 +0x33e
goroutine 25 [IO wait, 2 minutes]:
net.runtime_pollWait(0x7f651e8d1d00, 0x72, 0xc820018150)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0xc8201786f0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc8201786f0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc820178690, 0xc82011b000, 0x1000, 0x1000, 0x0, 0x7f651e8cc050, 0xc820018150)
/usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(*conn).Read(0xc820028268, 0xc82011b000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
bufio.(*Reader).fill(0xc8201867e0)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(*Reader).Read(0xc8201867e0, 0xc82019c020, 0x5, 0x200, 0x41a787, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:207 +0x260
io.ReadAtLeast(0x7f651e8d2028, 0xc8201867e0, 0xc82019c020, 0x5, 0x200, 0x5, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0x7f651e8d2028, 0xc8201867e0, 0xc82019c020, 0x5, 0x200, 0xc8204e3b00, 0x0, 0x0)
/usr/local/go/src/io/io.go:316 +0x62
github.com/lib/pq.(*conn).recvMessage(0xc82019c000, 0xc820034f40, 0xc820034f58, 0x0, 0x0)
/go/src/github.com/lib/pq/conn.go:820 +0x15a
github.com/lib/pq.(*ListenerConn).listenerConnLoop(0xc820181f40, 0x0, 0x0)
/go/src/github.com/lib/pq/notify.go:135 +0xd7
github.com/lib/pq.(*ListenerConn).listenerConnMain(0xc820181f40)
/go/src/github.com/lib/pq/notify.go:184 +0x25
created by github.com/lib/pq.NewListenerConn
/go/src/github.com/lib/pq/notify.go:77 +0x17b
goroutine 22 [chan receive, 736 minutes]:
database/sql.(*DB).connectionOpener(0xc820163ae0)
/usr/local/go/src/database/sql/sql.go:634 +0x45
created by database/sql.Open
/usr/local/go/src/database/sql/sql.go:481 +0x336
goroutine 23 [select, 2 minutes]:
github.com/oursky/skygear/skydb/pq.(*recordListener).Listen(0xc820185980)
/go/src/github.com/oursky/skygear/skydb/pq/listener.go:101 +0x9df
created by github.com/oursky/skygear/skydb/pq.(*conn).Subscribe.func1
/go/src/github.com/oursky/skygear/skydb/pq/listener.go:29 +0x58
goroutine 24 [chan receive, 2 minutes]:
github.com/lib/pq.(*Listener).listenerConnLoop(0xc820186720)
/go/src/github.com/lib/pq/notify.go:745 +0x1ee
github.com/lib/pq.(*Listener).listenerMain(0xc820186720)
/go/src/github.com/lib/pq/notify.go:764 +0x21
created by github.com/lib/pq.NewListener
/go/src/github.com/lib/pq/notify.go:436 +0x1fa
goroutine 29 [select]:
github.com/robfig/cron.(*Cron).run(0xc820181400)
/go/src/github.com/robfig/cron/cron.go:152 +0x9eb
created by github.com/robfig/cron.(*Cron).Start
/go/src/github.com/robfig/cron/cron.go:127 +0x40
goroutine 30 [syscall, locked to thread]:
github.com/zeromq/goczmq._Cfunc_zpoller_wait(0x7f6510001ca0, 0xc8000003e8, 0x0)
github.com/zeromq/goczmq/_obj/_cgo_gotypes.go:618 +0x3a
github.com/zeromq/goczmq.(*Poller).Wait(0xc8201f25e0, 0x3e8, 0x1083a60)
/go/src/github.com/zeromq/goczmq/poller.go:87 +0x83
github.com/oursky/skygear/plugin/zmq.(*Broker).Run(0xc8201e62c0)
/go/src/github.com/oursky/skygear/plugin/zmq/broker.go:76 +0x1124
github.com/oursky/skygear/plugin/zmq.zmqTransportFactory.Open.func1(0xc8201e6300, 0xc8201f5b00, 0xf, 0xc8200fded0, 0xc, 0xc8201e62c0)
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:302 +0x18d
created by github.com/oursky/skygear/plugin/zmq.zmqTransportFactory.Open
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:303 +0x4fb
goroutine 31 [syscall, locked to thread]:
github.com/zeromq/goczmq._Cfunc_zpoller_wait(0x13da500, 0xc8000003e8, 0x0)
github.com/zeromq/goczmq/_obj/_cgo_gotypes.go:618 +0x3a
github.com/zeromq/goczmq.(*Poller).Wait(0xc8201f2620, 0x3e8, 0x1083a60)
/go/src/github.com/zeromq/goczmq/poller.go:87 +0x83
github.com/oursky/skygear/plugin/zmq.(*Broker).Run(0xc8201e6380)
/go/src/github.com/oursky/skygear/plugin/zmq/broker.go:76 +0x1124
github.com/oursky/skygear/plugin/zmq.zmqTransportFactory.Open.func1(0xc8201e63c0, 0xc8201f2440, 0x11, 0xc8200fe9e0, 0xc, 0xc8201e6380)
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:302 +0x18d
created by github.com/oursky/skygear/plugin/zmq.zmqTransportFactory.Open
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:303 +0x4fb
goroutine 32 [syscall, locked to thread]:
github.com/zeromq/goczmq._Cfunc_zpoller_wait(0x7f6508001d10, 0xc8000003e8, 0x0)
github.com/zeromq/goczmq/_obj/_cgo_gotypes.go:618 +0x3a
github.com/zeromq/goczmq.(*Poller).Wait(0xc8201f2660, 0x3e8, 0x1083a60)
/go/src/github.com/zeromq/goczmq/poller.go:87 +0x83
github.com/oursky/skygear/plugin/zmq.(*Broker).Run(0xc8201e6440)
/go/src/github.com/oursky/skygear/plugin/zmq/broker.go:76 +0x1124
github.com/oursky/skygear/plugin/zmq.zmqTransportFactory.Open.func1(0xc8201e6480, 0xc8201f2480, 0x11, 0xc8200ff4f0, 0xc, 0xc8201e6440)
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:302 +0x18d
created by github.com/oursky/skygear/plugin/zmq.zmqTransportFactory.Open
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:303 +0x4fb
goroutine 33 [chan receive, 736 minutes]:
github.com/oursky/skygear/plugin/zmq.(*zmqTransport).RequestInit(0xc8200ecb40)
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:117 +0x77
created by github.com/oursky/skygear/plugin.(*Plugin).Init
/go/src/github.com/oursky/skygear/plugin/plugin.go:134 +0x28b
goroutine 34 [chan receive, 736 minutes]:
github.com/oursky/skygear/plugin/zmq.(*zmqTransport).RequestInit(0xc8200ecd80)
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:117 +0x77
created by github.com/oursky/skygear/plugin.(*Plugin).Init
/go/src/github.com/oursky/skygear/plugin/plugin.go:134 +0x28b
goroutine 35 [chan receive, 736 minutes]:
github.com/oursky/skygear/plugin/zmq.(*zmqTransport).RequestInit(0xc8200ecfc0)
/go/src/github.com/oursky/skygear/plugin/zmq/rpc.go:117 +0x77
created by github.com/oursky/skygear/plugin.(*Plugin).Init
/go/src/github.com/oursky/skygear/plugin/plugin.go:134 +0x28b