Project

General

Profile

Bug #5680

Tvheadend hangs (descrambling?)

Added by Pablo R. over 5 years ago. Updated about 5 years ago.

Status:
Invalid
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
2019-07-07
Due date:
% Done:

0%

Estimated time:
Found in version:
4.3-1801~g8f1de1621
Affected Versions:

Description

Note: This livelock happens on 4.3-1801~g8f1de1621 (It would not have to be related with my reported crash on #5659 )

(gdb) print global_lock

$2 = {mutex = pthread_mutex_t = {Type = Normal, Status = Acquired, possibly with waiters, Owner ID = 25538, Robust = No, Shared = No, Protocol = None}, magic1 = 3614061450, tid = 0, filename = 0x0, lineno = 0, tstamp = 0, waiters = {lh_first = 0x0}, link = {tqe_next = 0x0, tqe_prev = 0x0}, magic2 = 4181353505}

(gdb) thread find 25538

Thread 7 has target id 'Thread 0x7fe26db2e700 (LWP 25538)'

(gdb) info threads 7
7    Thread 0x7fe26db2e700 (LWP 25538) "tvh:mtimer" 0x000055e693f46763 in cc_service_start (cac=0x55e69746b530, t=0x55e697683360) at src/descrambler/cclient.c:1079

(gdb) thread 7

#2  0x000055e693f46763 in cc_service_start (cac=0x55e69746b530, t=0x55e697683360) at src/descrambler/cclient.c:1079
warning: Source file is more recent than executable. 
1079      tvh_mutex_lock(&t->s_stream_mutex);

(gdb) bt

#0  __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x00007fe271317023 in __GI___pthread_mutex_lock (mutex=mutex@entry=0x55e697683550)
    at ../nptl/pthread_mutex_lock.c:78
#2  0x000055e693f46763 in cc_service_start (cac=0x55e69746b530, t=0x55e697683360)
    at src/descrambler/cclient.c:1079
#3  0x000055e693ed6926 in caclient_start (t=t@entry=0x55e697683360) at src/descrambler/caclient.c:344
#4  0x000055e693ed30c6 in descrambler_service_start (t=t@entry=0x55e697683360)
    at src/descrambler/descrambler.c:472
#5  0x000055e693e40d38 in service_start (t=0x55e697683360, instance=31, weight=weight@entry=100,
    flags=flags@entry=131153, timeout=timeout@entry=0, postpone=postpone@entry=0) at src/service.c:334
#6  0x000055e693e42be0 in service_find_instance (s=<optimized out>, ch=0x55e69757a760,
    ti=<optimized out>, prch=<optimized out>, sil=sil@entry=0x7fe224279aa8,
    error=error@entry=0x7fe26db2d924, weight=100, flags=131153, timeout=0, postpone=0)
    at src/service.c:535
#7  0x000055e693e3d179 in subscription_start_instance (s=s@entry=0x7fe224279900,
    error=error@entry=0x7fe26db2d924) at src/subscriptions.c:336
#8  0x000055e693e3ec10 in subscription_reschedule () at src/subscriptions.c:409
#9  0x000055e693e0af79 in mtimer_thread (aux=<optimized out>) at src/main.c:706
#10 0x000055e693e18988 in thread_wrapper (p=0x55e6974504f0) at src/tvh_thread.c:91
#11 0x00007fe2713146db in start_thread (arg=0x7fe26db2e700) at pthread_create.c:463
#12 0x00007fe2704e488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

(gdb) bt full

#0  __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
No locals.
#1  0x00007fe271317023 in __GI___pthread_mutex_lock (mutex=mutex@entry=0x55e697683550)
    at ../nptl/pthread_mutex_lock.c:78
        ignore1 = <optimized out>
        ignore2 = <optimized out>
        ignore3 = <optimized out>
        type = 0
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock" 
        id = <optimized out>
#2  0x000055e693f46763 in cc_service_start (cac=0x55e69746b530, t=0x55e697683360)
    at src/descrambler/cclient.c:1079
        cc = 0x55e69746b530
        ct = <optimized out>
        td = <optimized out>
        st = <optimized out>
        c = <optimized out>
        pcard = <optimized out>
        buf = "\020\000\000\000\000\000\000\000 \360\022<\342\177\000\000S\000\000\000\000\000\000\000\                                                                                                                                      220*\016<\346\003\000\000\n\000\000\000\000\000\000\000\020\065g\227\346U\000\000 \360\022<\342\177\000                                                                                                                                      \000 7g\227\346U\000\000|\004\023<\342\177\000\000p\267\001\060\342\177\000\000\030\272\001\060\342\177                                                                                                                                      \000\000\002a\356\223\346U\000\000\000\000\000\000\000\000\000\000,a\356\223\346U\000\000`k,<\342\177\0                                                                                                                                      00\000 \000\000<\346\003\000\000\000\000\000\000\000\000\000\000\020\065g\227\346U\000\000pֲm\342\177\00                                                                                                                                      0\000 7g\227\346U\000\000\002\000\000\000\000\000\000\000\361oڔ\346U\000\000 \360\022<\342\177\000\000\                                                                                                                                      365\261\356\223\346U\000\000\360\364\356\223\346U\000\000\031\004"...
        i = <optimized out>
        reuse = 0
        prefpid = <optimized out>
        prefpid_lock = <optimized out>
---Type <return> to continue, or q <return> to quit---
        forcecaid = <optimized out>
        epids = {pids = 0x7fe23001b770, alloc = -1813136798, count = 21990, all = 1049, sorted = 0}
#3  0x000055e693ed6926 in caclient_start (t=t@entry=0x55e697683360) at src/descrambler/caclient.c:344
        cac = 0x55e69746b530
#4  0x000055e693ed30c6 in descrambler_service_start (t=t@entry=0x55e697683360) at src/descrambler/descrambler.c:472
        dr = <optimized out>
        tk = <optimized out>
        hint = <optimized out>
        st = <optimized out>
        ca = <optimized out>
        i = <optimized out>
        count = <optimized out>
        constcw = <optimized out>
        multipid = <optimized out>
        interval = 10000
        paritycheck = <optimized out>
        ecmparity = <optimized out>
#5  0x000055e693e40d38 in service_start (t=0x55e697683360, instance=31, weight=weight@entry=100, flags=flags@entry=131153, timeout=timeout@entry=0, postpone=postpone@entry=0) at src/service.c:334
        r = 0
        stimeout = 10
        __PRETTY_FUNCTION__ = "service_start" 
#6  0x000055e693e42be0 in service_find_instance (s=<optimized out>, ch=0x55e69757a760, ti=<optimized out>, prch=<optimized out>, sil=sil@entry=0x7fe224279aa8, error=error@entry=0x7fe26db2d924, weight=100, flags=131153, timeout=0,
    postpone=0) at src/service.c:535
        ilm = <optimized out>
        si = 0x7fe23c0f0f70
        next = <optimized out>
        pro = 0x55e697468de0
        r = <optimized out>
        r1 = <optimized out>
#7  0x000055e693e3d179 in subscription_start_instance (s=s@entry=0x7fe224279900, error=error@entry=0x7fe26db2d924) at src/subscriptions.c:336
        si = <optimized out>
#8  0x000055e693e3ec10 in subscription_reschedule () at src/subscriptions.c:409
        reenter = 1
        s = 0x7fe224279900
        t = <optimized out>
        si = <optimized out>
        sm = <optimized out>
        error = 0
        postpone = 2147483647
        postpone2 = <optimized out>
        __PRETTY_FUNCTION__ = "subscription_reschedule" 
#9  0x000055e693e0af79 in mtimer_thread (aux=<optimized out>) at src/main.c:706
        mti = 0x55e6953f68a0 <subscription_reschedule_timer>
        cb = 0x55e693e3eee0 <subscription_reschedule_cb>
        now = <optimized out>
        next = 459755634681
        id = 0x0
#10 0x000055e693e18988 in thread_wrapper (p=0x55e6974504f0) at src/tvh_thread.c:91
        ts = <optimized out>
        set = {__val = {16388, 0 <repeats 15 times>}}
        r = <optimized out>
#11 0x00007fe2713146db in start_thread (arg=0x7fe26db2e700) at pthread_create.c:463
        pd = 0x7fe26db2e700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140610479777536, -3151256368534430442, 140610479774528, 0, 94448868721904, 140721520580672, 3134688283981864214, 3134680600684092694}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
              0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#12 0x00007fe2704e488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.

History

#2

Updated by Pablo R. over 5 years ago

saen acro wrote:

https://github.com/tvheadend/tvheadend/commit/6be300c430ab614aa527ef34e34f007f34a68ee0
aka 4.3-1802 isn't fix this?

Not at all, see my posts on #5659

#3

Updated by Pablo R. about 5 years ago

I have not been able to reproduce it anymore. It can be set as invalid.

#4

Updated by Jaroslav Kysela about 5 years ago

  • Status changed from New to Invalid

Also available in: Atom PDF