Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fiatrates: Implement a fiat rate oracle for tatanka #2736

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

ukane-philemon
Copy link
Contributor

Closes #2727

The new code in fiatrate pkg would eventually replace the existing providers we use elsewhere. That will be the focus of another effort.

Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
Copy link
Member

@JoeGruffins JoeGruffins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried running the tatanka demo but got a hang. Do I need to wait 5 minues for the first tick?

hang and SIGQUIT
2024-04-15 17:38:58.819 [TRC] SRV[127.0.0.1:35055]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[2,132,95,118,22,127,186,57,139,177,66,218,159,96,43,115,84,69,160,98,133,213,143,188,44,48,26,252,29,231,20,14,24],"topic":"fiat_rate","subject":"doge","messageType":"new_subscriber","stamp":"2024-04-15T17:38:58.819188647+09:00"}
2024-04-15 17:38:58.819 [TRC] SRV[127.0.0.1:42305]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"firo"}
2024-04-15 17:38:58.819 [TRC] SRV[127.0.0.1:35055]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[2,132,95,118,22,127,186,57,139,177,66,218,159,96,43,115,84,69,160,98,133,213,143,188,44,48,26,252,29,231,20,14,24],"topic":"fiat_rate","subject":"firo","messageType":"new_subscriber","stamp":"2024-04-15T17:38:58.819747335+09:00"}
2024-04-15 17:38:58.820 [TRC] SRV[127.0.0.1:42305]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"polygon"}
2024-04-15 17:38:58.820 [TRC] SRV[127.0.0.1:35055]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[2,132,95,118,22,127,186,57,139,177,66,218,159,96,43,115,84,69,160,98,133,213,143,188,44,48,26,252,29,231,20,14,24],"topic":"fiat_rate","subject":"polygon","messageType":"new_subscriber","stamp":"2024-04-15T17:38:58.820354103+09:00"}
2024-04-15 17:38:58.820 [TRC] SRV[127.0.0.1:42305]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"zec"}
2024-04-15 17:38:58.821 [TRC] SRV[127.0.0.1:35055]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[2,132,95,118,22,127,186,57,139,177,66,218,159,96,43,115,84,69,160,98,133,213,143,188,44,48,26,252,29,231,20,14,24],"topic":"fiat_rate","subject":"zec","messageType":"new_subscriber","stamp":"2024-04-15T17:38:58.82088026+09:00"}
Shutting down...
2024-04-15 17:39:22.924 [INF] COMMS: Server shutting down...
2024-04-15 17:39:22.924 [TRC] COMMS[WS]: Sent 6 and dropped 0 messages to 127.0.0.1 before shutdown.
2024-04-15 17:39:22.924 [TRC] COMMS[WS]: Sent 21 and dropped 0 messages to 127.0.0.1 before shutdown.
2024-04-15 17:39:22.924 [DBG] COMMS: RPC listener done for 127.0.0.1:42305
2024-04-15 17:39:22.924 [DBG] CL[ws://127.0.0.1:42305]: Sending close 1000 (normal) message.
2024-04-15 17:39:22.924 [TRC] COMMS[WS]: Sent 20 and dropped 0 messages to 127.0.0.1 before shutdown.
2024-04-15 17:39:22.924 [INF] COMMS: Server shutting down...
2024-04-15 17:39:22.924 [INF] tCL[1:127.0.0.1:35055][tTC][TCP]: WebSockets client for ws://127.0.0.1:35055/ws has disconnected
2024-04-15 17:39:22.924 [DBG] tCL[1:127.0.0.1:35055][tTC][TCP][TC]: Sending close 1000 (normal) message.
2024-04-15 17:39:22.924 [DBG] COMMS: RPC listener done for 127.0.0.1:35055
2024-04-15 17:39:22.924 [INF] tCL[0:127.0.0.1:42305][tTC][TCP]: WebSockets client for ws://127.0.0.1:42305/ws has disconnected
2024-04-15 17:39:22.924 [TRC] COMMS: Disconnected websocket client 127.0.0.1
2024-04-15 17:39:22.924 [TRC] COMMS: Disconnected websocket client 127.0.0.1
2024-04-15 17:39:22.924 [DBG] tCL[0:127.0.0.1:42305][tTC][TCP][TC]: Sending close 1000 (normal) message.
2024-04-15 17:39:22.924 [INF] COMMS: Server shutdown complete
2024-04-15 17:39:22.924 [TRC] COMMS: Disconnected websocket client 127.0.0.1
2024-04-15 17:39:22.924 [INF] COMMS: Server shutdown complete
SIGQUIT: quit
PC=0x47b5a1 m=0 sigcode=128

goroutine 0 gp=0x11881a0 m=0 mp=0x1188d60 [idle]:
runtime.futex(0x1188ea0, 0x80, 0x0, 0x0, 0x0, 0x0)
	/usr/lib/go/src/runtime/sys_linux_amd64.s:557 +0x21 fp=0x7ffcc5482d70 sp=0x7ffcc5482d68 pc=0x47b5a1
runtime.futexsleep(0x7ffcc5482de8?, 0x11881a0?, 0x7ffcc5482de8?)
	/usr/lib/go/src/runtime/os_linux.go:69 +0x30 fp=0x7ffcc5482dc0 sp=0x7ffcc5482d70 pc=0x43b910
runtime.notesleep(0x1188ea0)
	/usr/lib/go/src/runtime/lock_futex.go:170 +0x87 fp=0x7ffcc5482df8 sp=0x7ffcc5482dc0 pc=0x411ea7
runtime.mPark(...)
	/usr/lib/go/src/runtime/proc.go:1761
runtime.stoplockedm()
	/usr/lib/go/src/runtime/proc.go:3026 +0x73 fp=0x7ffcc5482e50 sp=0x7ffcc5482df8 pc=0x446fb3
runtime.schedule()
	/usr/lib/go/src/runtime/proc.go:3847 +0x3a fp=0x7ffcc5482e88 sp=0x7ffcc5482e50 pc=0x4492da
runtime.park_m(0xc0001d0380)
	/usr/lib/go/src/runtime/proc.go:4036 +0x1ec fp=0x7ffcc5482ee0 sp=0x7ffcc5482e88 pc=0x44992c
runtime.mcall()
	/usr/lib/go/src/runtime/asm_amd64.s:458 +0x4e fp=0x7ffcc5482ef8 sp=0x7ffcc5482ee0 pc=0x47770e

goroutine 1 gp=0xc0000061c0 m=nil [chan receive]:
runtime.gopark(0xc00b268780?, 0xc00b3055e0?, 0x80?, 0xe0?, 0xc00b318970?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00040b650 sp=0xc00040b630 pc=0x44206e
runtime.chanrecv(0xc00038fb00, 0x0, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc00040b6c8 sp=0xc00040b650 pc=0x40c39f
runtime.chanrecv1(0xc000360000?, 0xc00007c058?)
	/usr/lib/go/src/runtime/chan.go:442 +0x12 fp=0xc00040b6f0 sp=0xc00040b6c8 pc=0x40bfb2
main.mainErr()
	/home/joe/git/dcrdex/tatanka/cmd/demo/main.go:258 +0x204b fp=0xc00040bf08 sp=0xc00040b6f0 pc=0x9dd0cb
main.main()
	/home/joe/git/dcrdex/tatanka/cmd/demo/main.go:37 +0x13 fp=0xc00040bf50 sp=0xc00040bf08 pc=0x9db033
runtime.main()
	/usr/lib/go/src/runtime/proc.go:271 +0x29d fp=0xc00040bfe0 sp=0xc00040bf50 pc=0x441c1d
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00040bfe8 sp=0xc00040bfe0 pc=0x479741

goroutine 2 gp=0xc000006c40 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000078fa8 sp=0xc000078f88 pc=0x44206e
runtime.goparkunlock(...)
	/usr/lib/go/src/runtime/proc.go:408
runtime.forcegchelper()
	/usr/lib/go/src/runtime/proc.go:326 +0xb3 fp=0xc000078fe0 sp=0xc000078fa8 pc=0x441ed3
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000078fe8 sp=0xc000078fe0 pc=0x479741
created by runtime.init.6 in goroutine 1
	/usr/lib/go/src/runtime/proc.go:314 +0x1a

goroutine 3 gp=0xc000007180 m=nil [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000079780 sp=0xc000079760 pc=0x44206e
runtime.goparkunlock(...)
	/usr/lib/go/src/runtime/proc.go:408
runtime.bgsweep(0xc000030070)
	/usr/lib/go/src/runtime/mgcsweep.go:318 +0xdf fp=0xc0000797c8 sp=0xc000079780 pc=0x42bb7f
runtime.gcenable.gowrap1()
	/usr/lib/go/src/runtime/mgc.go:203 +0x25 fp=0xc0000797e0 sp=0xc0000797c8 pc=0x420485
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000797e8 sp=0xc0000797e0 pc=0x479741
created by runtime.gcenable in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:203 +0x66

goroutine 4 gp=0xc000007340 m=nil [GC scavenge wait]:
runtime.gopark(0x10000?, 0xd093a8?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000079f78 sp=0xc000079f58 pc=0x44206e
runtime.goparkunlock(...)
	/usr/lib/go/src/runtime/proc.go:408
runtime.(*scavengerState).park(0x1187ba0)
	/usr/lib/go/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000079fa8 sp=0xc000079f78 pc=0x429529
runtime.bgscavenge(0xc000030070)
	/usr/lib/go/src/runtime/mgcscavenge.go:658 +0x59 fp=0xc000079fc8 sp=0xc000079fa8 pc=0x429ad9
runtime.gcenable.gowrap2()
	/usr/lib/go/src/runtime/mgc.go:204 +0x25 fp=0xc000079fe0 sp=0xc000079fc8 pc=0x420425
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000079fe8 sp=0xc000079fe0 pc=0x479741
created by runtime.gcenable in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:204 +0xa5

goroutine 5 gp=0xc000007c00 m=nil [finalizer wait]:
runtime.gopark(0xc000078648?, 0x413b65?, 0xa8?, 0x1?, 0xc0000061c0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000078620 sp=0xc000078600 pc=0x44206e
runtime.runfinq()
	/usr/lib/go/src/runtime/mfinal.go:194 +0x107 fp=0xc0000787e0 sp=0xc000078620 pc=0x41f4c7
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000787e8 sp=0xc0000787e0 pc=0x479741
created by runtime.createfing in goroutine 1
	/usr/lib/go/src/runtime/mfinal.go:164 +0x3d

goroutine 6 gp=0xc0001d0380 m=nil [select, locked to thread]:
runtime.gopark(0xc00007a7a8?, 0x2?, 0x9?, 0x23?, 0xc00007a794?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00007a638 sp=0xc00007a618 pc=0x44206e
runtime.selectgo(0xc00007a7a8, 0xc00007a790, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00007a758 sp=0xc00007a638 pc=0x453ea5
runtime.ensureSigM.func1()
	/usr/lib/go/src/runtime/signal_unix.go:1034 +0x19f fp=0xc00007a7e0 sp=0xc00007a758 pc=0x470a9f
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00007a7e8 sp=0xc00007a7e0 pc=0x479741
created by runtime.ensureSigM in goroutine 1
	/usr/lib/go/src/runtime/signal_unix.go:1017 +0xc8

goroutine 18 gp=0xc000102700 m=4 mp=0xc00007f808 [syscall]:
runtime.notetsleepg(0x11e9a80, 0xffffffffffffffff)
	/usr/lib/go/src/runtime/lock_futex.go:246 +0x29 fp=0xc0000747a0 sp=0xc000074778 pc=0x412189
os/signal.signal_recv()
	/usr/lib/go/src/runtime/sigqueue.go:152 +0x29 fp=0xc0000747c0 sp=0xc0000747a0 pc=0x475f09
os/signal.loop()
	/usr/lib/go/src/os/signal/signal_unix.go:23 +0x13 fp=0xc0000747e0 sp=0xc0000747c0 pc=0x57c433
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000747e8 sp=0xc0000747e0 pc=0x479741
created by os/signal.Notify.func1.1 in goroutine 1
	/usr/lib/go/src/os/signal/signal.go:151 +0x1f

goroutine 24 gp=0xc000102a80 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000075f50 sp=0xc000075f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000075fe0 sp=0xc000075f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000075fe8 sp=0xc000075fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 25 gp=0xc000102c40 m=nil [GC worker (idle)]:
runtime.gopark(0xc000075780?, 0x40b297?, 0x0?, 0x63?, 0xc0000757a8?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000075750 sp=0xc000075730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0000757e0 sp=0xc000075750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000757e8 sp=0xc0000757e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 7 gp=0xc0001d0540 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00007af50 sp=0xc00007af30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc00007afe0 sp=0xc00007af50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00007afe8 sp=0xc00007afe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 34 gp=0xc000382380 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000396750 sp=0xc000396730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0003967e0 sp=0xc000396750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003967e8 sp=0xc0003967e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 35 gp=0xc000382540 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000396f50 sp=0xc000396f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000396fe0 sp=0xc000396f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000396fe8 sp=0xc000396fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 8 gp=0xc0001d0700 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00007b750 sp=0xc00007b730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc00007b7e0 sp=0xc00007b750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00007b7e8 sp=0xc00007b7e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 9 gp=0xc0001d08c0 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00007bf50 sp=0xc00007bf30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc00007bfe0 sp=0xc00007bf50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00007bfe8 sp=0xc00007bfe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 26 gp=0xc000102e00 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000076750 sp=0xc000076730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0000767e0 sp=0xc000076750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000767e8 sp=0xc0000767e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 36 gp=0xc000382700 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000397750 sp=0xc000397730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0003977e0 sp=0xc000397750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003977e8 sp=0xc0003977e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 27 gp=0xc000102fc0 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000076f50 sp=0xc000076f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000076fe0 sp=0xc000076f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000076fe8 sp=0xc000076fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 10 gp=0xc0001d0a80 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000392750 sp=0xc000392730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0003927e0 sp=0xc000392750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003927e8 sp=0xc0003927e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 37 gp=0xc0003828c0 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000397f50 sp=0xc000397f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000397fe0 sp=0xc000397f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000397fe8 sp=0xc000397fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 11 gp=0xc0001d0c40 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000392f50 sp=0xc000392f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000392fe0 sp=0xc000392f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000392fe8 sp=0xc000392fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 38 gp=0xc000382a80 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000398750 sp=0xc000398730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0003987e0 sp=0xc000398750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003987e8 sp=0xc0003987e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 28 gp=0xc000103180 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000077750 sp=0xc000077730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0000777e0 sp=0xc000077750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000777e8 sp=0xc0000777e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 12 gp=0xc0001d0e00 m=nil [GC worker (idle)]:
runtime.gopark(0x178c5bc16e23?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000393750 sp=0xc000393730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0003937e0 sp=0xc000393750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003937e8 sp=0xc0003937e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 39 gp=0xc000382c40 m=nil [GC worker (idle)]:
runtime.gopark(0x11ea500?, 0x1?, 0x65?, 0x6a?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000398f50 sp=0xc000398f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000398fe0 sp=0xc000398f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000398fe8 sp=0xc000398fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 29 gp=0xc000103340 m=nil [GC worker (idle)]:
runtime.gopark(0x178c5bc20439?, 0x3?, 0x9f?, 0xb9?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000077f50 sp=0xc000077f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000077fe0 sp=0xc000077f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000077fe8 sp=0xc000077fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 13 gp=0xc0001d0fc0 m=nil [GC worker (idle)]:
runtime.gopark(0x11ea500?, 0x1?, 0x8c?, 0x8f?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000393f50 sp=0xc000393f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000393fe0 sp=0xc000393f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000393fe8 sp=0xc000393fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 40 gp=0xc000382e00 m=nil [GC worker (idle)]:
runtime.gopark(0x11ea500?, 0x1?, 0x71?, 0xad?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000399750 sp=0xc000399730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0003997e0 sp=0xc000399750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003997e8 sp=0xc0003997e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 30 gp=0xc000103500 m=nil [GC worker (idle)]:
runtime.gopark(0x178c5bbc8156?, 0x1?, 0xf9?, 0x47?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000476750 sp=0xc000476730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0004767e0 sp=0xc000476750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0004767e8 sp=0xc0004767e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 41 gp=0xc000382fc0 m=nil [GC worker (idle)]:
runtime.gopark(0x11ea500?, 0x1?, 0x7?, 0x8c?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000399f50 sp=0xc000399f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000399fe0 sp=0xc000399f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000399fe8 sp=0xc000399fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 14 gp=0xc0001d1180 m=nil [GC worker (idle)]:
runtime.gopark(0x11ea500?, 0x1?, 0xff?, 0x9b?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000394750 sp=0xc000394730 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc0003947e0 sp=0xc000394750 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003947e8 sp=0xc0003947e0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 31 gp=0xc0001036c0 m=nil [GC worker (idle)]:
runtime.gopark(0x178c5bc1a29e?, 0x1?, 0x9e?, 0x6?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000476f50 sp=0xc000476f30 pc=0x44206e
runtime.gcBgMarkWorker()
	/usr/lib/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc000476fe0 sp=0xc000476f50 pc=0x422565
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000476fe8 sp=0xc000476fe0 pc=0x479741
created by runtime.gcBgMarkStartWorkers in goroutine 1
	/usr/lib/go/src/runtime/mgc.go:1234 +0x1c

goroutine 16 gp=0xc000103dc0 m=nil [select]:
runtime.gopark(0xc000511da0?, 0x2?, 0xfc?, 0x89?, 0xc000511ca4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000511b38 sp=0xc000511b18 pc=0x44206e
runtime.selectgo(0xc000511da0, 0xc000511ca0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000511c58 sp=0xc000511b38 pc=0x453ea5
github.com/dgraph-io/badger/y.(*WaterMark).process(0xc0000a2600, 0xc000012af8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:229 +0x285 fp=0xc000511fc0 sp=0xc000511c58 pc=0x933905
github.com/dgraph-io/badger/y.(*WaterMark).Init.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x25 fp=0xc000511fe0 sp=0xc000511fc0 pc=0x933285
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000511fe8 sp=0xc000511fe0 pc=0x479741
created by github.com/dgraph-io/badger/y.(*WaterMark).Init in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x127

goroutine 50 gp=0xc0004f6700 m=nil [select]:
runtime.gopark(0xc000088da0?, 0x2?, 0x38?, 0xbe?, 0xc000088ca4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000088b38 sp=0xc000088b18 pc=0x44206e
runtime.selectgo(0xc000088da0, 0xc000088ca0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000088c58 sp=0xc000088b38 pc=0x453ea5
github.com/dgraph-io/badger/y.(*WaterMark).process(0xc0000a2840, 0xc000012af8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:229 +0x285 fp=0xc000088fc0 sp=0xc000088c58 pc=0x933905
github.com/dgraph-io/badger/y.(*WaterMark).Init.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x25 fp=0xc000088fe0 sp=0xc000088fc0 pc=0x933285
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000088fe8 sp=0xc000088fe0 pc=0x479741
created by github.com/dgraph-io/badger/y.(*WaterMark).Init in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x127

goroutine 51 gp=0xc0004f68c0 m=nil [select]:
runtime.gopark(0xc000478f60?, 0x2?, 0x0?, 0xc0?, 0xc000478f54?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000478df8 sp=0xc000478dd8 pc=0x44206e
runtime.selectgo(0xc000478f60, 0xc000478f50, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000478f18 sp=0xc000478df8 pc=0x453ea5
github.com/dgraph-io/badger.(*DB).updateSize(0xc000272a88, 0xc000012b70)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:1029 +0x108 fp=0xc000478fc0 sp=0xc000478f18 pc=0x94c448
github.com/dgraph-io/badger.Open.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:293 +0x25 fp=0xc000478fe0 sp=0xc000478fc0 pc=0x948205
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000478fe8 sp=0xc000478fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:293 +0xedd

goroutine 66 gp=0xc0004f6a80 m=nil [select]:
runtime.gopark(0xc00033df40?, 0x2?, 0x0?, 0xad?, 0xc00033ded4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00033dd78 sp=0xc00033dd58 pc=0x44206e
runtime.selectgo(0xc00033df40, 0xc00033ded0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00033de98 sp=0xc00033dd78 pc=0x453ea5
github.com/dgraph-io/badger.(*levelsController).runWorker(0xc000266230, 0xc000012168)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:376 +0x1d8 fp=0xc00033dfc0 sp=0xc00033de98 pc=0x959ed8
github.com/dgraph-io/badger.(*levelsController).startCompact.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x25 fp=0xc00033dfe0 sp=0xc00033dfc0 pc=0x959cc5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00033dfe8 sp=0xc00033dfe0 pc=0x479741
created by github.com/dgraph-io/badger.(*levelsController).startCompact in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x59

goroutine 67 gp=0xc0004f6c40 m=nil [select]:
runtime.gopark(0xc00b30df40?, 0x2?, 0x0?, 0xad?, 0xc00b30ded4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00b30dd78 sp=0xc00b30dd58 pc=0x44206e
runtime.selectgo(0xc00b30df40, 0xc00b30ded0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00b30de98 sp=0xc00b30dd78 pc=0x453ea5
github.com/dgraph-io/badger.(*levelsController).runWorker(0xc000266230, 0xc000012168)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:376 +0x1d8 fp=0xc00b30dfc0 sp=0xc00b30de98 pc=0x959ed8
github.com/dgraph-io/badger.(*levelsController).startCompact.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x25 fp=0xc00b30dfe0 sp=0xc00b30dfc0 pc=0x959cc5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00b30dfe8 sp=0xc00b30dfe0 pc=0x479741
created by github.com/dgraph-io/badger.(*levelsController).startCompact in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x59

goroutine 68 gp=0xc0004f6e00 m=nil [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000479e30 sp=0xc000479e10 pc=0x44206e
runtime.chanrecv(0xc0001266c0, 0xc000479f68, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc000479ea8 sp=0xc000479e30 pc=0x40c39f
runtime.chanrecv2(0x0?, 0x0?)
	/usr/lib/go/src/runtime/chan.go:447 +0x12 fp=0xc000479ed0 sp=0xc000479ea8 pc=0x40bfd2
github.com/dgraph-io/badger.(*DB).flushMemtable(0xc000272a88, 0x0?)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:943 +0xb0 fp=0xc000479fc0 sp=0xc000479ed0 pc=0x94bbd0
github.com/dgraph-io/badger.Open.func4()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:310 +0x1e fp=0xc000479fe0 sp=0xc000479fc0 pc=0x9481be
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000479fe8 sp=0xc000479fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:309 +0x11be

goroutine 71 gp=0xc0004f6fc0 m=nil [select]:
runtime.gopark(0xc000394f70?, 0x2?, 0xfc?, 0x89?, 0xc000394f04?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000394d90 sp=0xc000394d70 pc=0x44206e
runtime.selectgo(0xc000394f70, 0xc000394f00, 0x29?, 0x0, 0xc000014120?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000394eb0 sp=0xc000394d90 pc=0x453ea5
github.com/dgraph-io/badger.(*DB).doWrites(0xc000272a88, 0xc0000127f8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:722 +0x211 fp=0xc000394fc0 sp=0xc000394eb0 pc=0x94a231
github.com/dgraph-io/badger.Open.gowrap3()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:344 +0x25 fp=0xc000394fe0 sp=0xc000394fc0 pc=0x947725
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000394fe8 sp=0xc000394fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:344 +0x176d

goroutine 70 gp=0xc0004f7180 m=nil [select]:
runtime.gopark(0xc000477f50?, 0x2?, 0x5b?, 0xc0?, 0xc000477f34?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000477dd8 sp=0xc000477db8 pc=0x44206e
runtime.selectgo(0xc000477f50, 0xc000477f30, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000477ef8 sp=0xc000477dd8 pc=0x453ea5
github.com/dgraph-io/badger.(*valueLog).flushDiscardStats(0xc000272bf8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:1594 +0x14a fp=0xc000477fc8 sp=0xc000477ef8 pc=0x97a92a
github.com/dgraph-io/badger.(*valueLog).open.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:849 +0x25 fp=0xc000477fe0 sp=0xc000477fc8 pc=0x9766e5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000477fe8 sp=0xc000477fe0 pc=0x479741
created by github.com/dgraph-io/badger.(*valueLog).open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:849 +0x85

goroutine 72 gp=0xc0004f7340 m=nil [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc0003956e0 sp=0xc0003956c0 pc=0x44206e
runtime.chanrecv(0xc0001424e0, 0x0, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc000395758 sp=0xc0003956e0 pc=0x40c39f
runtime.chanrecv1(0x0?, 0x0?)
	/usr/lib/go/src/runtime/chan.go:442 +0x12 fp=0xc000395780 sp=0xc000395758 pc=0x40bfb2
github.com/dgraph-io/badger.(*valueLog).waitOnGC(0xc000272bf8, 0x0?)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:1501 +0x65 fp=0xc0003957c0 sp=0xc000395780 pc=0x97a245
github.com/dgraph-io/badger.Open.gowrap4()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:347 +0x25 fp=0xc0003957e0 sp=0xc0003957c0 pc=0x9476c5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003957e8 sp=0xc0003957e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:347 +0x1885

goroutine 73 gp=0xc0004f7500 m=nil [select]:
runtime.gopark(0xc000395f40?, 0x2?, 0x0?, 0x0?, 0xc000395f14?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000395db8 sp=0xc000395d98 pc=0x44206e
runtime.selectgo(0xc000395f40, 0xc000395f10, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000395ed8 sp=0xc000395db8 pc=0x453ea5
github.com/dgraph-io/badger.(*publisher).listenForUpdates(0xc00011f140, 0xc000012858)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/publisher.go:67 +0x125 fp=0xc000395fc0 sp=0xc000395ed8 pc=0x965785
github.com/dgraph-io/badger.Open.gowrap5()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:350 +0x25 fp=0xc000395fe0 sp=0xc000395fc0 pc=0x947665
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000395fe8 sp=0xc000395fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:350 +0x199a

goroutine 74 gp=0xc0004f76c0 m=nil [select]:
runtime.gopark(0xc00050fda0?, 0x2?, 0x1?, 0x0?, 0xc00050fca4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00050fb38 sp=0xc00050fb18 pc=0x44206e
runtime.selectgo(0xc00050fda0, 0xc00050fca0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00050fc58 sp=0xc00050fb38 pc=0x453ea5
github.com/dgraph-io/badger/y.(*WaterMark).process(0xc0000a2a00, 0xc0000128a0)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:229 +0x285 fp=0xc00050ffc0 sp=0xc00050fc58 pc=0x933905
github.com/dgraph-io/badger/y.(*WaterMark).Init.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x25 fp=0xc00050ffe0 sp=0xc00050ffc0 pc=0x933285
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00050ffe8 sp=0xc00050ffe0 pc=0x479741
created by github.com/dgraph-io/badger/y.(*WaterMark).Init in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x127

goroutine 75 gp=0xc0004f7880 m=nil [select]:
runtime.gopark(0xc000510da0?, 0x2?, 0x1?, 0x0?, 0xc000510ca4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000510b38 sp=0xc000510b18 pc=0x44206e
runtime.selectgo(0xc000510da0, 0xc000510ca0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000510c58 sp=0xc000510b38 pc=0x453ea5
github.com/dgraph-io/badger/y.(*WaterMark).process(0xc0000a2a40, 0xc0000128a0)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:229 +0x285 fp=0xc000510fc0 sp=0xc000510c58 pc=0x933905
github.com/dgraph-io/badger/y.(*WaterMark).Init.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x25 fp=0xc000510fe0 sp=0xc000510fc0 pc=0x933285
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000510fe8 sp=0xc000510fe0 pc=0x479741
created by github.com/dgraph-io/badger/y.(*WaterMark).Init in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x127

goroutine 76 gp=0xc0004f7a40 m=nil [select]:
runtime.gopark(0xc000473760?, 0x2?, 0x8?, 0x0?, 0xc000473754?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc0004735f8 sp=0xc0004735d8 pc=0x44206e
runtime.selectgo(0xc000473760, 0xc000473750, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000473718 sp=0xc0004735f8 pc=0x453ea5
github.com/dgraph-io/badger.(*DB).updateSize(0xc000272708, 0xc000012900)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:1029 +0x108 fp=0xc0004737c0 sp=0xc000473718 pc=0x94c448
github.com/dgraph-io/badger.Open.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:293 +0x25 fp=0xc0004737e0 sp=0xc0004737c0 pc=0x948205
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0004737e8 sp=0xc0004737e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:293 +0xedd

goroutine 52 gp=0xc0004f7c00 m=nil [select]:
runtime.gopark(0xc000472f40?, 0x2?, 0x0?, 0xad?, 0xc000472ed4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000472d78 sp=0xc000472d58 pc=0x44206e
runtime.selectgo(0xc000472f40, 0xc000472ed0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000472e98 sp=0xc000472d78 pc=0x453ea5
github.com/dgraph-io/badger.(*levelsController).runWorker(0xc0000de070, 0xc00031c090)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:376 +0x1d8 fp=0xc000472fc0 sp=0xc000472e98 pc=0x959ed8
github.com/dgraph-io/badger.(*levelsController).startCompact.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x25 fp=0xc000472fe0 sp=0xc000472fc0 pc=0x959cc5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000472fe8 sp=0xc000472fe0 pc=0x479741
created by github.com/dgraph-io/badger.(*levelsController).startCompact in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x59

goroutine 53 gp=0xc0004f7dc0 m=nil [select]:
runtime.gopark(0xc000472740?, 0x2?, 0x0?, 0xad?, 0xc0004726d4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000472578 sp=0xc000472558 pc=0x44206e
runtime.selectgo(0xc000472740, 0xc0004726d0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000472698 sp=0xc000472578 pc=0x453ea5
github.com/dgraph-io/badger.(*levelsController).runWorker(0xc0000de070, 0xc00031c090)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:376 +0x1d8 fp=0xc0004727c0 sp=0xc000472698 pc=0x959ed8
github.com/dgraph-io/badger.(*levelsController).startCompact.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x25 fp=0xc0004727e0 sp=0xc0004727c0 pc=0x959cc5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0004727e8 sp=0xc0004727e0 pc=0x479741
created by github.com/dgraph-io/badger.(*levelsController).startCompact in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x59

goroutine 54 gp=0xc000383880 m=nil [chan receive]:
runtime.gopark(0x0?, 0x410e05?, 0x10?, 0x0?, 0xa38dc0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000478630 sp=0xc000478610 pc=0x44206e
runtime.chanrecv(0xc000126d80, 0xc000478768, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc0004786a8 sp=0xc000478630 pc=0x40c39f
runtime.chanrecv2(0xc00011a000?, 0x0?)
	/usr/lib/go/src/runtime/chan.go:447 +0x12 fp=0xc0004786d0 sp=0xc0004786a8 pc=0x40bfd2
github.com/dgraph-io/badger.(*DB).flushMemtable(0xc000272708, 0xc000012780?)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:943 +0xb0 fp=0xc0004787c0 sp=0xc0004786d0 pc=0x94bbd0
github.com/dgraph-io/badger.Open.func4()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:310 +0x1e fp=0xc0004787e0 sp=0xc0004787c0 pc=0x9481be
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0004787e8 sp=0xc0004787e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:309 +0x11be

goroutine 57 gp=0xc000383a40 m=nil [select]:
runtime.gopark(0xc000474f70?, 0x2?, 0x38?, 0xbe?, 0xc000474f04?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000474d90 sp=0xc000474d70 pc=0x44206e
runtime.selectgo(0xc000474f70, 0xc000474f00, 0x24?, 0x0, 0xc00011a028?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000474eb0 sp=0xc000474d90 pc=0x453ea5
github.com/dgraph-io/badger.(*DB).doWrites(0xc000272708, 0xc00031c150)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:722 +0x211 fp=0xc000474fc0 sp=0xc000474eb0 pc=0x94a231
github.com/dgraph-io/badger.Open.gowrap3()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:344 +0x25 fp=0xc000474fe0 sp=0xc000474fc0 pc=0x947725
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000474fe8 sp=0xc000474fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:344 +0x176d

goroutine 56 gp=0xc000383c00 m=nil [select]:
runtime.gopark(0xc000474750?, 0x2?, 0x0?, 0x0?, 0xc000474734?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc0004745d8 sp=0xc0004745b8 pc=0x44206e
runtime.selectgo(0xc000474750, 0xc000474730, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc0004746f8 sp=0xc0004745d8 pc=0x453ea5
github.com/dgraph-io/badger.(*valueLog).flushDiscardStats(0xc000272878)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:1594 +0x14a fp=0xc0004747c8 sp=0xc0004746f8 pc=0x97a92a
github.com/dgraph-io/badger.(*valueLog).open.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:849 +0x25 fp=0xc0004747e0 sp=0xc0004747c8 pc=0x9766e5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0004747e8 sp=0xc0004747e0 pc=0x479741
created by github.com/dgraph-io/badger.(*valueLog).open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:849 +0x85

goroutine 58 gp=0xc000383dc0 m=nil [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc0004756e0 sp=0xc0004756c0 pc=0x44206e
runtime.chanrecv(0xc00018a300, 0x0, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc000475758 sp=0xc0004756e0 pc=0x40c39f
runtime.chanrecv1(0x0?, 0x0?)
	/usr/lib/go/src/runtime/chan.go:442 +0x12 fp=0xc000475780 sp=0xc000475758 pc=0x40bfb2
github.com/dgraph-io/badger.(*valueLog).waitOnGC(0xc000272878, 0x0?)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:1501 +0x65 fp=0xc0004757c0 sp=0xc000475780 pc=0x97a245
github.com/dgraph-io/badger.Open.gowrap4()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:347 +0x25 fp=0xc0004757e0 sp=0xc0004757c0 pc=0x9476c5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0004757e8 sp=0xc0004757e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:347 +0x1885

goroutine 59 gp=0xc000368700 m=nil [select]:
runtime.gopark(0xc000475f40?, 0x2?, 0x0?, 0x0?, 0xc000475f14?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000475db8 sp=0xc000475d98 pc=0x44206e
runtime.selectgo(0xc000475f40, 0xc000475f10, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000475ed8 sp=0xc000475db8 pc=0x453ea5
github.com/dgraph-io/badger.(*publisher).listenForUpdates(0xc00011e8a0, 0xc00031c1b0)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/publisher.go:67 +0x125 fp=0xc000475fc0 sp=0xc000475ed8 pc=0x965785
github.com/dgraph-io/badger.Open.gowrap5()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:350 +0x25 fp=0xc000475fe0 sp=0xc000475fc0 pc=0x947665
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000475fe8 sp=0xc000475fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 15
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:350 +0x199a

goroutine 115 gp=0xc00b3101c0 m=nil [select]:
runtime.gopark(0xc00033eda0?, 0x2?, 0x38?, 0xbe?, 0xc00033eca4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00033eb38 sp=0xc00033eb18 pc=0x44206e
runtime.selectgo(0xc00033eda0, 0xc00033eca0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00033ec58 sp=0xc00033eb38 pc=0x453ea5
github.com/dgraph-io/badger/y.(*WaterMark).process(0xc00b31e300, 0xc00b302060)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:229 +0x285 fp=0xc00033efc0 sp=0xc00033ec58 pc=0x933905
github.com/dgraph-io/badger/y.(*WaterMark).Init.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x25 fp=0xc00033efe0 sp=0xc00033efc0 pc=0x933285
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00033efe8 sp=0xc00033efe0 pc=0x479741
created by github.com/dgraph-io/badger/y.(*WaterMark).Init in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x127

goroutine 116 gp=0xc00b310380 m=nil [select]:
runtime.gopark(0xc00033fda0?, 0x2?, 0x38?, 0xbe?, 0xc00033fca4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00033fb38 sp=0xc00033fb18 pc=0x44206e
runtime.selectgo(0xc00033fda0, 0xc00033fca0, 0x60219b5cbf74ac9c?, 0x0, 0x2a9250d82516f9b1?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00033fc58 sp=0xc00033fb38 pc=0x453ea5
github.com/dgraph-io/badger/y.(*WaterMark).process(0xc00b31e340, 0xc00b302060)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:229 +0x285 fp=0xc00033ffc0 sp=0xc00033fc58 pc=0x933905
github.com/dgraph-io/badger/y.(*WaterMark).Init.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x25 fp=0xc00033ffe0 sp=0xc00033ffc0 pc=0x933285
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00033ffe8 sp=0xc00033ffe0 pc=0x479741
created by github.com/dgraph-io/badger/y.(*WaterMark).Init in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x127

goroutine 117 gp=0xc00b310540 m=nil [select]:
runtime.gopark(0xc000344f60?, 0x2?, 0x90?, 0x4e?, 0xc000344f54?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000344df8 sp=0xc000344dd8 pc=0x44206e
runtime.selectgo(0xc000344f60, 0xc000344f50, 0x10a8100d1ce06073?, 0x0, 0x978659d345a2a355?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000344f18 sp=0xc000344df8 pc=0x453ea5
github.com/dgraph-io/badger.(*DB).updateSize(0xc000272e08, 0xc00b3020d8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:1029 +0x108 fp=0xc000344fc0 sp=0xc000344f18 pc=0x94c448
github.com/dgraph-io/badger.Open.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:293 +0x25 fp=0xc000344fe0 sp=0xc000344fc0 pc=0x948205
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000344fe8 sp=0xc000344fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:293 +0xedd

goroutine 118 gp=0xc00b310700 m=nil [select]:
runtime.gopark(0xc000345740?, 0x2?, 0x0?, 0xad?, 0xc0003456d4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000345578 sp=0xc000345558 pc=0x44206e
runtime.selectgo(0xc000345740, 0xc0003456d0, 0xf62f0c715c95c10d?, 0x0, 0x59f1affe43ff6d68?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000345698 sp=0xc000345578 pc=0x453ea5
github.com/dgraph-io/badger.(*levelsController).runWorker(0xc00b35c000, 0xc00b302180)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:376 +0x1d8 fp=0xc0003457c0 sp=0xc000345698 pc=0x959ed8
github.com/dgraph-io/badger.(*levelsController).startCompact.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x25 fp=0xc0003457e0 sp=0xc0003457c0 pc=0x959cc5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003457e8 sp=0xc0003457e0 pc=0x479741
created by github.com/dgraph-io/badger.(*levelsController).startCompact in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x59

goroutine 119 gp=0xc00b3108c0 m=nil [select]:
runtime.gopark(0xc000345f40?, 0x2?, 0x0?, 0xad?, 0xc000345ed4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000345d78 sp=0xc000345d58 pc=0x44206e
runtime.selectgo(0xc000345f40, 0xc000345ed0, 0x8f1701846132a63f?, 0x0, 0x1e80b1898755071d?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000345e98 sp=0xc000345d78 pc=0x453ea5
github.com/dgraph-io/badger.(*levelsController).runWorker(0xc00b35c000, 0xc00b302180)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:376 +0x1d8 fp=0xc000345fc0 sp=0xc000345e98 pc=0x959ed8
github.com/dgraph-io/badger.(*levelsController).startCompact.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x25 fp=0xc000345fe0 sp=0xc000345fc0 pc=0x959cc5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000345fe8 sp=0xc000345fe0 pc=0x479741
created by github.com/dgraph-io/badger.(*levelsController).startCompact in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x59

goroutine 120 gp=0xc00b310a80 m=nil [chan receive]:
runtime.gopark(0xe0d1bdf65265965f?, 0x96b862553a570e47?, 0x4a?, 0x5a?, 0xc12b34bf44e3b0c0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000346630 sp=0xc000346610 pc=0x44206e
runtime.chanrecv(0xc00b3004e0, 0xc000346768, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc0003466a8 sp=0xc000346630 pc=0x40c39f
runtime.chanrecv2(0x6746d097e330b3b0?, 0xd0f053ec73364bbb?)
	/usr/lib/go/src/runtime/chan.go:447 +0x12 fp=0xc0003466d0 sp=0xc0003466a8 pc=0x40bfd2
github.com/dgraph-io/badger.(*DB).flushMemtable(0xc000272e08, 0x1a74799d2f044adb?)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:943 +0xb0 fp=0xc0003467c0 sp=0xc0003466d0 pc=0x94bbd0
github.com/dgraph-io/badger.Open.func4()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:310 +0x1e fp=0xc0003467e0 sp=0xc0003467c0 pc=0x9481be
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003467e8 sp=0xc0003467e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:309 +0x11be

goroutine 123 gp=0xc00b310c40 m=nil [select]:
runtime.gopark(0xc000347f70?, 0x2?, 0x38?, 0xbe?, 0xc000347f04?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000347d90 sp=0xc000347d70 pc=0x44206e
runtime.selectgo(0xc000347f70, 0xc000347f00, 0x29?, 0x0, 0xc00011a170?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000347eb0 sp=0xc000347d90 pc=0x453ea5
github.com/dgraph-io/badger.(*DB).doWrites(0xc000272e08, 0xc00b302240)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:722 +0x211 fp=0xc000347fc0 sp=0xc000347eb0 pc=0x94a231
github.com/dgraph-io/badger.Open.gowrap3()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:344 +0x25 fp=0xc000347fe0 sp=0xc000347fc0 pc=0x947725
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000347fe8 sp=0xc000347fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:344 +0x176d

goroutine 122 gp=0xc00b310e00 m=nil [select]:
runtime.gopark(0xc000347750?, 0x2?, 0xa9?, 0x1d?, 0xc000347734?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc0003475d8 sp=0xc0003475b8 pc=0x44206e
runtime.selectgo(0xc000347750, 0xc000347730, 0x9bf6f9c60dc9a64d?, 0x0, 0xb63a8767c441e22e?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc0003476f8 sp=0xc0003475d8 pc=0x453ea5
github.com/dgraph-io/badger.(*valueLog).flushDiscardStats(0xc000272f78)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:1594 +0x14a fp=0xc0003477c8 sp=0xc0003476f8 pc=0x97a92a
github.com/dgraph-io/badger.(*valueLog).open.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:849 +0x25 fp=0xc0003477e0 sp=0xc0003477c8 pc=0x9766e5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003477e8 sp=0xc0003477e0 pc=0x479741
created by github.com/dgraph-io/badger.(*valueLog).open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:849 +0x85

goroutine 124 gp=0xc00b310fc0 m=nil [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00b3666e0 sp=0xc00b3666c0 pc=0x44206e
runtime.chanrecv(0xc00b34c3c0, 0x0, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc00b366758 sp=0xc00b3666e0 pc=0x40c39f
runtime.chanrecv1(0x0?, 0x0?)
	/usr/lib/go/src/runtime/chan.go:442 +0x12 fp=0xc00b366780 sp=0xc00b366758 pc=0x40bfb2
github.com/dgraph-io/badger.(*valueLog).waitOnGC(0xc000272f78, 0x0?)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:1501 +0x65 fp=0xc00b3667c0 sp=0xc00b366780 pc=0x97a245
github.com/dgraph-io/badger.Open.gowrap4()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:347 +0x25 fp=0xc00b3667e0 sp=0xc00b3667c0 pc=0x9476c5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00b3667e8 sp=0xc00b3667e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:347 +0x1885

goroutine 125 gp=0xc00b311180 m=nil [select]:
runtime.gopark(0xc00b366f40?, 0x2?, 0x0?, 0x0?, 0xc00b366f14?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00b366db8 sp=0xc00b366d98 pc=0x44206e
runtime.selectgo(0xc00b366f40, 0xc00b366f10, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00b366ed8 sp=0xc00b366db8 pc=0x453ea5
github.com/dgraph-io/badger.(*publisher).listenForUpdates(0xc00b31a330, 0xc00b3022a0)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/publisher.go:67 +0x125 fp=0xc00b366fc0 sp=0xc00b366ed8 pc=0x965785
github.com/dgraph-io/badger.Open.gowrap5()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:350 +0x25 fp=0xc00b366fe0 sp=0xc00b366fc0 pc=0x947665
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00b366fe8 sp=0xc00b366fe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:350 +0x199a

goroutine 126 gp=0xc00b311340 m=nil [select]:
runtime.gopark(0xc00b309da0?, 0x2?, 0x1?, 0x0?, 0xc00b309ca4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00b309b38 sp=0xc00b309b18 pc=0x44206e
runtime.selectgo(0xc00b309da0, 0xc00b309ca0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00b309c58 sp=0xc00b309b38 pc=0x453ea5
github.com/dgraph-io/badger/y.(*WaterMark).process(0xc00b31e5c0, 0xc00b3022e8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:229 +0x285 fp=0xc00b309fc0 sp=0xc00b309c58 pc=0x933905
github.com/dgraph-io/badger/y.(*WaterMark).Init.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x25 fp=0xc00b309fe0 sp=0xc00b309fc0 pc=0x933285
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00b309fe8 sp=0xc00b309fe0 pc=0x479741
created by github.com/dgraph-io/badger/y.(*WaterMark).Init in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x127

goroutine 127 gp=0xc00b311500 m=nil [select]:
runtime.gopark(0xc00008eda0?, 0x2?, 0x1?, 0x0?, 0xc00008eca4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00008eb38 sp=0xc00008eb18 pc=0x44206e
runtime.selectgo(0xc00008eda0, 0xc00008eca0, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00008ec58 sp=0xc00008eb38 pc=0x453ea5
github.com/dgraph-io/badger/y.(*WaterMark).process(0xc00b31e600, 0xc00b3022e8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:229 +0x285 fp=0xc00008efc0 sp=0xc00008ec58 pc=0x933905
github.com/dgraph-io/badger/y.(*WaterMark).Init.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x25 fp=0xc00008efe0 sp=0xc00008efc0 pc=0x933285
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00008efe8 sp=0xc00008efe0 pc=0x479741
created by github.com/dgraph-io/badger/y.(*WaterMark).Init in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/y/watermark.go:78 +0x127

goroutine 128 gp=0xc00b3116c0 m=nil [select]:
runtime.gopark(0xc00b368760?, 0x2?, 0x90?, 0x86?, 0xc00b368754?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00b3685f8 sp=0xc00b3685d8 pc=0x44206e
runtime.selectgo(0xc00b368760, 0xc00b368750, 0x0?, 0x0, 0x0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00b368718 sp=0xc00b3685f8 pc=0x453ea5
github.com/dgraph-io/badger.(*DB).updateSize(0xc000273188, 0xc00b302348)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:1029 +0x108 fp=0xc00b3687c0 sp=0xc00b368718 pc=0x94c448
github.com/dgraph-io/badger.Open.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:293 +0x25 fp=0xc00b3687e0 sp=0xc00b3687c0 pc=0x948205
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00b3687e8 sp=0xc00b3687e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:293 +0xedd

goroutine 89 gp=0xc0001d16c0 m=nil [select]:
runtime.gopark(0xc000344740?, 0x2?, 0x0?, 0xad?, 0xc0003446d4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000344578 sp=0xc000344558 pc=0x44206e
runtime.selectgo(0xc000344740, 0xc0003446d0, 0xb7577581d19abb4e?, 0x0, 0xfe16ddc4ab644424?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000344698 sp=0xc000344578 pc=0x453ea5
github.com/dgraph-io/badger.(*levelsController).runWorker(0xc015a08000, 0xc000116078)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:376 +0x1d8 fp=0xc0003447c0 sp=0xc000344698 pc=0x959ed8
github.com/dgraph-io/badger.(*levelsController).startCompact.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x25 fp=0xc0003447e0 sp=0xc0003447c0 pc=0x959cc5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0003447e8 sp=0xc0003447e0 pc=0x479741
created by github.com/dgraph-io/badger.(*levelsController).startCompact in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x59

goroutine 90 gp=0xc0001d1880 m=nil [select]:
runtime.gopark(0xc000349f40?, 0x2?, 0x0?, 0xad?, 0xc000349ed4?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc000349d78 sp=0xc000349d58 pc=0x44206e
runtime.selectgo(0xc000349f40, 0xc000349ed0, 0xf9fa98b0d45fb3b0?, 0x0, 0x121973d5445a502a?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc000349e98 sp=0xc000349d78 pc=0x453ea5
github.com/dgraph-io/badger.(*levelsController).runWorker(0xc015a08000, 0xc000116078)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:376 +0x1d8 fp=0xc000349fc0 sp=0xc000349e98 pc=0x959ed8
github.com/dgraph-io/badger.(*levelsController).startCompact.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x25 fp=0xc000349fe0 sp=0xc000349fc0 pc=0x959cc5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000349fe8 sp=0xc000349fe0 pc=0x479741
created by github.com/dgraph-io/badger.(*levelsController).startCompact in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/levels.go:357 +0x59

goroutine 91 gp=0xc0001d1a40 m=nil [chan receive]:
runtime.gopark(0x3961363763613838?, 0x3334313362653431?, 0x66?, 0x66?, 0x3639356636363761?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00034a630 sp=0xc00034a610 pc=0x44206e
runtime.chanrecv(0xc00b301020, 0xc00034a768, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc00034a6a8 sp=0xc00034a630 pc=0x40c39f
runtime.chanrecv2(0x3765646261303066?, 0x6166666630616335?)
	/usr/lib/go/src/runtime/chan.go:447 +0x12 fp=0xc00034a6d0 sp=0xc00034a6a8 pc=0x40bfd2
github.com/dgraph-io/badger.(*DB).flushMemtable(0xc000273188, 0x3934333762653431?)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:943 +0xb0 fp=0xc00034a7c0 sp=0xc00034a6d0 pc=0x94bbd0
github.com/dgraph-io/badger.Open.func4()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:310 +0x1e fp=0xc00034a7e0 sp=0xc00034a7c0 pc=0x9481be
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00034a7e8 sp=0xc00034a7e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:309 +0x11be

goroutine 94 gp=0xc0001d1c00 m=nil [select]:
runtime.gopark(0xc00034af70?, 0x2?, 0x38?, 0xbe?, 0xc00034af04?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00034ad90 sp=0xc00034ad70 pc=0x44206e
runtime.selectgo(0xc00034af70, 0xc00034af00, 0x24?, 0x0, 0xc00b224000?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00034aeb0 sp=0xc00034ad90 pc=0x453ea5
github.com/dgraph-io/badger.(*DB).doWrites(0xc000273188, 0xc000116168)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:722 +0x211 fp=0xc00034afc0 sp=0xc00034aeb0 pc=0x94a231
github.com/dgraph-io/badger.Open.gowrap3()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:344 +0x25 fp=0xc00034afe0 sp=0xc00034afc0 pc=0x947725
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00034afe8 sp=0xc00034afe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:344 +0x176d

goroutine 93 gp=0xc0001d1dc0 m=nil [select]:
runtime.gopark(0xc00034b750?, 0x2?, 0x61?, 0x61?, 0xc00034b734?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00034b5d8 sp=0xc00034b5b8 pc=0x44206e
runtime.selectgo(0xc00034b750, 0xc00034b730, 0x3530313463666465?, 0x0, 0x3430643738613332?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc00034b6f8 sp=0xc00034b5d8 pc=0x453ea5
github.com/dgraph-io/badger.(*valueLog).flushDiscardStats(0xc0002732f8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:1594 +0x14a fp=0xc00034b7c8 sp=0xc00034b6f8 pc=0x97a92a
github.com/dgraph-io/badger.(*valueLog).open.gowrap1()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:849 +0x25 fp=0xc00034b7e0 sp=0xc00034b7c8 pc=0x9766e5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00034b7e8 sp=0xc00034b7e0 pc=0x479741
created by github.com/dgraph-io/badger.(*valueLog).open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:849 +0x85

goroutine 95 gp=0xc00b0d8000 m=nil [chan receive]:
runtime.gopark(0x6465396533636262?, 0x3735373832656665?, 0x36?, 0x36?, 0x3838303435386538?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc00034bee0 sp=0xc00034bec0 pc=0x44206e
runtime.chanrecv(0xc0000b0660, 0x0, 0x1)
	/usr/lib/go/src/runtime/chan.go:583 +0x3bf fp=0xc00034bf58 sp=0xc00034bee0 pc=0x40c39f
runtime.chanrecv1(0x3361313439646166?, 0x3165383466346237?)
	/usr/lib/go/src/runtime/chan.go:442 +0x12 fp=0xc00034bf80 sp=0xc00034bf58 pc=0x40bfb2
github.com/dgraph-io/badger.(*valueLog).waitOnGC(0xc0002732f8, 0x3431396136376361?)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/value.go:1501 +0x65 fp=0xc00034bfc0 sp=0xc00034bf80 pc=0x97a245
github.com/dgraph-io/badger.Open.gowrap4()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:347 +0x25 fp=0xc00034bfe0 sp=0xc00034bfc0 pc=0x9476c5
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00034bfe8 sp=0xc00034bfe0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:347 +0x1885

goroutine 96 gp=0xc00b0d81c0 m=nil [select]:
runtime.gopark(0xc000479740?, 0x2?, 0x48?, 0x96?, 0xc000479714?)
	/usr/lib/go/src/runtime/proc.go:402 +0xce fp=0xc0004795b8 sp=0xc000479598 pc=0x44206e
runtime.selectgo(0xc000479740, 0xc000479710, 0x0?, 0x0, 0xc0000ae0f0?, 0x1)
	/usr/lib/go/src/runtime/select.go:327 +0x725 fp=0xc0004796d8 sp=0xc0004795b8 pc=0x453ea5
github.com/dgraph-io/badger.(*publisher).listenForUpdates(0xc00b31a660, 0xc0001161c8)
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/publisher.go:67 +0x125 fp=0xc0004797c0 sp=0xc0004796d8 pc=0x965785
github.com/dgraph-io/badger.Open.gowrap5()
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:350 +0x25 fp=0xc0004797e0 sp=0xc0004797c0 pc=0x947665
runtime.goexit({})
	/usr/lib/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0004797e8 sp=0xc0004797e0 pc=0x479741
created by github.com/dgraph-io/badger.Open in goroutine 114
	/home/joe/go/pkg/mod/github.com/dgraph-io/badger@v1.6.2/db.go:350 +0x199a

rax    0xca
rbx    0x0
rcx    0x47b5a3
rdx    0x0
rdi    0x1188ea0
rsi    0x80
rbp    0x7ffcc5482db0
rsp    0x7ffcc5482d68
r8     0x0
r9     0x0
r10    0x0
r11    0x286
r12    0x7ffcc5482d88
r13    0xc00007a794
r14    0x11881a0
r15    0x3
rip    0x47b5a1
rflags 0x286
cs     0x33
fs     0x0
gs     0x0

dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
@ukane-philemon
Copy link
Contributor Author

Do I need to wait 5 minutes for the first tick?

The rate messages are sent to subscribers every rateBroadcastInterval but until a rate has been requested, the fiat oracle does nothing. This ensures we are not fetching data that might not be used.

@JoeGruffins
Copy link
Member

This ensures we are not fetching data that might not be used.

Yeah that makes sense. Would be cool if there were a short circuit for new rates but I guess this is ok for now...

Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
Copy link
Member

@JoeGruffins JoeGruffins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Running the demo, I will see this and then am unable to shut down the server. 429 looks like too many requests? I only tried once.

2024-04-24 16:48:27.071 [ERR] SRV[127.0.0.1:36353]: Error getting fiat exchange rates from messari: error 429 fetching "https://data.messari.io/api/v1/assets/DASH/metrics/market-data"
2024-04-24 16:48:27.550 [ERR] SRV[127.0.0.1:33827]: Error getting fiat exchange rates from messari: error 429 fetching "https://data.messari.io/api/v1/assets/BCH/metrics/market-data"
2024-04-24 16:48:27.711 [ERR] SRV[127.0.0.1:36353]: Error getting fiat exchange rates from messari: error 429 fetching "https://data.messari.io/api/v1/assets/DOGE/metrics/market-data"
2024-04-24 16:48:28.320 [ERR] SRV[127.0.0.1:36353]: Error getting fiat exchange rates from messari: error 429 fetching "https://data.messari.io/api/v1/assets/MATIC/metrics/market-data"
2024-04-24 16:48:28.588 [ERR] SRV[127.0.0.1:33827]: Error getting fiat exchange rates from messari: error 429 fetching "https://data.messari.io/api/v1/assets/MATIC/metrics/market-data"
2024-04-24 16:48:28.923 [ERR] SRV[127.0.0.1:36353]: Error getting fiat exchange rates from messari: error 429 fetching "https://data.messari.io/api/v1/assets/ZEC/metrics/market-data"
2024-04-24 16:48:29.208 [ERR] SRV[127.0.0.1:33827]: Error getting fiat exchange rates from messari: error 429 fetching "https://data.messari.io/api/v1/assets/ZEC/metrics/market-data"

@ukane-philemon
Copy link
Contributor Author

429 looks like too many requests? I only tried once.

Ah I see, the second server is running at the same time.

@ukane-philemon
Copy link
Contributor Author

Demo test log

Testing fiat rates...
2024-04-26 01:19:45.562 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"zcl"}
2024-04-26 01:19:45.562 [TRC] SRV[127.0.0.1:61369]: Adding new subscription topic and subject fiat_rate -> zcl
2024-04-26 01:19:45.565 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"dcr"}
2024-04-26 01:19:45.567 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"btc"}
2024-04-26 01:19:45.568 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"ltc"}
2024-04-26 01:19:45.569 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"eth"}
2024-04-26 01:19:45.570 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"usdc.polygon"}
2024-04-26 01:19:45.571 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"bch"}
2024-04-26 01:19:45.572 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"dash"}
2024-04-26 01:19:45.573 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"dgb"}
2024-04-26 01:19:45.573 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"doge"}
2024-04-26 01:19:45.574 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"firo"}
2024-04-26 01:19:45.575 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"polygon"}
2024-04-26 01:19:45.576 [TRC] SRV[127.0.0.1:61369]: Tatanka node handling message. route = subscribe, payload = {"topic":"fiat_rate","subject":"zec"}
2024-04-26 01:19:45.580 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"zcl","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.562402+01:00"}
2024-04-26 01:19:45.582 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"dcr","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.56573+01:00"}
2024-04-26 01:19:45.592 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"btc","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.567623+01:00"}
2024-04-26 01:19:45.594 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"ltc","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.56874+01:00"}
2024-04-26 01:19:45.595 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"eth","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.570046+01:00"}
2024-04-26 01:19:45.595 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"usdc.polygon","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.570948+01:00"}
2024-04-26 01:19:45.596 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"bch","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.571649+01:00"}
2024-04-26 01:19:45.596 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"dash","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.572445+01:00"}
2024-04-26 01:19:45.596 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"dgb","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.5733+01:00"}
2024-04-26 01:19:45.597 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"doge","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.574149+01:00"}
2024-04-26 01:19:45.597 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"firo","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.574876+01:00"}
2024-04-26 01:19:45.598 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"polygon","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.57565+01:00"}
2024-04-26 01:19:45.598 [TRC] SRV[127.0.0.1:61370]: Tatanka node handling message from remote tatanka. route = relay_broadcast, payload = {"peerID":[3,11,29,163,207,237,127,233,64,180,182,17,111,158,144,247,17,193,117,32,213,232,224,8,12,27,228,194,3,113,154,105,181],"topic":"fiat_rate","subject":"zec","messageType":"new_subscriber","stamp":"2024-04-26T01:19:45.576766+01:00"}
2024-04-26 01:19:46.960 [ERR] SRV[127.0.0.1:61369]: failed to retrieve rate from KuCoin: unable to fetch fiat rates: Get "https://api.kucoin.com/api/v1/prices?currencies=ZCL,DCR,LTC,ETH,USDC,DASH,DGB,BTC,BCH,DOGE,FIRO,MATIC,ZEC": context deadline exceeded
2024-04-26 01:19:46.967 [ERR] SRV[127.0.0.1:61369]: failed to retrieve rate from Binance: unable to fetch fiat rates: Get "https://api3.binance.com/api/v3/ticker/price?symbols=[%22BTCUSDT%22%2C%22BCHUSDT%22%2C%22DOGEUSDT%22%2C%22FIROUSDT%22%2C%22MATICUSDT%22%2C%22ZECUSDT%22%2C%22DCRUSDT%22%2C%22LTCUSDT%22%2C%22ETHUSDT%22%2C%22USDCUSDT%22%2C%22DASHUSDT%22%2C%22DGBUSDT%22]": dial tcp: lookup api3.binance.com: no such host
2024-04-26 01:20:41.963 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"dash","value":30.529484061558378}
2024-04-26 01:20:41.964 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"dgb","value":0.01213908666581539}
2024-04-26 01:20:41.964 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"doge","value":0.1507924139217401}
2024-04-26 01:20:41.964 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"firo","value":1.682676418115035}
2024-04-26 01:20:41.965 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"polygon","value":0.7201772770279691}
2024-04-26 01:20:41.965 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"zec","value":23.235472219432538}
2024-04-26 01:20:41.965 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"zcl","value":0.10806431950319026}
2024-04-26 01:20:41.966 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"btc","value":64428.762814868955}
2024-04-26 01:20:41.966 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"ltc","value":83.97790266590093}
2024-04-26 01:20:41.966 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"eth","value":3152.9078322923297}
2024-04-26 01:20:41.967 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"usdc.polygon","value":1.000623811935815}
2024-04-26 01:20:41.967 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"bch","value":477.6043906819767}
2024-04-26 01:20:41.968 [TRC] tCL[0:127.0.0.1:61369][tTC]: Client handling message from tatanka node: route = rates, payload = {"topic":"fiat_rate","subject":"dcr","value":22.439650789531093}

Rate found for zcl
Rate found for dcr
Rate found for btc
Rate found for ltc
Rate found for eth
Rate found for usdc.polygon
Rate found for bch
Rate found for dash
Rate found for dgb
Rate found for doge
Rate found for firo
Rate found for polygon
Rate found for zec!!!!!!!! Test Success !!!!!!!!
2024-04-26 01:20:41.969 [INF] tCL[0:127.0.0.1:61369][tTC][TCP]: WebSockets client for ws://127.0.0.1:61369/ws has disconnected
2024-04-26 01:20:41.969 [DBG] tCL[0:127.0.0.1:61369][tTC][TCP][TC]: Sending close 1000 (normal) message.
2024-04-26 01:20:41.970 [INF] tCL[1:127.0.0.1:61370][tTC][TCP]: WebSockets client for ws://127.0.0.1:61370/ws has disconnected
2024-04-26 01:20:41.970 [DBG] tCL[1:127.0.0.1:61370][tTC][TCP][TC]: Sending close 1000 (normal) message.
2024-04-26 01:20:41.972 [TRC] COMMS[WS]: Sent 20 and dropped 0 messages to 127.0.0.1 before shutdown.
2024-04-26 01:20:41.972 [TRC] COMMS: Disconnected websocket client 127.0.0.1
2024-04-26 01:20:41.972 [TRC] COMMS[WS]: Sent 34 and dropped 0 messages to 127.0.0.1 before shutdown.
2024-04-26 01:20:41.972 [TRC] COMMS: Disconnected websocket client 127.0.0.1
2024-04-26 01:20:41.973 [INF] COMMS: Server shutting down...
2024-04-26 01:20:41.974 [DBG] COMMS: RPC listener done for 127.0.0.1:61370
2024-04-26 01:20:41.974 [DBG] CL[ws://127.0.0.1:61369]: Sending close 1000 (normal) message.
2024-04-26 01:20:41.974 [TRC] COMMS[WS]: Sent 6 and dropped 0 messages to 127.0.0.1 before shutdown.
2024-04-26 01:20:41.974 [TRC] COMMS: Disconnected websocket client 127.0.0.1
2024-04-26 01:20:41.974 [INF] COMMS: Server shutdown complete
2024-04-26 01:20:41.971 [INF] COMMS: Server shutting down...
2024-04-26 01:20:41.976 [DBG] COMMS: RPC listener done for 127.0.0.1:61369
2024-04-26 01:20:41.976 [INF] COMMS: Server shutdown complete

Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
tatanka/tatanka.go Outdated Show resolved Hide resolved
Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
dex/fiatrates/sources.go Outdated Show resolved Hide resolved
dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/sources.go Outdated Show resolved Hide resolved
dex/fiatrates/sources.go Outdated Show resolved Hide resolved
dex/fiatrates/sources.go Outdated Show resolved Hide resolved
dex/fiatrates/types.go Outdated Show resolved Hide resolved
tatanka/tatanka.go Outdated Show resolved Hide resolved
tatanka/tatanka.go Outdated Show resolved Hide resolved
Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
Copy link
Member

@JoeGruffins JoeGruffins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The demo just ends with this now:

2024-05-08 11:30:27.789 [INF] tCL[0:127.0.0.1:39305][tTC][TCP]: WebSockets client for ws://127.0.0.1:39305/ws has disconnected
2024-05-08 11:30:27.789 [DBG] tCL[0:127.0.0.1:39305][tTC][TCP][TC]: Sending close 1000 (normal) message.
2024-05-08 11:30:27.789 [DBG] CL[ws://127.0.0.1:39305]: Sending close 1000 (normal) message.
error making first connected client: auth error: timed out waiting for tankagram result
2024-05-08 11:30:27.789 [INF] COMMS: Server shutting down...

So what about clients that come between subscription sends? @buck54321 sorry if I missed a reply before but do you have an idea for this?

I guess possible answers:

  1. Just send more often.
  2. Just have 100 servers.
  3. Allow clients to ask for a send from server of some info.
  4. Have clients cache and send server responses between themselves. Although that doesn't help the demo I don't think. I assume this is the best use of tatanka?

@JoeGruffins
Copy link
Member

The demo is failing before fmt.Println("Testing fiat rates...")

tatanka/tatanka.go Outdated Show resolved Hide resolved
@ukane-philemon
Copy link
Contributor Author

Allow clients to ask for a send from server of some info.

We can just reply with the current rates (if any) for every subscription.

@JoeGruffins
Copy link
Member

We can just reply with the current rates (if any) for every subscription.

That sounds great to me.

Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
@ukane-philemon
Copy link
Contributor Author

The demo just ends with this now:

One of issue was what you've described, new subscription missed the first notification cuz they subscribed after and will have to wait for the next rate notification. 1751a16 makes it possible to reply to a subscription so that new fiat rate subscribers always get the current rates before the next notification.

Thanks for the review @JoeGruffins & @buck54321.

Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
Copy link
Member

@JoeGruffins JoeGruffins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

dex/fiatrates/oracle.go Outdated Show resolved Hide resolved
dex/fiatrates/types.go Outdated Show resolved Hide resolved
Comment on lines +231 to +233
// Register tatanka as a listener
t.fiatRateChan = make(chan map[string]*fiatrates.FiatRateInfo)
t.fiatRateOracle.AddFiatRateListener(tatankaUniqueID, t.fiatRateChan)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes sense, but who will the other listeners be?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a pkg I think would be useful to other decred projects, e.g cryptopower.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And it will behave differently for cryptopower? Trying to imagine why you would need multiple listeners for the same instance.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same pattern. Start an oracle, and register.

Signed-off-by: Philemon Ukane <ukanephilemon@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

tatanka: Add fiat oracles.
3 participants