Project

General

Profile

Bug #3086

Assert triger on resume from hibernate

Added by Ivan Kalvachev about 6 years ago. Updated almost 6 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Crashes
Target version:
-
Start date:
2015-09-17
Due date:
% Done:

0%

Estimated time:
Found in version:
4.1-398~g4844b32
Affected Versions:

Description

I've been using suspend to ram with running tvheadend for quite a while, without problem on tvheadend side.

Recently I tested if the new linux-4.2 kernel has fixed some of the issues with hybrid suspend (that suspends to both disk and ram). It seems to work, but I noticed that tvheadend has crashed.

The following log is with current version of git. The time moving with +3 hours is bug in hibernate, it seems to happen at random. It's not related to this bug, it triggers anyway.
The same crash also happens with (4.1-341~g4937bd2) that I've been using for 2 months. (Aka, it is not regression by recent `idnode.c` changes).


2015-09-16 12:24:45.540 [ INFO] linuxdvb: adapter removed /dev/dvb/adapter0
2015-09-16 12:24:55.142 [ INFO] linuxdvb: adapter added /dev/dvb/adapter0
2015-09-16 12:24:55.143 [ INFO] linuxdvb: adapter 0 setting exlusive flag
2015-09-16 12:27:49.712 [ ERROR] http: 127.0.0.1: HTTP/1.1 GET /capabilities?_dc -- 401
2015-09-16 12:27:50.148 [ ERROR] http: 127.0.0.1: HTTP/1.1 GET /api/channeltag/list -- 401
2015-09-16 12:27:50.150 [ ERROR] http: 127.0.0.1: HTTP/1.1 GET /api/channel/list -- 401
2015-09-16 12:27:50.153 [ ERROR] http: 127.0.0.1: HTTP/1.1 GET /api/epg/content_type/list -- 401
2015-09-16 12:27:50.156 [ ERROR] http: 127.0.0.1: HTTP/1.1 POST /api/epg/content_type/list -- 401
2015-09-16 12:27:50.159 [ ERROR] http: 127.0.0.1: HTTP/1.1 POST /languages -- 401
2015-09-16 12:27:50.161 [ ERROR] http: 127.0.0.1: HTTP/1.1 POST /languages -- 401
2015-09-16 12:27:52.085 [ ERROR] http: 127.0.0.1: HTTP/1.1 POST /api/epg/events/grid -- 401
2015-09-16 12:27:52.184 [ ERROR] http: 127.0.0.1: HTTP/1.1 POST /api/epg/events/grid -- 401
2015-09-16 12:27:53.498 [ ERROR] http: 127.0.0.1: HTTP/1.1 POST /comet/poll -- 401
tcp_server: tvhpoll_wait: Прекъснато системно извикване
2015-09-16 15:34:29.992 [ INFO] dvr: "????????????????????? " on "NOVA TV" recorder starting
2015-09-16 15:34:29.993 [ INFO] subscription: 0015: "DVR: ????????????????? " unsubscribing from "NOVA TV"
2015-09-16 15:34:29.993 [ INFO] dvr: "????????????????????? " on "NOVA TV": End of program: Time missed
2015-09-16 15:34:30.942 [ INFO] mpegts: 586MHz in DVB-T 1 - tuning on DRXK DVB-C DVB-T : DVB-T #0
2015-09-16 15:34:35.588 [ INFO] subscription: 0016: "epggrab" subscribing to mux "586MHz", weight: 4, adapter: "DRXK DVB-C DVB-T : DVB-T #0", network: "DVB-T 1", service: "Raw PID Subscription"
2015-09-16 15:34:35.589 [ INFO] linuxdvb: adapter removed /dev/dvb/adapter0
2015-09-16 15:34:35.589 [ INFO] subscription: 0016: "epggrab" unsubscribing
2015-09-16 15:34:35.864 [ INFO] linuxdvb: adapter added /dev/dvb/adapter0
2015-09-16 15:34:35.864 [ INFO] linuxdvb: adapter 0 setting exlusive flag
Id node collision (374dfbde2337aa4ad054475a194767c8)
2015-09-16 15:34:35.944 [ ALERT] CRASH: Signal: 6 in PRG: tvheadend (4.1-398~g4844b32) [79df802b4a7bb8891571ce45374eb19ddef1fc18] CWD: /mnt/dvb
2015-09-16 15:34:35.944 [ ALERT] CRASH: Fault address 0x3e8000069c6 (N/A)
2015-09-16 15:34:35.944 [ ALERT] CRASH: Loaded libraries: linux-vdso.so.1 /usr/lib64/libssl.so.1 /usr/lib64/libcrypto.so.1 /usr/lib64/libz.so.1 /usr/lib64/libXv.so.1 /usr/lib64/libX11.so.6 /usr/lib64/libXext.so.6 /usr/lib64/libva.so.1 /usr/lib64/libva-x11.so.1 /usr/lib64/libxcb.so.1 /usr/lib64/libxcb-shm.so.0 /usr/lib64/libxcb-xfixes.so.0 /usr/lib64/libxcb-render.so.0 /usr/lib64/libxcb-shape.so.0 /usr/lib64/libasound.so.2 /usr/lib64/libSDL-1.2.so.0 /lib64/libpthread.so.0 /usr/lib64/libxvidcore.so.4 /usr/lib64/libx265.so.59 /usr/lib64/libx264.so.142 /usr/lib64/libvorbisenc.so.2 /usr/lib64/libvorbis.so.0 /usr/lib64/libogg.so.0 /usr/lib64/libvidstab.so.0.9 /usr/lib64/libtheoraenc.so.1 /usr/lib64/libtheoradec.so.1 /usr/lib64/libmp3lame.so.0 /usr/lib64/libfdk-aac.so.1 /usr/lib64/libfaac.so.0 /lib64/libm.so.6 /lib64/liblzma.so.5 /lib64/libbz2.so.1 /lib64/libdl.so.2 /lib64/librt.so.1 /lib64/libc.so.6 /usr/lib64/libXau.so.6 /usr/lib64/libXdmcp.so.6 /usr/lib64/libXfixes.so.3 /usr/lib64/libdrm.so.2 /lib64/ld-linux-x86-64.so.2 /usr/lib64/libXrandr.so.
2015-09-16 15:34:35.944 [ ALERT] CRASH: Register dump [23]: 00007f9a5aff39a000007f9a576607000000000000000008000000000000020600000000000000000000000000000000000000000000000000007f9a2c000d0000000000000069c600000000000069cb00000000039f981000007f9a2c0096a00000000000000006000000000000000000007f9a5ac6109700007f9a5765e34800007f9a5ac610970000000000000206000000000000003300000000000000000000000000000000fffffffe7ffbba130000000000000000
2015-09-16 15:34:35.944 [ ALERT] CRASH: STACKTRACE
2015-09-16 15:34:36.374 [ ALERT] CRASH: /tmp/tvheadend-4.1/tvheadend-4.1_git/src/trap.c:148 0x4a8286
2015-09-16 15:34:36.383 [ ALERT] CRASH: ??:0 0x7f9a5db3a340
2015-09-16 15:34:36.383 [ ALERT] CRASH: gsignal+0x37 (/lib64/libc.so.6)
2015-09-16 15:34:36.383 [ ALERT] CRASH: abort+0x16a (/lib64/libc.so.6)
2015-09-16 15:34:36.398 [ ALERT] CRASH: /tmp/tvheadend-4.1/tvheadend-4.1_git/src/idnode.c:157 0x479492
2015-09-16 15:34:36.412 [ ALERT] CRASH: /tmp/tvheadend-4.1/tvheadend-4.1_git/src/input.c:43 0x4b448c
2015-09-16 15:34:36.428 [ ALERT] CRASH: /tmp/tvheadend-4.1/tvheadend-4.1_git/src/input/mpegts/linuxdvb/linuxdvb_adapter.c:162 0x51bbcc
2015-09-16 15:34:36.445 [ ALERT] CRASH: /tmp/tvheadend-4.1/tvheadend-4.1_git/src/input/mpegts/linuxdvb/linuxdvb_adapter.c:531 0x51bdc0
2015-09-16 15:34:36.460 [ ALERT] CRASH: /tmp/tvheadend-4.1/tvheadend-4.1_git/src/fsmonitor.c:89 0x4b8103
2015-09-16 15:34:36.474 [ ALERT] CRASH: /tmp/tvheadend-4.1/tvheadend-4.1_git/src/wrappers.c:149 0x47c9b7
2015-09-16 15:34:36.482 [ ALERT] CRASH: ??:0 0x7f9a5db30704


History

#1

Updated by Jaroslav Kysela about 6 years ago

Could you try this patch ?

diff --git a/src/input/mpegts/linuxdvb/linuxdvb_adapter.c b/src/input/mpegts/linuxdvb/linuxdvb_adapter.c
index 5a1108b..14f3dc8 100644
--- a/src/input/mpegts/linuxdvb/linuxdvb_adapter.c
+++ b/src/input/mpegts/linuxdvb/linuxdvb_adapter.c
@@ -540,6 +540,7 @@ linuxdvb_adapter_scan ( void )
 static void
 devdvb_create ( fsmonitor_t *fsm, const char *path )
 {
+  linuxdvb_adapter_del(path);
   linuxdvb_adapter_add(path);
 }

#2

Updated by Ivan Kalvachev almost 6 years ago

Jaroslav Kysela wrote:

Could you try this patch ?
[...]

This seems to move the crash somewhere else. I think I'll recompile with -O0 (it is -O2 now), as the line that calls abort doesn't seem to hold assert.
Maybe I should run it under valgrind too.


2015-09-18 12:11:28.140 [ INFO] linuxdvb: adapter removed /dev/dvb/adapter0
tcp_server: tvhpoll_wait: Прекъснато системно извикване
2015-09-18 12:11:37.920 [ INFO] linuxdvb: adapter added /dev/dvb/adapter0
2015-09-18 12:11:37.920 [ INFO] linuxdvb: adapter 0 setting exlusive flag
Id node collision (374dfbde2337aa4ad054475a194767c8)
2015-09-18 12:11:38.123 [ ALERT] CRASH: Signal: 6 in PRG: tvheadend (4.1-398~g4844b32) [4d318d93dcf65ec4fd5e46a1f1d66e747ec5e19a] CWD: /mnt/dvb
2015-09-18 12:11:38.123 [ ALERT] CRASH: Fault address 0x3e80000346c (N/A)
2015-09-18 12:11:38.123 [ ALERT] CRASH: Loaded libraries: linux-vdso.so.1 /usr/lib64/libssl.so.1 /usr/lib64/libcrypto.so.1 /usr/lib64/libz.so.1 /usr/lib64/libXv.so.1 /usr/lib64/libX11.so.6 /usr/lib64/libXext.so.6 /usr/lib64/libva.so.1 /usr/lib64/libva-x11.so.1 /usr/lib64/libxcb.so.1 /usr/lib64/libxcb-shm.so.0 /usr/lib64/libxcb-xfixes.so.0 /usr/lib64/libxcb-render.so.0 /usr/lib64/libxcb-shape.so.0 /usr/lib64/libasound.so.2 /usr/lib64/libSDL-1.2.so.0 /lib64/libpthread.so.0 /usr/lib64/libxvidcore.so.4 /usr/lib64/libx265.so.59 /usr/lib64/libx264.so.142 /usr/lib64/libvorbisenc.so.2 /usr/lib64/libvorbis.so.0 /usr/lib64/libogg.so.0 /usr/lib64/libvidstab.so.0.9 /usr/lib64/libtheoraenc.so.1 /usr/lib64/libtheoradec.so.1 /usr/lib64/libmp3lame.so.0 /usr/lib64/libfdk-aac.so.1 /usr/lib64/libfaac.so.0 /lib64/libm.so.6 /lib64/liblzma.so.5 /lib64/libbz2.so.1 /lib64/libdl.so.2 /lib64/librt.so.1 /lib64/libc.so.6 /usr/lib64/libXau.so.6 /usr/lib64/libXdmcp.so.6 /usr/lib64/libXfixes.so.3 /usr/lib64/libdrm.so.2 /lib64/ld-linux-x86-64.so.2 /usr/lib64/libXrandr.so.
2015-09-18 12:11:38.123 [ ALERT] CRASH: Register dump [23]: 00007f386b2669a000007f38678d37000000000000000008000000000000020600000000000000000000000000000000000000000000000000007f3814000ad0000000000000346c000000000000347600000000022a888000007f38140091800000000000000006000000000000000000007f386aed409700007f38678d134800007f386aed40970000000000000206000000000000003300000000000000000000000000000000fffffffe7ffbba130000000000000000
2015-09-18 12:11:38.123 [ ALERT] CRASH: STACKTRACE
2015-09-18 12:11:39.609 [ ALERT] CRASH: /tmp/tvheadend-4.1_GIT20150917_0400/src/htsbuf.c:423 0x4a8286
2015-09-18 12:11:39.617 [ ALERT] CRASH: ??:0 0x7f386ddad340
2015-09-18 12:11:39.618 [ ALERT] CRASH: gsignal+0x37 (/lib64/libc.so.6)
2015-09-18 12:11:39.618 [ ALERT] CRASH: abort+0x16a (/lib64/libc.so.6)
2015-09-18 12:11:39.637 [ ALERT] CRASH: /tmp/tvheadend-4.1_GIT20150917_0400/src/idnode.c:109 0x479492
2015-09-18 12:11:39.652 [ ALERT] CRASH: /tmp/tvheadend-4.1_GIT20150917_0400/src/input.c:68 (discriminator 3) 0x4b448c
2015-09-18 12:11:39.671 [ ALERT] CRASH: /tmp/tvheadend-4.1_GIT20150917_0400/src/input/mpegts/linuxdvb/linuxdvb_frontend.c:1064 0x51bbcc
2015-09-18 12:11:39.688 [ ALERT] CRASH: /tmp/tvheadend-4.1_GIT20150917_0400/src/input/mpegts/linuxdvb/linuxdvb_frontend.c:828 0x51bdc0
2015-09-18 12:11:39.707 [ ALERT] CRASH: /tmp/tvheadend-4.1_GIT20150917_0400/src/fsmonitor.c:77 (discriminator 7) 0x4b8103
2015-09-18 12:11:39.722 [ ALERT] CRASH: /tmp/tvheadend-4.1_GIT20150917_0400/src/wrappers.c:139 0x47c9b7
2015-09-18 12:11:39.730 [ ALERT] CRASH: ??:0 0x7f386dda3704


#3

Updated by Jaroslav Kysela almost 6 years ago

The "Id node collision (374dfbde2337aa4ad054475a194767c8)" is important. It means that linuxdvb adapter/frontend object is in the idnode tree already. I would try to trace all delete/create calls in src/input/mpegts/linuxdvb/linuxdvb_adapter.c .

#4

Updated by Ivan Kalvachev almost 6 years ago

Jaroslav Kysela wrote:

The "Id node collision (374dfbde2337aa4ad054475a194767c8)" is important. It means that linuxdvb adapter/frontend object is in the idnode tree already. I would try to trace all delete/create calls in src/input/mpegts/linuxdvb/linuxdvb_adapter.c .

Give me a patch, I'll return with logs.

BTW, that hash is present in my first log, too. I remember that I've searched it as string in the config files, without finding it.

Also available in: Atom PDF