[vdr] Seqfault of cutting thread on "Low disk space!"

Andreas Brachold ml05 at deltab.de
Wed Dec 7 21:45:17 CET 2005


Hi, 

we*) notice a seqfault of cutting Thread on "Low disk space!", if OSD
used during cutting process.

i think, reason is a call of a OSD function from background cutting
thread. 

I tested only on 1.3.32, but 1.3.37 should also affected 

(gdb) thread 5 
[Switching to thread 5 (process 4733)]#0  0xb7e68114 in ioctl ()
   from /lib/tls/libc.so.6
(gdb) bt
#0  0xb7e68114 in ioctl () from /lib/tls/libc.so.6
#1  0x080aa202 in cDvbOsd::Cmd (this=0x8c9e710, cmd=OSD_Clear, color=0, x0=0,
    y0=0, x1=0, y1=0, data=0x0) at dvbosd.c:110
#2  0x080a9c13 in cDvbOsd (this=0x8c9e710, Left=54, Top=504, OsdDev=5)
    at dvbosd.c:63
#3  0x080aa816 in cDvbOsdProvider::CreateOsd (this=0x8c81930, Left=54, Top=504)
    at dvbosd.c:183
#4  0x080e4854 in cOsdProvider::NewOsd (Left=54, Top=504) at osd.c:738
#5  0x08110911 in cSkinSTTNGDisplayMessage (this=0x8c95570) at skinsttng.c:1052
#6  0x08111100 in cSkinSTTNG::DisplayMessage (this=0x8c819f0)
    at skinsttng.c:1117
#7  0x0810509e in cSkins::Message (this=0x81f73e4, Type=mtWarning,
    s=0x8143f3f "Platte beinahe voll!", Seconds=30) at skins.c:179
#8  0x080bb3d4 in cInterface::Confirm (this=0x8c818c0,
    s=0x8143f3f "Platte beinahe voll!", Seconds=30, WaitForTimeout=false)
    at interface.c:71
#9  0x080ece45 in AssertFreeDiskSpace (Priority=-1) at recording.c:147
#10 0x0809d62f in cCuttingThread::Action (this=0x8c92528) at cutter.c:86
#11 0x0811b716 in cThread::StartThread (Thread=0x8c92528) at thread.c:234
#12 0xb7fb8b63 in start_thread () from /lib/tls/libpthread.so.0
#13 0xb7e6f18a in clone () from /lib/tls/libc.so.6




Here a possibly solution : 

--- recording.c.org     2005-09-11 17:52:31.000000000 +0200
+++ recording.c 2005-12-07 21:33:18.000000000 +0100
@@ -144,7 +144,7 @@
            }
         // Unable to free disk space, but there's nothing we can do
about that...
         isyslog("...no old recording found, giving up");
-        Interface->Confirm(tr("Low disk space!"), 30);
+        Skins.QueueMessage(mtWarning, tr("Low disk space!"), 30);
         }
      LastFreeDiskCheck = time(NULL);
      }


*) I'm not the original bug reporter, but i could this seqfault
reproduce
http://www.vdr-portal.de/board/thread.php?threadid=42375&sid=


Cu,
Andreas





More information about the vdr mailing list