NEW: Channels DVR backend for Nvidia SHIELD


#201

A post was merged into an existing topic: NEW: Android TV app for Channels DVR (experimental)


#202

How’s the uptime been so far?

If the DVR is still restarting a lot, there are a couple other tricks I can try…


#203

I’m not going to be able to test until Thursday when I’m off. I’m still concerned about the USB drive ‘disconnecting’ after a few days too.


#204

I won’t be able to test until next or following week. We are in a massive cleanup mode due to Hurricane Irma. It’s a mess here in SW Florida.:scream:


#205

Not sure when mine auto updated but its been up for 6 hours today, I’ll report back tomorrow


#206

DVR isn’t running today, and for some reason late last night I was able to access it on my desktop but not on my phone connected to the same network


#207

Any idea why the DVR service is still randomly being killed, if you try those other “tricks” I’ll gladly test to see if any of them improve the uptime. Also, should the DVR service automatically start after restarts? I’ve assumed no but it so that doesn’t seem to work for me either.


#208

Been up for two days now, not sure what killed it the morning after the update but this is encouraging


#209

How’s your uptime now?

After rebooting the SHIELD? Yes it definitely should auto start.


#210

Still up and running, autostarted after a reboot as well.


#211

Still running?


#212

I disabled it while testing windows for a bit, it ran for 3-4 days straight without issue and started fine after a reboot. I’ll test more after I run some more HW transcoding test for Plex and Channels. Trying to decide what route to go on my server build, E3-1245v6 Kaby Lake with HEVC HW support or a more powerful E5-26XXv3 processor without HW transcoding (possibly discrete gpu). Opinions welcome…


#213

After reading more of the Android docs, I’m pretty confident my last change fixes the issue where the DVR would randomly get killed.

Is the issue with USB drives randomly disconnecting still happening?


#214

I switched my Channels back to Shield since I was planning on testing out the remote streaming changes. Everything that I’m running for transcoding isn’t transcoding fast enough even when it’s set to hardware. For example I’m running it right now off my cell, and it’s “Transcoder Running: 6m18.xxxxxxs @ 0.72x”.


#215

Just tried and it works for me. What does the CPU section say? Maybe something else is using a lot of cpu on the shield?


#216

CPU 4 cores / 2014.5 MHz
load averages: 6.86 5.96 5.39

RAM 3.11 GB
25.5% free


#217

Load average of 6 is through the roof!


#218

Guess it’s time for a reboot…


#219

Rebooting didn’t do anything, I couldn’t seem to get it to go below a load average of 5 regardless of what apps I tried to force stop, turning off the Plex server, etc, so I ended up doing a full reset. I added the Channels DVR back after it was done, and so far it’s been running for 14 hours. Right now I have 1 channel being recorded, 2 ATV’s playing live, 1 iPad playing live in PiP (remuxing), and 1 iPhone transcoding an mpeg2 channel on my cellular connection to test remote streaming, and everything has been running the past 10 minutes without any issues.

I want to run this headless in my media closet (where I have UPS) so I think that’s the next step to see how the SHIELD handles that. I’m also using a Pro, so I have 500GB to play with, but I have it mounted on my NAS and running my scripts to add chapter markers and move it to my NAS right after the commercial detection is completed. I’m hoping to do this to get around the USB issues I was having in the past.


#220

I’m basically done with the Shield, I don’t like missing recordings because it randomly dies and I have to restart it. Plex stayed up the whole time.

2017/10/10 09:18:49 [DVR] Rule 'Archer' found 4 new airings
2017/10/10 09:18:49 [DVR]   queued recording job 1509336000-58 (EP012167020084)
2017/10/10 09:18:49 [DVR]   queued recording job 1509337800-58 (EP012167020086)
2017/10/10 09:18:49 [DVR]   queued recording job 1509339600-58 (EP012167020085)
2017/10/10 09:18:49 [DVR]   queued recording job 1509341400-58 (EP012167020087)
2017/10/10 09:18:50 [DVR] Rule 'Star Wars Rebels' found 2 new airings
2017/10/10 09:18:50 [DVR]   queued recording job 1509337800-84 (EP018796240084)
2017/10/10 09:18:50 [DVR]   queued recording job 1509339600-84 (EP018796240085)
2017/10/10 09:18:55 [IDX] Pruned 4531 expired airings from USA-MD53402-X in 16.970576713s.
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x4000017698 pc=0x20285915f8]

runtime stack:
runtime.throw(0x2028bda477, 0x2a)
	/home/vagrant/go/src/runtime/panic.go:605 +0x70
runtime.sigpanic()
	/home/vagrant/go/src/runtime/signal_unix.go:351 +0x264
runtime.inheap(...)
	/home/vagrant/go/src/runtime/mheap.go:377
runtime.gcmarkwb_m(0x442052bf20, 0x4425da67f0)
	/home/vagrant/go/src/runtime/mbarrier.go:163 +0xa0
runtime.writebarrierptr_prewrite1.func1()
	/home/vagrant/go/src/runtime/mbarrier.go:193 +0x54
runtime.systemstack(0x4420524f38)
	/home/vagrant/go/src/runtime/asm_arm64.s:241 +0x8c
runtime.mstart()
	/home/vagrant/go/src/runtime/proc.go:1125

goroutine 10734 [running]:
runtime.systemstack_switch()
	/home/vagrant/go/src/runtime/asm_arm64.s:190 +0x8 fp=0x442074b9f0 sp=0x442074b9e0 pc=0x20285d2d10
runtime.writebarrierptr_prewrite1(0x442052bf20, 0x4425da67f0)
	/home/vagrant/go/src/runtime/mbarrier.go:188 +0x8c fp=0x442074ba30 sp=0x442074b9f0 pc=0x20285916e4
runtime.writebarrierptr(0x442052bf20, 0x4425da67f0)
	/home/vagrant/go/src/runtime/mbarrier.go:216 +0x44 fp=0x442074ba60 sp=0x442074ba30 pc=0x202859175c
github.com/blevesearch/bleve/index/upsidedown.(*BackIndexTermEntry).Unmarshal(0x442052bf20, 0x44252786b3, 0x6, 0x105, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/upsidedown.pb.go:142 +0x1b0 fp=0x442074bb40 sp=0x442074ba60 pc=0x2028a91c28
github.com/blevesearch/bleve/index/upsidedown.(*BackIndexRowValue).Unmarshal(0x4420077630, 0x4425277c00, 0xbb8, 0xbb8, 0x4420077630, 0x202897fe01)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/upsidedown.pb.go:324 +0x198 fp=0x442074bc50 sp=0x442074bb40 pc=0x2028a92960
github.com/golang/protobuf/proto.UnmarshalMerge(0x4425277c00, 0xbb8, 0xbb8, 0x2029467760, 0x4420077630, 0x4420077630, 0x4420010050)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/golang/protobuf/proto/decode.go:312 +0xf0 fp=0x442074bca0 sp=0x442074bc50 pc=0x202897ff68
github.com/golang/protobuf/proto.Unmarshal(0x4425277c00, 0xbb8, 0xbb8, 0x2029467760, 0x4420077630, 0x2029460b20, 0x4420010050)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/golang/protobuf/proto/decode.go:300 +0x54 fp=0x442074bce0 sp=0x442074bca0 pc=0x202897fe4c
github.com/blevesearch/bleve/index/upsidedown.NewBackIndexRowKV(0x44277ba000, 0x12, 0x1000, 0x4425277c00, 0xbb8, 0xbb8, 0xbb8, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/row.go:735 +0x178 fp=0x442074bdd0 sp=0x442074bce0 pc=0x2028a88a80
github.com/blevesearch/bleve/index/upsidedown.backIndexRowForDoc(0x202946bfe0, 0x4420614000, 0x442074bee0, 0x11, 0x20, 0x0, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/upsidedown.go:1059 +0x174 fp=0x442074be90 sp=0x442074bdd0 pc=0x2028a9155c
github.com/blevesearch/bleve/index/upsidedown.(*UpsideDownCouch).Batch.func2(0x4423546c60, 0x4424a3b970, 0x44206a6200, 0x4424a3b980, 0x4424a3b960)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/upsidedown.go:834 +0x194 fp=0x442074bfb0 sp=0x442074be90 pc=0x2028a9586c
runtime.goexit()
	/home/vagrant/go/src/runtime/asm_arm64.s:931 +0x4 fp=0x442074bfb0 sp=0x442074bfb0 pc=0x20285d503c
created by github.com/blevesearch/bleve/index/upsidedown.(*UpsideDownCouch).Batch
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/upsidedown.go:822 +0x204

goroutine 1 [chan receive, 2352 minutes]:
main.handleSignals()
	/home/vagrant/channels-server-android-arm64/main.go:173 +0x58
main.main()
	/home/vagrant/channels-server-android-arm64/main.go:166 +0x33c

goroutine 6 [select]:
github.com/blevesearch/bleve/index.AnalysisWorker(0x44200645a0, 0x4420064600)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/analysis.go:75 +0xcc
created by github.com/blevesearch/bleve/index.NewAnalysisQueue
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/analysis.go:67 +0xb8

goroutine 7 [select]:
github.com/blevesearch/bleve/index.AnalysisWorker(0x44200645a0, 0x4420064600)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/analysis.go:75 +0xcc
created by github.com/blevesearch/bleve/index.NewAnalysisQueue
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/analysis.go:67 +0xb8

goroutine 8 [select]:
github.com/blevesearch/bleve/index.AnalysisWorker(0x44200645a0, 0x4420064600)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/analysis.go:75 +0xcc
created by github.com/blevesearch/bleve/index.NewAnalysisQueue
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/analysis.go:67 +0xb8

goroutine 9 [select]:
github.com/blevesearch/bleve/index.AnalysisWorker(0x44200645a0, 0x4420064600)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/analysis.go:75 +0xcc
created by github.com/blevesearch/bleve/index.NewAnalysisQueue
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/analysis.go:67 +0xb8

goroutine 10 [syscall, 2354 minutes]:
os/signal.signal_recv(0x0)
	/home/vagrant/go/src/runtime/sigqueue.go:131 +0xc8
os/signal.loop()
	/home/vagrant/go/src/os/signal/signal_unix.go:22 +0x18
created by os/signal.init.0
	/home/vagrant/go/src/os/signal/signal_unix.go:28 +0x30

goroutine 28 [sleep, 8 minutes]:
time.Sleep(0x1a3185c5000)
	/home/vagrant/go/src/runtime/time.go:65 +0xec
main.StartRoku.func1()
	/home/vagrant/channels-server-android-arm64/roku.go:15 +0x34
created by main.StartRoku
	/home/vagrant/channels-server-android-arm64/roku.go:10 +0x28

goroutine 27 [sleep, 72 minutes]:
time.Sleep(0x68c61714000)
	/home/vagrant/go/src/runtime/time.go:65 +0xec
main.StartHDHR.func1()
	/home/vagrant/channels-server-android-arm64/main.go:49 +0x40
created by main.StartHDHR
	/home/vagrant/channels-server-android-arm64/main.go:41 +0x94

goroutine 244 [select, 13 minutes]:
main.StartNAT.func1()
	/home/vagrant/channels-server-android-arm64/nat.go:106 +0x1f8
created by main.StartNAT
	/home/vagrant/channels-server-android-arm64/nat.go:73 +0x120

goroutine 66 [select, 13 minutes]:
main.StartAuth.func1(0x4420175fa0)
	/home/vagrant/channels-server-android-arm64/main.go:93 +0x118
created by main.StartAuth
	/home/vagrant/channels-server-android-arm64/main.go:86 +0x100

goroutine 67 [chan receive, 2353 minutes]:
github.com/soheilhy/cmux.muxListener.Accept(...)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/soheilhy/cmux/cmux.go:228
github.com/soheilhy/cmux.(*muxListener).Accept(0x442055a3a0, 0x442023a870, 0x4420534a30, 0x20287a7528, 0x2028e7ee60)
	<autogenerated>:1 +0x5c
crypto/tls.(*listener).Accept(0x442055a3e0, 0x4420022008, 0x2028df2720, 0x202924b050, 0x2028eef5c0)
	/home/vagrant/go/src/crypto/tls/tls.go:52 +0x2c
net/http.(*Server).Serve(0x442066e5b0, 0x2029467660, 0x442055a3e0, 0x0, 0x0)
	/home/vagrant/go/src/net/http/server.go:2695 +0x154
created by main.StartHTTPServer
	/home/vagrant/channels-server-android-arm64/http.go:3160 +0x50c4

goroutine 68 [chan receive, 274 minutes]:
github.com/soheilhy/cmux.muxListener.Accept(...)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/soheilhy/cmux/cmux.go:228
github.com/soheilhy/cmux.(*muxListener).Accept(0x442055a400, 0x2028f08638, 0x4420608320, 0x2029468ee0, 0x442023a840)
	<autogenerated>:1 +0x5c
net/http.(*Server).Serve(0x442066e5b0, 0x2029468360, 0x442055a400, 0x0, 0x0)
	/home/vagrant/go/src/net/http/server.go:2695 +0x154
created by main.StartHTTPServer
	/home/vagrant/channels-server-android-arm64/http.go:3164 +0x4e88

goroutine 69 [IO wait, 274 minutes]:
internal/poll.runtime_pollWait(0x202a3dfdf0, 0x72, 0x0)
	/home/vagrant/go/src/runtime/netpoll.go:173 +0x3c
internal/poll.(*pollDesc).wait(0x44205be398, 0x72, 0x44206a4d00, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:85 +0xa0
internal/poll.(*pollDesc).waitRead(0x44205be398, 0xffffffffffffff00, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:90 +0x30
internal/poll.(*FD).Accept(0x44205be380, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_unix.go:334 +0x164
net.(*netFD).accept(0x44205be380, 0x44274f6010, 0x0, 0x20285b1a58)
	/home/vagrant/go/src/net/fd_unix.go:238 +0x24
net.(*TCPListener).accept(0x4420256cb8, 0x2028b398f4, 0x20285d21d8, 0x44206a4f60)
	/home/vagrant/go/src/net/tcpsock_posix.go:136 +0x24
net.(*TCPListener).Accept(0x4420256cb8, 0x2028f06710, 0x44204e25f0, 0x202946e5c0, 0x44274f6010)
	/home/vagrant/go/src/net/tcpsock.go:247 +0x34
github.com/soheilhy/cmux.(*cMux).Serve(0x44204e25f0, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/soheilhy/cmux/cmux.go:161 +0x78
created by main.StartHTTPServer
	/home/vagrant/channels-server-android-arm64/http.go:3166 +0x4eac

goroutine 70 [chan receive]:
main.liveStreamTicker()
	/home/vagrant/channels-server-android-arm64/streams.go:143 +0xac
created by main.StartHTTPServer
	/home/vagrant/channels-server-android-arm64/http.go:3167 +0x4ec0

goroutine 71 [chan receive]:
main.fileStreamTicker()
	/home/vagrant/channels-server-android-arm64/streams.go:170 +0xac
created by main.StartHTTPServer
	/home/vagrant/channels-server-android-arm64/http.go:3168 +0x4ed4

goroutine 9991 [select]:
net/http.(*persistConn).writeLoop(0x44207ce000)
	/home/vagrant/go/src/net/http/transport.go:1759 +0xd4
created by net/http.(*Transport).dialConn
	/home/vagrant/go/src/net/http/transport.go:1187 +0x7ac

goroutine 215 [IO wait]:
internal/poll.runtime_pollWait(0x202a3dfa30, 0x72, 0x1f)
	/home/vagrant/go/src/runtime/netpoll.go:173 +0x3c
internal/poll.(*pollDesc).wait(0x44206a6f18, 0x72, 0x44206a2c00, 0x442056e2c0, 0x44290dc690)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:85 +0xa0
internal/poll.(*pollDesc).waitRead(0x44206a6f18, 0x2028f07d00, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:90 +0x30
internal/poll.(*FD).RawRead(0x44206a6f00, 0x4429daa630, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_unix.go:429 +0xbc
net.(*rawConn).Read(0x44202566d8, 0x4429daa630, 0x1, 0x1)
	/home/vagrant/go/src/net/rawconn.go:40 +0x44
golang.org/x/net/internal/socket.(*Conn).recvMsg(0x44205b4320, 0x44206a2e88, 0x0, 0x4429df8960, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/golang.org/x/net/internal/socket/rawconn_msg.go:32 +0x1c4
golang.org/x/net/internal/socket.(*Conn).RecvMsg(0x44205b4320, 0x44206a2e88, 0x0, 0x0, 0x1000084000000)
	/home/vagrant/channels-server-android-arm64/.go/src/golang.org/x/net/internal/socket/socket.go:252 +0x30
golang.org/x/net/ipv6.(*payloadHandler).readFrom(0x4420077a50, 0x442071a000, 0x10000, 0x10000, 0x1, 0x20294f9f70, 0x0, 0x0, 0x20294f9f70, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/golang.org/x/net/ipv6/payload_cmsg_go1_9.go:25 +0x124
golang.org/x/net/ipv6.(*payloadHandler).ReadFrom(0x4420077a50, 0x442071a000, 0x10000, 0x10000, 0x20294655e0, 0x4429daa600, 0x0, 0x0, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/golang.org/x/net/ipv6/payload_cmsg.go:22 +0x54
github.com/fancybits/bonjour.(*Server).recv6(0x442026d080, 0x4420077a40)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/fancybits/bonjour/server.go:275 +0x88
created by github.com/fancybits/bonjour.(*Server).mainloop
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/fancybits/bonjour/server.go:210 +0x50

goroutine 214 [runnable]:
internal/poll.runtime_pollWait(0x202a3dfaf0, 0x72, 0x1e)
	/home/vagrant/go/src/runtime/netpoll.go:173 +0x3c
internal/poll.(*pollDesc).wait(0x44206a6e98, 0x72, 0x4420471c00, 0x442056e1e0, 0x44290dc350)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:85 +0xa0
internal/poll.(*pollDesc).waitRead(0x44206a6e98, 0x2028f07d00, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:90 +0x30
internal/poll.(*FD).RawRead(0x44206a6e80, 0x4429daa300, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_unix.go:429 +0xbc
net.(*rawConn).Read(0x44202566b8, 0x4429daa300, 0x1, 0x1)
	/home/vagrant/go/src/net/rawconn.go:40 +0x44
golang.org/x/net/internal/socket.(*Conn).recvMsg(0x44205b4300, 0x4420471e88, 0x0, 0x4429df8480, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/golang.org/x/net/internal/socket/rawconn_msg.go:32 +0x1c4
golang.org/x/net/internal/socket.(*Conn).RecvMsg(0x44205b4300, 0x4420471e88, 0x0, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/golang.org/x/net/internal/socket/socket.go:252 +0x30
golang.org/x/net/ipv4.(*payloadHandler).readFrom(0x4420077a00, 0x442072a000, 0x10000, 0x10000, 0x1, 0x20294f9f70, 0x0, 0x0, 0x20294f9f70, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/golang.org/x/net/ipv4/payload_cmsg_go1_9.go:25 +0x110
golang.org/x/net/ipv4.(*payloadHandler).ReadFrom(0x4420077a00, 0x442072a000, 0x10000, 0x10000, 0x20294655e0, 0x4429daa2d0, 0x0, 0x0, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/golang.org/x/net/ipv4/payload_cmsg.go:22 +0x54
github.com/fancybits/bonjour.(*Server).recv4(0x442026d080, 0x44200779f0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/fancybits/bonjour/server.go:258 +0x88
created by github.com/fancybits/bonjour.(*Server).mainloop
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/fancybits/bonjour/server.go:207 +0x74

goroutine 157 [GC assist wait]:
github.com/blevesearch/bleve/index/upsidedown.NewTermFrequencyRow(...)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/row.go:486
github.com/blevesearch/bleve/index/upsidedown.(*UpsideDownCouch).deleteSingle(0x44206a6200, 0x44253c3d00, 0x11, 0x4420535b80, 0x0, 0x0, 0x0, 0x4420b13000, 0xe6, 0x100)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/upsidedown.go:711 +0x11c
github.com/blevesearch/bleve/index/upsidedown.(*UpsideDownCouch).Batch(0x44206a6200, 0x4424a3b960, 0x44200fe198, 0x44207dcbc0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/upsidedown.go:898 +0xc90
github.com/blevesearch/bleve.(*indexImpl).Batch(0x44200fe150, 0x44290d9f60, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index_impl.go:286 +0x88
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).PruneAiringsWithQuery(0x442067e000, 0x20294709e0, 0x44200fe150, 0x20294611a0, 0x4420b1d700, 0x2028aeab4c)
	/home/vagrant/channels-server-android-arm64/dvr/search.go:775 +0x190
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).PruneAiringsForLineup(0x442067e000, 0x442024a400, 0xc)
	/home/vagrant/channels-server-android-arm64/dvr/search.go:754 +0x194
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).RunIndexer(0x442067e000)
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:195 +0x28c
created by _/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).Run
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:150 +0x34

goroutine 158 [runnable, locked to thread]:
github.com/jmhodges/levigo._Cfunc_leveldb_readoptions_destroy(0x202a8191f0)
	github.com/jmhodges/levigo/_obj/_cgo_gotypes.go:785 +0x38
github.com/jmhodges/levigo.(*ReadOptions).Close.func1(0x202a8191f0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/jmhodges/levigo/options.go:177 +0x44
github.com/jmhodges/levigo.(*ReadOptions).Close(0x4420686620)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/jmhodges/levigo/options.go:177 +0x24
github.com/tmm1/blevex/leveldb.(*Reader).Close(0x44205b4a00, 0x4424c8b7e0, 0x4420525200)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/tmm1/blevex/leveldb/reader.go:54 +0x24
github.com/blevesearch/bleve/index/upsidedown.(*IndexReader).Close(0x44205b4a20, 0x4420525228, 0x44254d2948)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index/upsidedown/index_reader.go:167 +0x2c
github.com/blevesearch/bleve.(*indexImpl).GetInternal.func1(0x202946fbc0, 0x44205b4a20, 0x44254d29f0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index_impl.go:663 +0x28
github.com/blevesearch/bleve.(*indexImpl).GetInternal(0x4420102fc0, 0x4424c8b7e0, 0x11, 0x20, 0x4420b98000, 0x649, 0x649, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/.go/src/github.com/blevesearch/bleve/index_impl.go:672 +0x15c
_/home/vagrant/channels-server-android-arm64/dvr.searchResultToAirings(0x4420534a50, 0x4429a772c0, 0x2, 0x2, 0x2, 0x2, 0x0)
	/home/vagrant/channels-server-android-arm64/dvr/search.go:584 +0x13c
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).SearchAiringsWithQueryOnIndices(0x442067e000, 0x2029460f20, 0x4421ecb300, 0x4429a772c0, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, ...)
	/home/vagrant/channels-server-android-arm64/dvr/search.go:530 +0x88
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).SearchAiringsWithQuery(0x442067e000, 0x2029460f20, 0x4421ecb300, 0x20294f9f70, 0x0, 0x0)
	/home/vagrant/channels-server-android-arm64/dvr/search.go:494 +0x60
_/home/vagrant/channels-server-android-arm64/dvr.(*Rule).SearchMatchingAirings(0x44290d6aa0, 0x442067e000, 0x20294f9f70, 0x44254d3788, 0x0)
	/home/vagrant/channels-server-android-arm64/dvr/rule.go:271 +0x34
_/home/vagrant/channels-server-android-arm64/dvr.(*Rule).FindAirings(0x44290d6aa0, 0x0, 0x44254d35f8, 0x44254d3788)
	/home/vagrant/channels-server-android-arm64/dvr/rule.go:264 +0x28
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).RunScheduler(0x442067e000)
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:614 +0x244
created by _/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).Run
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:151 +0x54

goroutine 159 [select, 497 minutes]:
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).RunRecorder(0x442067e000)
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:896 +0x5c8
created by _/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).Run
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:152 +0x74

goroutine 160 [select, 12 minutes]:
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).RunProcessor(0x442067e000)
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:793 +0x7d8
created by _/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).Run
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:153 +0x94

goroutine 161 [select, 13 minutes]:
_/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).RunPruner(0x442067e000)
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:512 +0x200
created by _/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).Run
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:154 +0xb4

goroutine 226 [select]:
_/home/vagrant/channels-server-android-arm64/dvr.(*Hub).run(0x44202692c0)
	/home/vagrant/channels-server-android-arm64/dvr/events.go:43 +0x178
created by _/home/vagrant/channels-server-android-arm64/dvr.(*Recorder).Run
	/home/vagrant/channels-server-android-arm64/dvr/recorder.go:155 +0xd8

goroutine 229 [IO wait, 2352 minutes]:
internal/poll.runtime_pollWait(0x202a3df970, 0x72, 0x0)
	/home/vagrant/go/src/runtime/netpoll.go:173 +0x3c
internal/poll.(*pollDesc).wait(0x44206a6f98, 0x72, 0x0, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:85 +0xa0
internal/poll.(*pollDesc).waitRead(0x44206a6f98, 0x442075e000, 0x2000, 0x2000)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:90 +0x30
internal/poll.(*FD).ReadFrom(0x44206a6f80, 0x442075e000, 0x2000, 0x2000, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_unix.go:169 +0x124
net.(*netFD).readFrom(0x44206a6f80, 0x442075e000, 0x2000, 0x2000, 0x202976c458, 0x65, 0x442075e000, 0x202ddafc10, 0x44206a6f01)
	/home/vagrant/go/src/net/fd_unix.go:208 +0x3c
net.(*UDPConn).readFrom(0x44202566e0, 0x442075e000, 0x2000, 0x2000, 0x0, 0x2028b49044, 0x44206a6f80, 0x2028b4906c)
	/home/vagrant/go/src/net/udpsock_posix.go:47 +0x3c
net.(*UDPConn).ReadFromUDP(0x44202566e0, 0x442075e000, 0x2000, 0x2000, 0x2000, 0x2000, 0x0, 0x0)
	/home/vagrant/go/src/net/udpsock.go:106 +0x50
main.fakejourHandler()
	/home/vagrant/channels-server-android-arm64/fakejour.go:40 +0x98
created by main.setupFakejour
	/home/vagrant/channels-server-android-arm64/fakejour.go:25 +0x1ac

goroutine 231 [select, 36 minutes]:
main.StartUpdater.func1()
	/home/vagrant/channels-server-android-arm64/updater.go:68 +0xd8
created by main.StartUpdater
	/home/vagrant/channels-server-android-arm64/updater.go:42 +0x38

goroutine 232 [select, 2352 minutes, locked to thread]:
runtime.gopark(0x2028f08c68, 0x0, 0x2028bbeb91, 0x6, 0x18, 0x1)
	/home/vagrant/go/src/runtime/proc.go:277 +0xe8
runtime.selectgo(0x44207d5f50, 0x442064e120)
	/home/vagrant/go/src/runtime/select.go:395 +0xcbc
runtime.ensureSigM.func1()
	/home/vagrant/go/src/runtime/signal_unix.go:511 +0x1dc
runtime.goexit()
	/home/vagrant/go/src/runtime/asm_arm64.s:931 +0x4

goroutine 9990 [IO wait]:
internal/poll.runtime_pollWait(0x202a3df370, 0x72, 0x0)
	/home/vagrant/go/src/runtime/netpoll.go:173 +0x3c
internal/poll.(*pollDesc).wait(0x44205be718, 0x72, 0xffffffffffffff00, 0x20294643a0, 0x202945e9a8)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:85 +0xa0
internal/poll.(*pollDesc).waitRead(0x44205be718, 0x4420234000, 0x1000, 0x1000)
	/home/vagrant/go/src/internal/poll/fd_poll_runtime.go:90 +0x30
internal/poll.(*FD).Read(0x44205be700, 0x4420234000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/home/vagrant/go/src/internal/poll/fd_unix.go:125 +0x138
net.(*netFD).Read(0x44205be700, 0x4420234000, 0x1000, 0x1000, 0x44206a5a48, 0x4420134a00, 0x20285d1b98)
	/home/vagrant/go/src/net/fd_unix.go:202 +0x3c
net.(*conn).Read(0x44206a81b8, 0x4420234000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/home/vagrant/go/src/net/net.go:176 +0x50
net/http.(*persistConn).Read(0x44207ce000, 0x4420234000, 0x1000, 0x1000, 0x4, 0x442065f140, 0x442064e238)
	/home/vagrant/go/src/net/http/transport.go:1391 +0xe8
bufio.(*Reader).fill(0x4420586000)
	/home/vagrant/go/src/bufio/bufio.go:97 +0x104
bufio.(*Reader).Peek(0x4420586000, 0x1, 0x0, 0x0, 0x1, 0x44200643c0, 0x0)
	/home/vagrant/go/src/bufio/bufio.go:129 +0x2c
net/http.(*persistConn).readLoop(0x44207ce000)
	/home/vagrant/go/src/net/http/transport.go:1539 +0x140
created by net/http.(*Transport).dialConn
	/home/vagrant/go/src/net/http/transport.go:1186 +0x78c
2017/10/10 15:38:08 [SYS] Starting Channels DVR v2017.10.06.1807 (android-arm64) in /data/data/com.getchannels.dvr/files/channels-dvr/data
2017/10/10 15:38:10 [HDR] Found 3 devices
2017/10/10 15:38:10 [SYS] Started HTTP Server
2017/10/10 15:38:57 [DVR] Recording engine started in /storage/emulated/0/ChannelsDVR
2017/10/10 15:38:57 [SYS] Bonjour service running for dvr-shield.local. [192.168.86.21]
2017/10/10 15:38:57 [NAT] Failed to discover gateway: no gateway found
2017/10/10 15:38:58 [NAT] Successfully mapped port 8089 using upnp
2017/10/10 15:38:58 [DVR] Deleting expired job 1507647600-ch1405 Alien vs. Predator (2004)
2017/10/10 15:38:58 [DVR] Deleting expired job 1507651200-ch1178 A Fistful of Dollars (1964)
2017/10/10 15:38:58 [DVR] Waiting 2h21m1.741454465s until next job 1507672800-ch1405 Lake Placid (1999)
2017/10/10 15:39:00 [SYS] Created database snapshot: backup-20171010.153859
2017/10/10 15:39:08 [IDX] Pruned 527 expired airings from USA-OTA21104 in 1.152339218s.
2017/10/10 15:39:14 [IDX] Pruned 1178 expired airings from USA-MD53402-X in 5.34043604s.