Bug #5680
Tvheadend hangs (descrambling?)
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
Updated by saen acro over 5 years ago
https://github.com/tvheadend/tvheadend/commit/6be300c430ab614aa527ef34e34f007f34a68ee0
aka 4.3-1802 isn't fix this?
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
Updated by Pablo R. about 5 years ago
I have not been able to reproduce it anymore. It can be set as invalid.