Das hier...
CodeThread 1 (Thread 0x7f922612e7c0 (LWP 4708)): ... #8 0x00007f9223e8e4da in exit () from /usr/lib/libc.so.6 #9 0x000055831f6db45c in Watchdog (signum=<optimized out>) at vdr.c:177 #10 <signal handler called> #11 0x00007f92258a270a in __lll_lock_wait () from /usr/lib/libpthread.so.0 #12 0x00007f922589ba25 in pthread_mutex_lock () from /usr/lib/libpthread.so.0 #13 0x000055831f6cc809 in cMutex::Lock (this=0x558320a0e9a8) at thread.c:224 #14 0x000055831f6ccf7f in cMutexLock::Lock (this=0x7ffc937aaac0, Mutex=<optimized out>) at thread.c:404 #15 0x000055831f61ad48 in cCamSlot::HasUserIO (this=0x558320a0e990) at ci.c:2395
...sieht für mich so aus, als würde cCamSlot::HasUserIO() auf den Mutex warten, den aber ein anderer Thread hält und anscheinend nicht freigibt. Dadurch schlägt der Watchdog zu und bricht VDR ab. Das mit "double free or corruption" passiert erst danach und ist wohl die Folge des "brutalen" Abbruchs. Dürfte aber mit dem eigentlichen Problem nichts zu tun haben.
Warum der Mutex nicht freigegeben wird kann ich leider nicht erkennen.
Klaus
manio meint es ist ci.c (nope, the code is in ci.c - it is VDR)