Start() und Cancel() müssen auch aus dem mutexReceiver-block raus, das war der Grund für die blackscreens.
Anbei der hoffentlich finale Patch.
Bitte überprüfen, ausgiebig testen und rückmelden.
ring buffer overflows -> cDevice::Detach() blockiert...
-
-
@jire, kann zwar nicht testen, aber langsam gefällt mir die Lösung. Der mutexReceiver-Block sollte nur das receivers Array schützen. Was ich nur in der Detach-Funktion betrachtet habe, hast du nun auch in der anderen Funktion umgesetzt, daher gefällt mir die Lösung.
-
@jire: auch der 4. Patch funktioniert problemlos.
-
Toller patch. Trotz extrem zapping kein hänger. Auch bei Aufnahme und OSD-Teletext.
Ich habe ein Paket für yavdr-testing [0.6] erstellt:
https://launchpad.net/~asterix52/+archive/ubuntu/vdr
Gruß
Murry
-
Noch zur Erklärung:
Wenn Start() im mutexReceiver-Block ist, kann Folgendes passieren.
Attach() hat den mutexReceiver, Action() wartet auf den mutexReceiver, Start() wird in Attach() aufgerufen, Start() wartet darauf dass Action() fertig wird. Das führt zum THREAD_STOP_TIMEOUT in Start() und der neue Receiver Thread wird nicht gestartet => Black Screen.
Wenn jedoch der mutexReceiver vor Start() freigegeben wird, dann wird Action() fertig und der Thread rechtzeitig beendet und kann von Start() neu gestartet werden.Diese Verschachtelungen sind ganz schön kompliziert.
Den deadlock gab es übrigens schon seit über 11 Jahren (seit mutexReceiver in vdr-1.3.18 eingeführt wurde).
Meiner Meinung nach kann der Patch so in die nächste VDR Version übernommen werden.
Dann kann man wieder sorglos Plugins wie osdteletext etc. benutzen. -
Wenn ich mir das so durchlese, ist doch inzwischen ein Thema für VDR Core, oder? Gibt es Einsprüche gegen eine Verschiebung des Threads?
[EDIT] Nach "VDR Core" verschoben.
===
Werde den Patch auch mal testen und dann berichten ...
Regards
fnu -
-
Kann auch nicht klagen. Weder Nebeneffekte noch Hänger feststellbar
-
Patched 2.1.6, so far no VDR crashes like I had before. Fast zapping with the motorola streamdev clients killed VDR, I've even build in a delay in my script to slow down zapping. But it looks like it is cured.
Thanx!!
-
Kann ich bestätigen. Beim schnellen Zappen mit streamdevclients crasht die gepachte Serverseite (vdr 2.2).
-
Kannst du auch bestätigen, dass mein Patch (wie bei tv-user) hilft?
Denn darum geht es hier.Oder wolltest du sagen, dass er bei dir NICHT hilft?
-
Danke Jungs, bin zwar "nur" Anwender, aber dieses Ei stinkt mir schon seit langem!
Endlich läuft die Kiste beim zappen sauber durch, wenn diverse Aufnahmen laufen!
Vielen Dank :tup!!
astra.
-
Running with this patch for a few days now, so far no problems.
ThanxGreeting Rene
-
Super Patch. Macht vdr noch stabiler.
Mein vdr-2.2.0 läuft mit 3 usb dvb-c tunern und mit der 4er digibox satip. 24h7Tg.
Ergänzend fand ich kürzlich diesen thread.
https://www.linuxtv.org/pipermail/vdr/2016-May/029056.html.
Dieser Patch schaltet unbenutzte reciever idele um Energie zu sparen. Bei meinen 3 dvb-c
receivern sind dies ca. 6-8W. Der Power saving patch und dieser deadlock Patch hakeln ein wenig
beim patchen. ich habe das manuell nach meinen Gutdünken zusammen gebastelt. Aber vielleicht
sieht sich ein Profi dieses mal an.
Die Energieeinsparung durch bedarfsgerechtes aktivieren/dektivieren von Recievern
und das dann deadlockfrei, wäre ideal.Gruß
-
-
Grrr, doch wieder ein Deadlock:
Code
Display MoreThread 34 (Thread 0x7f1effd00700 (LWP 1154)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e6898 in cRingBufferLinear::Put(unsigned char const*, int) () #3 0x00007f1f188885d4 in cSatipDevice::WriteData(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x00007f1f1889a254 in cSatipTuner::ProcessVideoData(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #5 0x00007f1f1888efde in cSatipRtp::Process() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #6 0x00007f1f1888e724 in cSatipPoller::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #7 0x000000000050b0e9 in cThread::StartThread(cThread*) () #8 0x00007f1f1cfbc464 in start_thread (arg=0x7f1effd00700) at pthread_create.c:334 #9 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 33 (Thread 0x7f1eff4d9700 (LWP 1155)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f1f1888cbdc in cSatipDiscover::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1eff4d9700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 32 (Thread 0x7f1efecd8700 (LWP 1156)): #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f1f1cfbeb15 in __GI___pthread_mutex_lock (mutex=0x25998b0) at ../nptl/pthread_mutex_lock.c:81 #2 0x000000000050acd9 in cMutex::Lock() () #3 0x000000000050b27f in cMutexLock::Lock(cMutex*) () #4 0x0000000000483a2b in cDevice::Receiving(bool) const () #5 0x00007f1f18887fdb in cSatipDevice::IsIdle() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #6 0x00007f1f1889d528 in cSatipTuner::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #7 0x000000000050b0e9 in cThread::StartThread(cThread*) () #8 0x00007f1f1cfbc464 in start_thread (arg=0x7f1efecd8700) at pthread_create.c:334 #9 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 31 (Thread 0x7f1efe4d7700 (LWP 1157)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f1f188930f6 in cSatipSectionFilterHandler::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f1f1cfbc464 in start_thread (arg=0x7f1efe4d7700) at pthread_create.c:334 #6 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 30 (Thread 0x7f1efdcd6700 (LWP 1158)): #0 0x00007f1f1b95ddcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004e8702 in cSectionHandler::Action() () #2 0x000000000050b0e9 in cThread::StartThread(cThread*) () #3 0x00007f1f1cfbc464 in start_thread (arg=0x7f1efdcd6700) at pthread_create.c:334 #4 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 29 (Thread 0x7f1efd4d5700 (LWP 1159)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f1f1889d1cd in cSatipTuner::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1efd4d5700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 28 (Thread 0x7f1efccd3700 (LWP 1160)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f1f188930f6 in cSatipSectionFilterHandler::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f1f1cfbc464 in start_thread (arg=0x7f1efccd3700) at pthread_create.c:334 #6 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 27 (Thread 0x7f1ef77fe700 (LWP 1161)): #0 0x00007f1f1b95ddcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004e8702 in cSectionHandler::Action() () #2 0x000000000050b0e9 in cThread::StartThread(cThread*) () #3 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ef77fe700) at pthread_create.c:334 #4 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 26 (Thread 0x7f1ef6ffd700 (LWP 1162)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f1f1889d1cd in cSatipTuner::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ef6ffd700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 25 (Thread 0x7f1ef67fc700 (LWP 1163)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f1f188930f6 in cSatipSectionFilterHandler::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ef67fc700) at pthread_create.c:334 #6 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 24 (Thread 0x7f1ef5ffb700 (LWP 1164)): #0 0x00007f1f1b95ddcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004e8702 in cSectionHandler::Action() () #2 0x000000000050b0e9 in cThread::StartThread(cThread*) () #3 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ef5ffb700) at pthread_create.c:334 #4 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 23 (Thread 0x7f1ef57fa700 (LWP 1165)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f1f1889d1cd in cSatipTuner::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ef57fa700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 22 (Thread 0x7f1ef4ff9700 (LWP 1166)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f1f188930f6 in cSatipSectionFilterHandler::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ef4ff9700) at pthread_create.c:334 #6 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 21 (Thread 0x7f1ed7fff700 (LWP 1167)): #0 0x00007f1f1b95ddcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004e8702 in cSectionHandler::Action() () #2 0x000000000050b0e9 in cThread::StartThread(cThread*) () #3 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ed7fff700) at pthread_create.c:334 #4 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 20 (Thread 0x7f1ed77fe700 (LWP 1168)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x000000000050a9f6 in cCondWait::SleepMs(int) () #3 0x00007f1f18ccd41e in SocketHandler::Action() () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ed77fe700) at pthread_create.c:334 #6 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 19 (Thread 0x7f1ed6ffd700 (LWP 1169)): #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f1f1cfbeb15 in __GI___pthread_mutex_lock (mutex=0x25998b0) at ../nptl/pthread_mutex_lock.c:81 #2 0x000000000050acd9 in cMutex::Lock() () #3 0x000000000050b27f in cMutexLock::Lock(cMutex*) () #4 0x0000000000484568 in cDevice::Detach(cReceiver*) () #5 0x000000000047799f in cCamSlot::SendCaPmt(unsigned char) () #6 0x0000000000477d0d in cCamSlot::Process(cTPDU*) () #7 0x0000000000477fab in cCiAdapter::Action() () #8 0x000000000050b0e9 in cThread::StartThread(cThread*) () #9 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ed6ffd700) at pthread_create.c:334 #10 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 18 (Thread 0x7f1ed67fc700 (LWP 1170)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f1f18cce67e in Frame::Get(int&) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #4 0x00007f1f18ccdea4 in SCCIAdapter::Read(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #5 0x0000000000477f75 in cCiAdapter::Action() () #6 0x000000000050b0e9 in cThread::StartThread(cThread*) () #7 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ed67fc700) at pthread_create.c:334 #8 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 17 (Thread 0x7f1ed5ffb700 (LWP 1171)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f1f18cce67e in Frame::Get(int&) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #4 0x00007f1f18ccdea4 in SCCIAdapter::Read(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #5 0x0000000000477f75 in cCiAdapter::Action() () #6 0x000000000050b0e9 in cThread::StartThread(cThread*) () #7 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ed5ffb700) at pthread_create.c:334 #8 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 16 (Thread 0x7f1ed57fa700 (LWP 1172)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f1f18cce67e in Frame::Get(int&) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #4 0x00007f1f18ccdea4 in SCCIAdapter::Read(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #5 0x0000000000477f75 in cCiAdapter::Action() () #6 0x000000000050b0e9 in cThread::StartThread(cThread*) () #7 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ed57fa700) at pthread_create.c:334 #8 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 15 (Thread 0x7f1ed4ff9700 (LWP 1173)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f1f133c8142 in cSearchTimerThread::Action() () from /usr/lib/vdr/plugins/libvdr-epgsearch.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ed4ff9700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 14 (Thread 0x7f1e9bfff700 (LWP 1174)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f1f1336b3cd in cConflictCheckThread::Action() () from /usr/lib/vdr/plugins/libvdr-epgsearch.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e9bfff700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 13 (Thread 0x7f1ef7fff700 (LWP 1251)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f1f0c49267b in AudioPlayHandlerThread (dummy=<optimized out>) at audio.c:2083 #2 0x00007f1f1cfbc464 in start_thread (arg=0x7f1ef7fff700) at pthread_create.c:334 #3 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 12 (Thread 0x7f1f00501700 (LWP 1255)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f1f00e261ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f1f01166e2a in tnt::Tntnet::run() () from /usr/lib/libtntnet.so.12 #3 0x00007f1f013d768a in vdrlive::ServerThread::Action() () from /usr/lib/vdr/plugins/libvdr-live.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f1f1cfbc464 in start_thread (arg=0x7f1f00501700) at pthread_create.c:334 #6 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 11 (Thread 0x7f1e9b7fe700 (LWP 1256)): #0 0x00007f1f1b95fb83 in select () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f1f0054284f in cTBSelect::Select(unsigned int) () from /usr/lib/vdr/plugins/libvdr-streamdev-server.so.2.2.0 #2 0x00007f1f0052699e in cStreamdevServer::Action() () from /usr/lib/vdr/plugins/libvdr-streamdev-server.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e9b7fe700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 10 (Thread 0x7f1e9affd700 (LWP 1257)): #0 0x00007f1f1b95ddcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f1f00e7d281 in cxxtools::net::TcpServerImpl::accept(int, sockaddr*, unsigned int&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f1f00e80ac0 in cxxtools::net::TcpSocketImpl::accept(cxxtools::net::TcpServer const&, unsigned int) () from /usr/lib/libcxxtools.so.9 #3 0x00007f1f00e7fa74 in cxxtools::net::TcpSocket::accept(cxxtools::net::TcpServer const&, unsigned int) () from /usr/lib/libcxxtools.so.9 #4 0x00007f1f0114c415 in tnt::Tcpjob::accept() () from /usr/lib/libtntnet.so.12 #5 0x00007f1f0114d528 in tnt::Tcpjob::getStream() () from /usr/lib/libtntnet.so.12 #6 0x00007f1f0116f252 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #7 0x00007f1f011701ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #8 0x00007f1f00e75c94 in ?? () from /usr/lib/libcxxtools.so.9 #9 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e9affd700) at pthread_create.c:334 #10 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 9 (Thread 0x7f1e9a7fc700 (LWP 1258)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f1f00e261ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f1f0114c5d3 in tnt::Jobqueue::get() () from /usr/lib/libtntnet.so.12 #3 0x00007f1f0116f237 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #4 0x00007f1f011701ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #5 0x00007f1f00e75c94 in ?? () from /usr/lib/libcxxtools.so.9 #6 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e9a7fc700) at pthread_create.c:334 #7 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 8 (Thread 0x7f1e99ffb700 (LWP 1259)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f1f00e261ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f1f0114c5d3 in tnt::Jobqueue::get() () from /usr/lib/libtntnet.so.12 #3 0x00007f1f0116f237 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #4 0x00007f1f011701ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #5 0x00007f1f00e75c94 in ?? () from /usr/lib/libcxxtools.so.9 #6 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e99ffb700) at pthread_create.c:334 #7 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 7 (Thread 0x7f1e997fa700 (LWP 1260)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f1f00e261ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f1f0114c5d3 in tnt::Jobqueue::get() () from /usr/lib/libtntnet.so.12 #3 0x00007f1f0116f237 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #4 0x00007f1f011701ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #5 0x00007f1f00e75c94 in ?? () from /usr/lib/libcxxtools.so.9 #6 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e997fa700) at pthread_create.c:334 #7 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 6 (Thread 0x7f1e98ff9700 (LWP 1261)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f1f00e261ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f1f0114c5d3 in tnt::Jobqueue::get() () from /usr/lib/libtntnet.so.12 #3 0x00007f1f0116f237 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #4 0x00007f1f011701ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #5 0x00007f1f00e75c94 in ?? () from /usr/lib/libcxxtools.so.9 #6 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e98ff9700) at pthread_create.c:334 #7 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 5 (Thread 0x7f1e83fff700 (LWP 1262)): #0 0x00007f1f1b967453 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f1f0115947e in tnt::PollerImpl::run() () from /usr/lib/libtntnet.so.12 #2 0x00007f1f00e75c94 in ?? () from /usr/lib/libcxxtools.so.9 #3 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e83fff700) at pthread_create.c:334 #4 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 4 (Thread 0x7f1e837fe700 (LWP 1263)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x00007f1f00e262b7 in cxxtools::ConditionImpl::wait(cxxtools::Mutex&, unsigned int) () from /usr/lib/libcxxtools.so.9 #2 0x00007f1f01165b4e in tnt::Tntnet::timerTask() () from /usr/lib/libtntnet.so.12 #3 0x00007f1f00e75c94 in ?? () from /usr/lib/libcxxtools.so.9 #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e837fe700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 3 (Thread 0x7f1e81ffb700 (LWP 1267)): #0 0x00007f1f1b93699d in nanosleep () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f1f1b960344 in usleep (useconds=useconds@entry=1000) at ../sysdeps/posix/usleep.c:32 #2 0x00007f1f0c48a1e4 in VdpauDisplayHandlerThread () at video.c:9236 #3 0x00007f1f0c48eeec in VideoDisplayHandlerThread (dummy=<optimized out>) at video.c:10118 #4 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e81ffb700) at pthread_create.c:334 #5 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 2 (Thread 0x7f1e82ffd700 (LWP 4930)): #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f1f1cfbeb15 in __GI___pthread_mutex_lock (mutex=0x25998b0) at ../nptl/pthread_mutex_lock.c:81 #2 0x000000000050acd9 in cMutex::Lock() () #3 0x000000000050b27f in cMutexLock::Lock(cMutex*) () #4 0x0000000000486444 in cDevice::Action() () #5 0x000000000050b0e9 in cThread::StartThread(cThread*) () #6 0x00007f1f1cfbc464 in start_thread (arg=0x7f1e82ffd700) at pthread_create.c:334 #7 0x00007f1f1b966e5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 1 (Thread 0x7f1f1d5b78c0 (LWP 1145)): #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f1f1cfbeb15 in __GI___pthread_mutex_lock (mutex=0x2e95ca8) at ../nptl/pthread_mutex_lock.c:81 #2 0x000000000050acd9 in cMutex::Lock() () #3 0x000000000050b27f in cMutexLock::Lock(cMutex*) () #4 0x00000000004737c1 in cCamSlot::SetPid(int, bool) () #5 0x0000000000484b4f in cDevice::AddPid(int, cDevice::ePidType, int) () #6 0x0000000000484c9b in cDevice::AttachReceiver(cReceiver*) () #7 0x00007f1f0098b0cc in cTxtStatus::ChannelSwitch(cDevice const*, int, bool) () from /usr/lib/vdr/plugins/libvdr-osdteletext.so.2.2.0 #8 0x0000000000502ad2 in cStatus::MsgChannelSwitch(cDevice const*, int, bool) () #9 0x0000000000485b56 in cDevice::SetChannel(cChannel const*, bool) () #10 0x0000000000485d90 in cDevice::SwitchChannel(cChannel const*, bool) () #11 0x00000000004b7004 in cDisplayChannel::ProcessKey(eKeys) () #12 0x000000000046bcc4 in main ()
Gruss, Xcoder
-
Interessant wäre da noch die Information, welcher Mutex welchem Thread gehört, so wie in Post #29, zweiter Block.
Dann könnte man eventuell besser aufdröseln, welche der 4 sich gegenseitig blockieren. -
Gerade habe ich ihn wieder erwischt. Wenn ich das richtig sehe verhängen sich die Threads 1 + 19 (LWP 5424 + 5444):
Code
Display MoreThread 34 (Thread 0x7f885fc68700 (LWP 5429)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e6898 in cRingBufferLinear::Put(unsigned char const*, int) () #3 0x00007f88787f05d4 in cSatipDevice::WriteData(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x00007f8878802254 in cSatipTuner::ProcessVideoData(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #5 0x00007f88787f6fde in cSatipRtp::Process() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #6 0x00007f88787f6724 in cSatipPoller::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #7 0x000000000050b0e9 in cThread::StartThread(cThread*) () #8 0x00007f887cf24464 in start_thread (arg=0x7f885fc68700) at pthread_create.c:334 #9 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 33 (Thread 0x7f885ec40700 (LWP 5430)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x000000000050a9f6 in cCondWait::SleepMs(int) () #3 0x00007f88787f5596 in cSatipMsearch::Probe() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x00007f88787f486c in cSatipDiscover::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #5 0x000000000050b0e9 in cThread::StartThread(cThread*) () #6 0x00007f887cf24464 in start_thread (arg=0x7f885ec40700) at pthread_create.c:334 #7 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 32 (Thread 0x7f885e43f700 (LWP 5431)): #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f887cf26b15 in __GI___pthread_mutex_lock (mutex=0x242c8f0) at ../nptl/pthread_mutex_lock.c:81 #2 0x000000000050acd9 in cMutex::Lock() () #3 0x000000000050b27f in cMutexLock::Lock(cMutex*) () #4 0x0000000000483a2b in cDevice::Receiving(bool) const () #5 0x00007f88787effdb in cSatipDevice::IsIdle() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #6 0x00007f8878805528 in cSatipTuner::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #7 0x000000000050b0e9 in cThread::StartThread(cThread*) () #8 0x00007f887cf24464 in start_thread (arg=0x7f885e43f700) at pthread_create.c:334 #9 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 31 (Thread 0x7f885dc3e700 (LWP 5432)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f88787fb0f6 in cSatipSectionFilterHandler::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f887cf24464 in start_thread (arg=0x7f885dc3e700) at pthread_create.c:334 #6 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 30 (Thread 0x7f885d43d700 (LWP 5433)): #0 0x00007f887b8c5dcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004e8702 in cSectionHandler::Action() () #2 0x000000000050b0e9 in cThread::StartThread(cThread*) () #3 0x00007f887cf24464 in start_thread (arg=0x7f885d43d700) at pthread_create.c:334 #4 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 29 (Thread 0x7f885cc3c700 (LWP 5434)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f88788051cd in cSatipTuner::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f887cf24464 in start_thread (arg=0x7f885cc3c700) at pthread_create.c:334 #5 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 28 (Thread 0x7f8847fff700 (LWP 5435)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f88787fb0f6 in cSatipSectionFilterHandler::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f887cf24464 in start_thread (arg=0x7f8847fff700) at pthread_create.c:334 #6 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 27 (Thread 0x7f88477fe700 (LWP 5436)): #0 0x00007f887b8c5dcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004e8702 in cSectionHandler::Action() () #2 0x000000000050b0e9 in cThread::StartThread(cThread*) () #3 0x00007f887cf24464 in start_thread (arg=0x7f88477fe700) at pthread_create.c:334 #4 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 26 (Thread 0x7f8846ffd700 (LWP 5437)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f88788051cd in cSatipTuner::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f887cf24464 in start_thread (arg=0x7f8846ffd700) at pthread_create.c:334 #5 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 25 (Thread 0x7f88467fc700 (LWP 5438)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f88787fb0f6 in cSatipSectionFilterHandler::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f887cf24464 in start_thread (arg=0x7f88467fc700) at pthread_create.c:334 #6 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 24 (Thread 0x7f8845ffb700 (LWP 5439)): #0 0x00007f887b8c5dcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004e8702 in cSectionHandler::Action() () #2 0x000000000050b0e9 in cThread::StartThread(cThread*) () #3 0x00007f887cf24464 in start_thread (arg=0x7f8845ffb700) at pthread_create.c:334 #4 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 23 (Thread 0x7f88457fa700 (LWP 5440)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f88788051cd in cSatipTuner::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f887cf24464 in start_thread (arg=0x7f88457fa700) at pthread_create.c:334 #5 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 22 (Thread 0x7f8844ff9700 (LWP 5441)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f88787fb0f6 in cSatipSectionFilterHandler::Action() () from /usr/lib/vdr/plugins/libvdr-satip.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f887cf24464 in start_thread (arg=0x7f8844ff9700) at pthread_create.c:334 #6 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 21 (Thread 0x7f8837fff700 (LWP 5442)): #0 0x00007f887b8c5dcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00000000004e8702 in cSectionHandler::Action() () #2 0x000000000050b0e9 in cThread::StartThread(cThread*) () #3 0x00007f887cf24464 in start_thread (arg=0x7f8837fff700) at pthread_create.c:334 #4 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 20 (Thread 0x7f88377fe700 (LWP 5443)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x000000000050a9f6 in cCondWait::SleepMs(int) () #3 0x00007f8878c3541e in SocketHandler::Action() () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f887cf24464 in start_thread (arg=0x7f88377fe700) at pthread_create.c:334 #6 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 19 (Thread 0x7f8836ffd700 (LWP 5444)): #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f887cf26b15 in __GI___pthread_mutex_lock (mutex=0x242c8f0) at ../nptl/pthread_mutex_lock.c:81 #2 0x000000000050acd9 in cMutex::Lock() () #3 0x000000000050b27f in cMutexLock::Lock(cMutex*) () #4 0x0000000000484568 in cDevice::Detach(cReceiver*) () #5 0x000000000047799f in cCamSlot::SendCaPmt(unsigned char) () #6 0x0000000000477d0d in cCamSlot::Process(cTPDU*) () #7 0x0000000000477fab in cCiAdapter::Action() () #8 0x000000000050b0e9 in cThread::StartThread(cThread*) () #9 0x00007f887cf24464 in start_thread (arg=0x7f8836ffd700) at pthread_create.c:334 #10 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 18 (Thread 0x7f88367fc700 (LWP 5445)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f8878c3667e in Frame::Get(int&) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #4 0x00007f8878c35ea4 in SCCIAdapter::Read(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #5 0x0000000000477f75 in cCiAdapter::Action() () #6 0x000000000050b0e9 in cThread::StartThread(cThread*) () #7 0x00007f887cf24464 in start_thread (arg=0x7f88367fc700) at pthread_create.c:334 #8 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 17 (Thread 0x7f8835ffb700 (LWP 5446)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f8878c3667e in Frame::Get(int&) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #4 0x00007f8878c35ea4 in SCCIAdapter::Read(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #5 0x0000000000477f75 in cCiAdapter::Action() () #6 0x000000000050b0e9 in cThread::StartThread(cThread*) () #7 0x00007f887cf24464 in start_thread (arg=0x7f8835ffb700) at pthread_create.c:334 #8 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 16 (Thread 0x7f88357fa700 (LWP 5447)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00000000004e69c0 in cRingBufferLinear::Get(int&) () #3 0x00007f8878c3667e in Frame::Get(int&) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #4 0x00007f8878c35ea4 in SCCIAdapter::Read(unsigned char*, int) () from /usr/lib/vdr/plugins/libvdr-dvb-api.so.2.2.0 #5 0x0000000000477f75 in cCiAdapter::Action() () #6 0x000000000050b0e9 in cThread::StartThread(cThread*) () #7 0x00007f887cf24464 in start_thread (arg=0x7f88357fa700) at pthread_create.c:334 #8 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 15 (Thread 0x7f8834ff9700 (LWP 5448)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f8873330142 in cSearchTimerThread::Action() () from /usr/lib/vdr/plugins/libvdr-epgsearch.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f887cf24464 in start_thread (arg=0x7f8834ff9700) at pthread_create.c:334 #5 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 14 (Thread 0x7f87fffff700 (LWP 5449)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x000000000050a99e in cCondWait::Wait(int) () #2 0x00007f88732d33cd in cConflictCheckThread::Action() () from /usr/lib/vdr/plugins/libvdr-epgsearch.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f887cf24464 in start_thread (arg=0x7f87fffff700) at pthread_create.c:334 #5 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 13 (Thread 0x7f885f467700 (LWP 5466)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f886c3fa67b in AudioPlayHandlerThread (dummy=<optimized out>) at audio.c:2083 #2 0x00007f887cf24464 in start_thread (arg=0x7f885f467700) at pthread_create.c:334 #3 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 12 (Thread 0x7f8860469700 (LWP 5467)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f8860d8e1ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f88610cee2a in tnt::Tntnet::run() () from /usr/lib/libtntnet.so.12 #3 0x00007f886133f68a in vdrlive::ServerThread::Action() () from /usr/lib/vdr/plugins/libvdr-live.so.2.2.0 #4 0x000000000050b0e9 in cThread::StartThread(cThread*) () #5 0x00007f887cf24464 in start_thread (arg=0x7f8860469700) at pthread_create.c:334 #6 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 11 (Thread 0x7f87ff7fe700 (LWP 5468)): #0 0x00007f887b8c7b83 in select () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f88604aa84f in cTBSelect::Select(unsigned int) () from /usr/lib/vdr/plugins/libvdr-streamdev-server.so.2.2.0 #2 0x00007f886048e99e in cStreamdevServer::Action() () from /usr/lib/vdr/plugins/libvdr-streamdev-server.so.2.2.0 #3 0x000000000050b0e9 in cThread::StartThread(cThread*) () #4 0x00007f887cf24464 in start_thread (arg=0x7f87ff7fe700) at pthread_create.c:334 #5 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 10 (Thread 0x7f87feffd700 (LWP 5469)): #0 0x00007f887b8c5dcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f8860de5281 in cxxtools::net::TcpServerImpl::accept(int, sockaddr*, unsigned int&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f8860de8ac0 in cxxtools::net::TcpSocketImpl::accept(cxxtools::net::TcpServer const&, unsigned int) () from /usr/lib/libcxxtools.so.9 #3 0x00007f8860de7a74 in cxxtools::net::TcpSocket::accept(cxxtools::net::TcpServer const&, unsigned int) () from /usr/lib/libcxxtools.so.9 #4 0x00007f88610b4415 in tnt::Tcpjob::accept() () from /usr/lib/libtntnet.so.12 #5 0x00007f88610b5528 in tnt::Tcpjob::getStream() () from /usr/lib/libtntnet.so.12 #6 0x00007f88610d7252 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #7 0x00007f88610d81ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #8 0x00007f8860dddc94 in ?? () from /usr/lib/libcxxtools.so.9 #9 0x00007f887cf24464 in start_thread (arg=0x7f87feffd700) at pthread_create.c:334 #10 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 9 (Thread 0x7f87fe7fc700 (LWP 5470)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f8860d8e1ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f88610b45d3 in tnt::Jobqueue::get() () from /usr/lib/libtntnet.so.12 #3 0x00007f88610d7237 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #4 0x00007f88610d81ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #5 0x00007f8860dddc94 in ?? () from /usr/lib/libcxxtools.so.9 #6 0x00007f887cf24464 in start_thread (arg=0x7f87fe7fc700) at pthread_create.c:334 #7 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 8 (Thread 0x7f87fdffb700 (LWP 5471)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f8860d8e1ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f88610b45d3 in tnt::Jobqueue::get() () from /usr/lib/libtntnet.so.12 #3 0x00007f88610d7237 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #4 0x00007f88610d81ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #5 0x00007f8860dddc94 in ?? () from /usr/lib/libcxxtools.so.9 #6 0x00007f887cf24464 in start_thread (arg=0x7f87fdffb700) at pthread_create.c:334 #7 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 7 (Thread 0x7f87fd7fa700 (LWP 5472)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f8860d8e1ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f88610b45d3 in tnt::Jobqueue::get() () from /usr/lib/libtntnet.so.12 #3 0x00007f88610d7237 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #4 0x00007f88610d81ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #5 0x00007f8860dddc94 in ?? () from /usr/lib/libcxxtools.so.9 #6 0x00007f887cf24464 in start_thread (arg=0x7f87fd7fa700) at pthread_create.c:334 #7 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 6 (Thread 0x7f87fcff9700 (LWP 5473)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007f8860d8e1ae in cxxtools::ConditionImpl::wait(cxxtools::Mutex&) () from /usr/lib/libcxxtools.so.9 #2 0x00007f88610b45d3 in tnt::Jobqueue::get() () from /usr/lib/libtntnet.so.12 #3 0x00007f88610d7237 in tnt::Worker::run() () from /usr/lib/libtntnet.so.12 #4 0x00007f88610d81ba in cxxtools::DetachedThread::exec() () from /usr/lib/libtntnet.so.12 #5 0x00007f8860dddc94 in ?? () from /usr/lib/libcxxtools.so.9 #6 0x00007f887cf24464 in start_thread (arg=0x7f87fcff9700) at pthread_create.c:334 #7 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 5 (Thread 0x7f87dffff700 (LWP 5474)): #0 0x00007f887b8cf453 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f88610c147e in tnt::PollerImpl::run() () from /usr/lib/libtntnet.so.12 #2 0x00007f8860dddc94 in ?? () from /usr/lib/libcxxtools.so.9 #3 0x00007f887cf24464 in start_thread (arg=0x7f87dffff700) at pthread_create.c:334 #4 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 4 (Thread 0x7f87d77fe700 (LWP 5475)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x00007f8860d8e2b7 in cxxtools::ConditionImpl::wait(cxxtools::Mutex&, unsigned int) () from /usr/lib/libcxxtools.so.9 #2 0x00007f88610cdb4e in tnt::Tntnet::timerTask() () from /usr/lib/libtntnet.so.12 #3 0x00007f8860dddc94 in ?? () from /usr/lib/libcxxtools.so.9 #4 0x00007f887cf24464 in start_thread (arg=0x7f87d77fe700) at pthread_create.c:334 #5 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 3 (Thread 0x7f87de7fc700 (LWP 5480)): #0 0x00007f887b8c5dcd in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f885c0e3e2f in ?? () from /usr/lib/x86_64-linux-gnu/vdpau/libvdpau_nvidia.so.1 #2 0x00007f885c0da865 in ?? () from /usr/lib/x86_64-linux-gnu/vdpau/libvdpau_nvidia.so.1 #3 0x00007f885c0dd7ac in ?? () from /usr/lib/x86_64-linux-gnu/vdpau/libvdpau_nvidia.so.1 #4 0x00007f885c0d462c in ?? () from /usr/lib/x86_64-linux-gnu/vdpau/libvdpau_nvidia.so.1 #5 0x00007f886c3f1834 in VdpauDisplayFrame () at video.c:8646 #6 VdpauSyncDisplayFrame () at video.c:9007 #7 VdpauDisplayHandlerThread () at video.c:9258 #8 0x00007f886c3f6eec in VideoDisplayHandlerThread (dummy=<optimized out>) at video.c:10118 #9 0x00007f887cf24464 in start_thread (arg=0x7f87de7fc700) at pthread_create.c:334 #10 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 2 (Thread 0x7f87df7fe700 (LWP 738)): #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f887cf26b15 in __GI___pthread_mutex_lock (mutex=0x242c8f0) at ../nptl/pthread_mutex_lock.c:81 #2 0x000000000050acd9 in cMutex::Lock() () #3 0x000000000050b27f in cMutexLock::Lock(cMutex*) () #4 0x0000000000486444 in cDevice::Action() () #5 0x000000000050b0e9 in cThread::StartThread(cThread*) () #6 0x00007f887cf24464 in start_thread (arg=0x7f87df7fe700) at pthread_create.c:334 #7 0x00007f887b8cee5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 1 (Thread 0x7f887d51f8c0 (LWP 5424)): #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f887cf26b15 in __GI___pthread_mutex_lock (mutex=0x2d28d78) at ../nptl/pthread_mutex_lock.c:81 #2 0x000000000050acd9 in cMutex::Lock() () #3 0x000000000050b27f in cMutexLock::Lock(cMutex*) () #4 0x00000000004737c1 in cCamSlot::SetPid(int, bool) () #5 0x0000000000484b4f in cDevice::AddPid(int, cDevice::ePidType, int) () #6 0x0000000000484c9b in cDevice::AttachReceiver(cReceiver*) () #7 0x00007f88608f30cc in cTxtStatus::ChannelSwitch(cDevice const*, int, bool) () from /usr/lib/vdr/plugins/libvdr-osdteletext.so.2.2.0 #8 0x0000000000502ad2 in cStatus::MsgChannelSwitch(cDevice const*, int, bool) () #9 0x0000000000485b56 in cDevice::SetChannel(cChannel const*, bool) () #10 0x0000000000485d90 in cDevice::SwitchChannel(cChannel const*, bool) () #11 0x00000000004b7004 in cDisplayChannel::ProcessKey(eKeys) () #12 0x000000000046bcc4 in main () [Switching to thread 32 (Thread 0x7f885e43f700 (LWP 5431))] #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 135 in ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S #1 0x00007f887cf26b15 in __GI___pthread_mutex_lock (mutex=0x242c8f0) at ../nptl/pthread_mutex_lock.c:81 81 ../nptl/pthread_mutex_lock.c: No such file or directory. $1 = (pthread_mutex_t *) 0x242c8f0 $2 = {__data = {__lock = 2, __count = 0, __owner = 5424, __nusers = 1, __kind = 2, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = "\002\000\000\000\000\000\000\000\060\025\000\000\001\000\000\000\002", '\000' <repeats 22 times>, __align = 2} [Switching to thread 19 (Thread 0x7f8836ffd700 (LWP 5444))] #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 135 ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory. #1 0x00007f887cf26b15 in __GI___pthread_mutex_lock (mutex=0x242c8f0) at ../nptl/pthread_mutex_lock.c:81 81 ../nptl/pthread_mutex_lock.c: No such file or directory. $3 = (pthread_mutex_t *) 0x242c8f0 $4 = {__data = {__lock = 2, __count = 0, __owner = 5424, __nusers = 1, __kind = 2, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = "\002\000\000\000\000\000\000\000\060\025\000\000\001\000\000\000\002", '\000' <repeats 22 times>, __align = 2} [Switching to thread 2 (Thread 0x7f87df7fe700 (LWP 738))] #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 135 ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory. #1 0x00007f887cf26b15 in __GI___pthread_mutex_lock (mutex=0x242c8f0) at ../nptl/pthread_mutex_lock.c:81 81 ../nptl/pthread_mutex_lock.c: No such file or directory. $5 = (pthread_mutex_t *) 0x242c8f0 $6 = {__data = {__lock = 2, __count = 0, __owner = 5424, __nusers = 1, __kind = 2, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = "\002\000\000\000\000\000\000\000\060\025\000\000\001\000\000\000\002", '\000' <repeats 22 times>, __align = 2} [Switching to thread 1 (Thread 0x7f887d51f8c0 (LWP 5424))] #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 135 ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory. #1 0x00007f887cf26b15 in __GI___pthread_mutex_lock (mutex=0x2d28d78) at ../nptl/pthread_mutex_lock.c:81 81 ../nptl/pthread_mutex_lock.c: No such file or directory. $7 = (pthread_mutex_t *) 0x2d28d78 $8 = {__data = {__lock = 2, __count = 0, __owner = 5444, __nusers = 1, __kind = 2, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = "\002\000\000\000\000\000\000\000D\025\000\000\001\000\000\000\002", '\000' <repeats 22 times>, __align = 2}
-
Ein Schnellschuss, probier den mal.
Da ist beim Detach() die camSlot Sache noch im mutexReceiver drin gelassen.
Auf die Schnelle sieht es mir so aus, als ob es da her kommen könnte.
Gerade keine Zeit tiefer zu gucken. -
OK, danke. Patch ist drin. Da die Deadlocks nun wirklich sehr sporadisch auftreten, könnte es etwas dauern bis ich einen erwische, wenn es den nun überhaupt noch welche geben kann...
Gruss, Xcoder
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!