Cannot Access DVR Server

Just lost connectivity to Channels DVR server while watching recorded show on CCGTV client. Server is on Asustor AS5304T NAS.

Now cannot connect to Channels DVR from NAS Controls: receive message in browser - Unable to connect

Firefox can’t establish a connection to the server at 192.168.50.42:8089.

Not sure how to submit logs from this situation. Server software was updated to current Prerelease as of about 0900z this morning.

I tried rebooting the NAS, but no joy. I haven't observed other NAS apps malfunctioning: Plex server remains functional, FWIW.

Any suggestions on how to recover short of uninstalling and reinstalling the server from/to the NAS?

Does Asustor App Central show it installed and running?

Yes, it does show it installed and running.

I don't have an Asustor NAS, but can't you stop and start Channels DVR server from App Central?
I would try that in case it crashed.

OK, I just tried stopping and restarting Channels DVR App from App Central, with no improvement: still can’t establish a connection to the server at 192.168.50.42:8089.

As a followup, I tried netstat -tunlp from a Putty session, but see no reference to port 8089 nor to Channels DVR app in the system response. As a Linux/ADM newbie, I'm not sure whether that's relevant?

Simplest might be to reboot the NAS.

If you can SSH or SFTP in look at this file to see if there is an error or crash report at the end:

/usr/local/AppCentral/ChannelsDVR/channels-dvr/data/channels-dvr.log

On my Synology, this is how it shows up

Proto Recv-Q Send-Q Local Address Foreign Address State  PID/Program name
tcp6       0      0 :::8089       :::*            LISTEN 1508/../latest/chan

Rebooting NAS did not help.

The Log file looks like the below. I note a Panic Runtime error at 11:59, but if that is local (CDT) time, that's about an hour before the crash.

End of Log FIle:

2021/09/28 12:59:00.004047 [DVR] Starting job 1632851940-21 The Outer Limits on ch=[6751]
2021/09/28 12:59:00.004429 [TNR] Sharing existing connection to TVE-YouTubeTV for ch6751 COMET (clients=2, len=0)
2021/09/28 12:59:00.004661 [DVR] Recording for job 1632851940-21 from TVE-YouTubeTV ch6751 into "TV/The Outer Limits/The Outer Limits S04E08 1998-03-13 Rite of Passage 2021-09-28-1259.mpg" for 1h1m59.995871846s
2021/09/28 12:59:00.009604 [DVR] Starting job 1632851940-ch6072 The Incredible Dr. Pol on ch=[6072]
2021/09/28 12:59:00.009666 [DVR] Waiting 59m59.990340886s until next job 1632855540-ch6072 The Incredible Dr. Pol
2021/09/28 12:59:00.010447 [TNR] Sharing existing connection to TVE-YouTubeTV for ch6072 NGWILD (clients=2, len=0)
2021/09/28 12:59:00.010658 [DVR] Recording for job 1632851940-ch6072 from TVE-YouTubeTV ch6072 into "TV/The Incredible Dr. Pol/The Incredible Dr. Pol S16E04 2020-02-08 Fairy Dogmother 2021-09-28-1259.mpg" for 1h1m59.990206114s
2021/09/28 12:59:00.939980 [IDX] Generating video index for job 1632851940-21
2021/09/28 12:59:01.092174 [IDX] Generating video index for job 1632851940-ch6072
2021/09/28 13:01:00.184811 [MTS] Statistics for "TV/The Outer Limits/The Outer Limits S04E05 1998-02-20 In the Zone 2021-09-28-1159.mpg": skipped=0 unhandled_packets=0 discontinuity_detected=105 transport_errors=0 invalid_pts=0 invalid_dts=0 saw_pcr=true saw_pmt=true highest_pts=3733.269289
2021/09/28 13:01:00.188404 [DVR] Finished job 1632848340-21 The Outer Limits
2021/09/28 13:01:00.320789 [MTS] Statistics for "TV/The Incredible Dr. Pol/The Incredible Dr. Pol S16E03 2020-02-01 Cat Scratch Fever 2021-09-28-1159.mpg": skipped=0 unhandled_packets=0 discontinuity_detected=56 transport_errors=0 invalid_pts=0 invalid_dts=0 saw_pcr=true saw_pmt=true highest_pts=6794.705244
2021/09/28 13:01:00.324674 [DVR] Finished job 1632848340-ch6072 The Incredible Dr. Pol
2021/09/28 13:01:00.521152 [DVR] Marking expired job 1632848340-ch6072 The Incredible Dr. Pol
2021/09/28 13:01:00.521941 [DVR] Processing file-850: TV/The Outer Limits/The Outer Limits S04E05 1998-02-20 In the Zone 2021-09-28-1159.mpg
panic: runtime error: slice bounds out of range [:50] with length 12

goroutine 95 [running]:
github.com/fancybits/channels-server/transcoder.(*ExtraData).UnmarshalJSON(0xc000b162f8, {0xc00062eb1a, 0xc4, 0xc001beef00})
github.com/fancybits/channels-server/transcoder/ffprobe.go:275 +0x38f
encoding/json.(*decodeState).literalStore(0xc0006683f0, {0xc00062eb1a, 0xc4, 0x12e6}, {0x1469500, 0xc000b162f8, 0x1676620}, 0x0)
encoding/json/decode.go:871 +0x1f83
encoding/json.(*decodeState).value(0xc0006683f0, {0x1469500, 0xc000b162f8, 0x9})
encoding/json/decode.go:387 +0x126
encoding/json.(*decodeState).object(0xc0006683f0, {0x1676620, 0xc000b16188, 0xb})
encoding/json/decode.go:774 +0xca5
encoding/json.(*decodeState).value(0xc0006683f0, {0x1676620, 0xc000b16188, 0x2})
encoding/json/decode.go:373 +0x45
encoding/json.(*decodeState).array(0xc0006683f0, {0x1425700, 0xc000430bd0, 0xc001096001})
encoding/json/decode.go:561 +0x626
encoding/json.(*decodeState).value(0xc0006683f0, {0x1425700, 0xc000430bd0, 0xc00062e1dd})
encoding/json/decode.go:363 +0x7e
encoding/json.(*decodeState).object(0xc0006683f0, {0x1523080, 0xc000430b40, 0x2})
encoding/json/decode.go:774 +0xca5
encoding/json.(*decodeState).value(0xc0006683f0, {0x1523080, 0xc000430b40, 0x90})
encoding/json/decode.go:373 +0x45
encoding/json.(*decodeState).unmarshal(0xc0006683f0, {0x1523080, 0xc000430b40})
encoding/json/decode.go:180 +0x1de
encoding/json.Unmarshal({0xc00062e000, 0x76, 0x0}, {0x1523080, 0xc000430b40})
encoding/json/decode.go:107 +0x125
github.com/fancybits/channels-server/transcoder.ProbeFile({0xc000cf2100, 0x1})
github.com/fancybits/channels-server/transcoder/ffprobe.go:152 +0x69
github.com/fancybits/channels-server/dvr.(*File).ProcessProbe(0xc000a0b000)
github.com/fancybits/channels-server/dvr/file.go:1405 +0x94
github.com/fancybits/channels-server/dvr.(*File).Process(0x16daa8c)
github.com/fancybits/channels-server/dvr/file.go:1255 +0x1e
github.com/fancybits/channels-server/dvr.(*Recorder).RunProcessor.func3(0xc000a0b000)
github.com/fancybits/channels-server/dvr/recorder.go:463 +0x152
github.com/fancybits/channels-server/dvr.(*Recorder).EachFilteredFile(0xc000dcb200, 0x16ab28b, 0xc001661dd8)
github.com/fancybits/channels-server/dvr/db_files.go:265 +0x15a
github.com/fancybits/channels-server/dvr.(*Recorder).EachFile(...)
github.com/fancybits/channels-server/dvr/db_files.go:230
github.com/fancybits/channels-server/dvr.(*Recorder).RunProcessor(0xc000dcb200)
github.com/fancybits/channels-server/dvr/recorder.go:451 +0x785
created by github.com/fancybits/channels-server/dvr.(*Recorder).Run
github.com/fancybits/channels-server/dvr/recorder.go:221 +0x129
2021/09/28 13:28:52.808183 [SYS] Starting Channels DVR v2021.09.27.2323 (linux-x86_64 pid:4826) in /usr/local/AppCentral/ChannelsDVR/channels-dvr/data
2021/09/28 13:28:52.831809 [SYS] Started HTTP Server
2021/09/28 13:28:53.382990 [HDR] Found 4 devices
2021/09/28 13:28:54.207363 [ERR] Failed to request m3u for PlutoTV: Get "http://127.0.0.1:8080/playlist.m3u": dial tcp 127.0.0.1:8080: connect: connection refused
2021/09/28 13:28:56.425913 [DVR] Recording engine started in /volume1/MediaBank/Channels DVR
2021/09/28 13:28:56.426470 [SYS] Bonjour service running for dvr-byers-media-asustor.local. [192.168.50.42 192.168.50.41]
2021/09/28 13:28:56.437218 [DVR] Starting job 1632851940-21 The Outer Limits on ch=[6751]
2021/09/28 13:28:57.607164 [TVE] stream timestamps: comet: start_at=2021-09-28T13:27:57-05:00 current_at=2021-09-28T13:28:18-05:00 end_at=2021-09-28T13:28:26-05:00
2021/09/28 13:28:57.607444 [TNR] Opened connection to TVE-YouTubeTV for ch6751 COMET
2021/09/28 13:28:57.607478 [DVR] Starting job 1632851940-ch6072 The Incredible Dr. Pol on ch=[6072]
2021/09/28 13:28:57.607488 [DVR] Recording for job 1632851940-21 from TVE-YouTubeTV ch6751 into "TV/The Outer Limits/The Outer Limits S04E08 1998-03-13 Rite of Passage 2021-09-28-1259.mpg" for 32m3.562717543s
2021/09/28 13:28:57.607503 [DVR] Waiting 30m2.392499541s until next job 1632855540-ch6072 The Incredible Dr. Pol
2021/09/28 13:28:59.368281 [DVR] Processing file-850: TV/The Outer Limits/The Outer Limits S04E05 1998-02-20 In the Zone 2021-09-28-1159.mpg
panic: runtime error: slice bounds out of range [:50] with length 12

goroutine 132 [running]:
github.com/fancybits/channels-server/transcoder.(*ExtraData).UnmarshalJSON(0xc0009573f8, {0xc0015dab1a, 0xc4, 0xc0015a9b00})
github.com/fancybits/channels-server/transcoder/ffprobe.go:275 +0x38f
encoding/json.(*decodeState).literalStore(0xc0003b4000, {0xc0015dab1a, 0xc4, 0x12e6}, {0x1469500, 0xc0009573f8, 0x1676620}, 0x0)
encoding/json/decode.go:871 +0x1f83
encoding/json.(*decodeState).value(0xc0003b4000, {0x1469500, 0xc0009573f8, 0x9})
encoding/json/decode.go:387 +0x126
encoding/json.(*decodeState).object(0xc0003b4000, {0x1676620, 0xc000957288, 0xb})
encoding/json/decode.go:774 +0xca5
encoding/json.(*decodeState).value(0xc0003b4000, {0x1676620, 0xc000957288, 0x2})
encoding/json/decode.go:373 +0x45
encoding/json.(*decodeState).array(0xc0003b4000, {0x1425700, 0xc00103e090, 0xc0009da001})
encoding/json/decode.go:561 +0x626
encoding/json.(*decodeState).value(0xc0003b4000, {0x1425700, 0xc00103e090, 0xc0015da1dd})
encoding/json/decode.go:363 +0x7e
encoding/json.(*decodeState).object(0xc0003b4000, {0x1523080, 0xc00103e000, 0x0})
encoding/json/decode.go:774 +0xca5
encoding/json.(*decodeState).value(0xc0003b4000, {0x1523080, 0xc00103e000, 0x90})
encoding/json/decode.go:373 +0x45
encoding/json.(*decodeState).unmarshal(0xc0003b4000, {0x1523080, 0xc00103e000})
encoding/json/decode.go:180 +0x1de
encoding/json.Unmarshal({0xc0015da000, 0x76, 0x0}, {0x1523080, 0xc00103e000})
encoding/json/decode.go:107 +0x125
github.com/fancybits/channels-server/transcoder.ProbeFile({0xc001d1ef00, 0x1})
github.com/fancybits/channels-server/transcoder/ffprobe.go:152 +0x69
github.com/fancybits/channels-server/dvr.(*File).ProcessProbe(0xc00156a000)
github.com/fancybits/channels-server/dvr/file.go:1405 +0x94
github.com/fancybits/channels-server/dvr.(*File).Process(0x16daa8c)
github.com/fancybits/channels-server/dvr/file.go:1255 +0x1e
github.com/fancybits/channels-server/dvr.(*Recorder).RunProcessor.func3(0xc00156a000)
github.com/fancybits/channels-server/dvr/recorder.go:463 +0x152
github.com/fancybits/channels-server/dvr.(*Recorder).EachFilteredFile(0xc00035b400, 0x16ab28b, 0xc000c99dd8)
github.com/fancybits/channels-server/dvr/db_files.go:265 +0x15a
github.com/fancybits/channels-server/dvr.(*Recorder).EachFile(...)
github.com/fancybits/channels-server/dvr/db_files.go:230
github.com/fancybits/channels-server/dvr.(*Recorder).RunProcessor(0xc00035b400)
github.com/fancybits/channels-server/dvr/recorder.go:451 +0x785
created by github.com/fancybits/channels-server/dvr.(*Recorder).Run
github.com/fancybits/channels-server/dvr/recorder.go:221 +0x129
2021/09/28 14:05:40.997085 [SYS] Starting Channels DVR v2021.09.27.2323 (linux-x86_64 pid:23863) in /usr/local/AppCentral/ChannelsDVR/channels-dvr/data
2021/09/28 14:05:41.011998 [SYS] Started HTTP Server
2021/09/28 14:05:41.572607 [HDR] Found 4 devices
2021/09/28 14:05:41.777204 [M3U] Refreshed lineup for PlutoTV with 329 channels
2021/09/28 14:05:42.663637 [DVR] Recording engine started in /volume1/MediaBank/Channels DVR
2021/09/28 14:05:42.664303 [SYS] Bonjour service running for dvr-byers-media-asustor.local. [192.168.50.42 192.168.50.41]
2021/09/28 14:05:42.666854 [DVR] Marking expired job 1632851940-21 The Outer Limits
2021/09/28 14:05:42.907858 [DVR] Processing file-850: TV/The Outer Limits/The Outer Limits S04E05 1998-02-20 In the Zone 2021-09-28-1159.mpg
panic: runtime error: slice bounds out of range [:50] with length 12

goroutine 132 [running]:
github.com/fancybits/channels-server/transcoder.(*ExtraData).UnmarshalJSON(0xc0000a8cf8, {0xc00101ab1a, 0xc4, 0xc000ceee00})
github.com/fancybits/channels-server/transcoder/ffprobe.go:275 +0x38f
encoding/json.(*decodeState).literalStore(0xc00097c240, {0xc00101ab1a, 0xc4, 0x12e6}, {0x1469500, 0xc0000a8cf8, 0x1676620}, 0x0)
encoding/json/decode.go:871 +0x1f83
encoding/json.(*decodeState).value(0xc00097c240, {0x1469500, 0xc0000a8cf8, 0x9})
encoding/json/decode.go:387 +0x126
encoding/json.(*decodeState).object(0xc00097c240, {0x1676620, 0xc0000a8b88, 0xb})
encoding/json/decode.go:774 +0xca5
encoding/json.(*decodeState).value(0xc00097c240, {0x1676620, 0xc0000a8b88, 0x2})
encoding/json/decode.go:373 +0x45
encoding/json.(*decodeState).array(0xc00097c240, {0x1425700, 0xc00081c390, 0xc0008f8401})
encoding/json/decode.go:561 +0x626
encoding/json.(*decodeState).value(0xc00097c240, {0x1425700, 0xc00081c390, 0xc00101a1dd})
encoding/json/decode.go:363 +0x7e
encoding/json.(*decodeState).object(0xc00097c240, {0x1523080, 0xc00081c300, 0x2})
encoding/json/decode.go:774 +0xca5
encoding/json.(*decodeState).value(0xc00097c240, {0x1523080, 0xc00081c300, 0x90})
encoding/json/decode.go:373 +0x45
encoding/json.(*decodeState).unmarshal(0xc00097c240, {0x1523080, 0xc00081c300})
encoding/json/decode.go:180 +0x1de
encoding/json.Unmarshal({0xc00101a000, 0x76, 0x0}, {0x1523080, 0xc00081c300})
encoding/json/decode.go:107 +0x125
github.com/fancybits/channels-server/transcoder.ProbeFile({0xc000adc100, 0x1})
github.com/fancybits/channels-server/transcoder/ffprobe.go:152 +0x69
github.com/fancybits/channels-server/dvr.(*File).ProcessProbe(0xc000c2d000)
github.com/fancybits/channels-server/dvr/file.go:1405 +0x94
github.com/fancybits/channels-server/dvr.(*File).Process(0x16daa8c)
github.com/fancybits/channels-server/dvr/file.go:1255 +0x1e
github.com/fancybits/channels-server/dvr.(*Recorder).RunProcessor.func3(0xc000c2d000)
github.com/fancybits/channels-server/dvr/recorder.go:463 +0x152
github.com/fancybits/channels-server/dvr.(*Recorder).EachFilteredFile(0xc000a72c00, 0x16ab28b, 0xc000bb7dd8)
github.com/fancybits/channels-server/dvr/db_files.go:265 +0x15a
github.com/fancybits/channels-server/dvr.(*Recorder).EachFile(...)
github.com/fancybits/channels-server/dvr/db_files.go:230
github.com/fancybits/channels-server/dvr.(*Recorder).RunProcessor(0xc000a72c00)
github.com/fancybits/channels-server/dvr/recorder.go:451 +0x785
created by github.com/fancybits/channels-server/dvr.(*Recorder).Run
github.com/fancybits/channels-server/dvr/recorder.go:221 +0x129

Rename this file to .mpgx

Let the DVR boot up, then upgrade to prerelease

After prerelease is upgraded, rename file back to .mpg

Renamed the file, stopped then restarted the DVR App. It initially showed current at 2021-09-27-2323 (or thereabouts, working from memory), but after a minute showed an upgrade available, so I am now on 2021.09.28.1512.

Finally, renamed the file back to mpg, and was able to watch it on a client.

Looks like success. Thanks a million!

2 Likes

After implementing tmm1's fix, my Asustor looks very similar:

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 :::8089 :::* LISTEN 22681/channels-dvr