Project

General

Profile

Bug #3503

TVH as Sat>IP server is crashing with a segfault after switching channels

Added by Tux Droid over 6 years ago. Updated over 6 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
SAT>IP
Target version:
-
Start date:
2016-01-18
Due date:
% Done:

100%

Estimated time:
Found in version:
4.1-1363~ga46818c
Affected Versions:

Description

Hi,

TVH as Sat>IP server is crashing after a short time when switching channels with:

Jan 18 11:05:50 satip-server-71 tvheadend[23032]: linuxdvb: STV090x Multistandard : DVB-S #2 - read() EOVERFLOW
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: Signal: 11 in PRG: tvheadend (4.1-1363~ga46818c) [36639f5339f6639cf8d1d1194f6b954716742436] CWD: /  
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: Fault address 0x10 (Address not mapped)
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: Loaded libraries: /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1 /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/liburiparser.so.1 /usr/lib/x86_64-linux-gnu/libavahi-common.so.3 /usr/lib/x86_64-linux-gnu/libavahi-client.so.3 /lib/x86_64-linux-gnu/libdbus-1.so.3 /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/libm.so.6 /lib/x86_64-linux-gnu/librt.so.1 /lib/x86_64-linux-gnu/libc.so.6 /lib64/ld-linux-x86-64.so.2 /lib/x86_64-linux-gnu/libnss_compat.so.2 /lib/x86_64-linux-gnu/libnsl.so.1 /lib/x86_64-linux-gnu/libnss_nis.so.2 /lib/x86_64-linux-gnu/libnss_files.so.2  
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: Register dump [23]: 00007f852c002a38ffffffffe4000429ffffffffe40004190000000000000011000000000000000100007f853c0087a500000000000000bc00007f853c0087a50000000000000000000000000000004000007f852c002a3800007f852c0028600000000000000000000000000000001100007f855800844000007f858dffa82000000000004d2548000000000001020600000000000000330000000000000004000000000000000efffffffe7ffbba130000000000000010
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: STACKTRACE
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: /build/tvheadend/src/trap.c:148 0x46ca09
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: ??:0 0x7f859da49340
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: /build/tvheadend/src/input/mpegts/tsdemux.c:303 0x4d2548
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: /build/tvheadend/src/input/mpegts/mpegts_input.c:1291 0x4d0117
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: /build/tvheadend/src/wrappers.c:177 0x43b77e
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: ??:0 0x7f859da41182
Jan 18 11:05:51 satip-server-71 tvheadend[23032]: CRASH: clone+0x6d  (/lib/x86_64-linux-gnu/libc.so.6)
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f858dffb700 (LWP 23085)]
ts_recv_raw (t=0x7f852c002860, [email protected]=0x7f853c0087a5 "[email protected]\021\025", [email protected]=188) at src/input/mpegts/tsdemux.c:304
304    src/input/mpegts/tsdemux.c: Datei oder Verzeichnis nicht gefunden.

(gdb) info reg
rax            0x11    17
rbx            0x7f852c002860    140209945585760
rcx            0x7f8558008440    140210683806784
rdx            0x0    0
rsi            0x40    64
rdi            0x0    0
rbp            0x7f852c002a38    0x7f852c002a38
rsp            0x7f858dffa820    0x7f858dffa820
r8             0x7f852c002a38    140209945586232
r9             0xffffffffe4000429    -469760983
r10            0xffffffffe4000419    -469760999
r11            0x11    17
r12            0x1    1
r13            0x7f853c0087a5    140210214045605
r14            0xbc    188
r15            0x7f853c0087a5    140210214045605
rip            0x4d2548    0x4d2548 <ts_recv_raw+88>
eflags         0x10206    [ PF IF RF ]
cs             0x33    51
ss             0x2b    43
ds             0x0    0
es             0x0    0
fs             0x0    0
gs             0x0    0
(gdb) disassemble $pc-32,$pc+32
Dump of assembler code from 0x4d2528 to 0x4d2568:
   0x00000000004d2528 <ts_recv_raw+56>:    cmpl   $0x0,0x348(%rbx)
   0x00000000004d252f <ts_recv_raw+63>:    je     0x4d2572 <ts_recv_raw+130>
   0x00000000004d2531 <ts_recv_raw+65>:    mov    0x360(%rbx),%rdi
   0x00000000004d2538 <ts_recv_raw+72>:    movzbl 0x1(%r13),%esi
   0x00000000004d253d <ts_recv_raw+77>:    mov    $0x1,%r12d
   0x00000000004d2543 <ts_recv_raw+83>:    movzbl 0x2(%r13),%eax
=> 0x00000000004d2548 <ts_recv_raw+88>:    mov    0x10(%rdi),%edx
   0x00000000004d254b <ts_recv_raw+91>:    test   %edx,%edx
   0x00000000004d254d <ts_recv_raw+93>:    je     0x4d25b0 <ts_recv_raw+192>
   0x00000000004d254f <ts_recv_raw+95>:    mov    0x230(%rbx),%esi
   0x00000000004d2555 <ts_recv_raw+101>:    test   $0x8,%sil
   0x00000000004d2559 <ts_recv_raw+105>:    jne    0x4d2566 <ts_recv_raw+118>
   0x00000000004d255b <ts_recv_raw+107>:    or     $0x8,%esi
   0x00000000004d255e <ts_recv_raw+110>:    mov    %rbx,%rdi
   0x00000000004d2561 <ts_recv_raw+113>:    callq  0x459ff0 <service_set_streaming_status_flags_>
   0x00000000004d2566 <ts_recv_raw+118>:    orl    $0x1,0x234(%rbx)
End of assembler dump.
(gdb) bt full
#0  ts_recv_raw (t=0x7f852c002860, [email protected]=0x7f853c0087a5 "[email protected]\021\025", [email protected]=188) at src/input/mpegts/tsdemux.c:304
        pid = 17
        parent = 0
#1  0x00000000004d0117 in mpegts_input_process (mpkt=0x7f853c005940, mi=0x3d5e750) at src/input/mpegts/mpegts_input.c:1291
        f = <optimized out>
        mps = 0x7f852c001fa0
        tsb = <optimized out>
        type = 22
        s = <optimized out>
        st = <optimized out>
        table_wakeup = 0
        pid = 17
        tsb2_end = <optimized out>
        cc = <optimized out>
        cc2 = <optimized out>
        tsb2 = <optimized out>
        len = 6956
        llen = 188
        mm = 0x38cb8d0
        mmi = 0x519fd50
        muxname = "11992.5H in 19.2E", '\000' <repeats 238 times>
#2  mpegts_input_thread (p=0x3d5e750) at src/input/mpegts/mpegts_input.c:1431
        mp = 0x7f853c005940
        mi = 0x3d5e750
        bytes = 0
        buf = "STV090x Multistandard : DVB-S #2", '\000' <repeats 223 times>
#3  0x000000000043b77e in thread_wrapper (p=0x3176380) at src/wrappers.c:177
        ts = 0x3176380
        set = {__val = {16388, 0 <repeats 15 times>}}
        r = <optimized out>
#4  0x00007f859da41182 in start_thread (arg=0x7f858dffb700) at pthread_create.c:312
        __res = <optimized out>
        pd = 0x7f858dffb700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140211589723904, 5961968128057138104, 0, 0, 140211589724608, 140211589723904, -5929497348009108552, -5929533010627929160}, 
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread" 
#5  0x00007f859d26047d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.

No issues with minisatip on the same box.

Thank you for reviewing this ticket.

Kind regards.

Associated revisions

Revision a3d67251 (diff)
Added by Jaroslav Kysela over 6 years ago

mpegts service: fix wrong master/slave linking, fixes #3503

History

#1

Updated by Jaroslav Kysela over 6 years ago

Which clients?

#2

Updated by Tux Droid over 6 years ago

Hi,

VDR-plugin-satip and DVBviewer Lite.

I can reproduce this issue as often as I like.

The system is Ubuntu 14.04 server, kernel 4.3.

#3

Updated by Jaroslav Kysela over 6 years ago

  • Status changed from New to Fixed
  • % Done changed from 0 to 100
#4

Updated by Jaroslav Kysela over 6 years ago

Fixed in v4.1-1412-ga3d6725 .

#5

Updated by Tux Droid over 6 years ago

Thank You!

Also available in: Atom PDF