Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: segmentation fault in select() from cFile::FileReady()
On 03 Nov 2001 Klaus Schmidinger <Klaus.Schmidinger@cadsoft.de> wrote:
> Stefan Huelswitt wrote:
>> (gdb) bt
>> #0 0x401dc95e in __select () from /lib/libc.so.6
>> #1 0xbdffba34 in ?? ()
>> #2 0x804f91f in Input__13cRecordBuffer (this=0x40700c20) at dvbapi.c:564
>> #3 0x808488b in Action__22cRingBufferInputThread (this=0x4075e150)
>> at ringbuffer.c:22
>> #4 0x806de3e in StartThread__7cThreadP7cThread (Thread=0x4075e150)
>> at thread.c:118
>> #5 0x4008bca3 in pthread_start_thread () from /lib/libpthread.so.0
>> (gdb) list dvbapi.c:564
>> 559 if (time(NULL) - t > MAXBROKENTIMEOUT) {
>> 560 esyslog(LOG_ERR, "ERROR: video data stream broken");
>> 561 cThread::EmergencyExit(true);
>> 562 t = time(NULL);
>> 563 }
>> 564 cFile::FileReady(videoDev, 100);
>> 565 if (!recording)
>> 566 break;
>> 567 }
>> 568
[...]
>
> The only actual function call inside cFile::FileReady() is 'select()',
> but I can't find any indication that this one would not be thread safe.
>
> When you experience these crashes, are you running VDR in DEBUG_OSD mode
> or with the "real" OSD (via the DVB card)? I do have occasional crashes
> in DEBUG_OSD mode, too, when recording/replaying, but so far I haven't
> found the time to further investigate these - and since I use this mode
> only for testing it isn't too much of a problem, although I'd like it to
> work correctly, too, of course...
It's with real OSD. And it happens often at the beginning of a
recording.
I have done some more research with gdb and found some very strange
things (e.g. all local vars in frame #2 are zero, including
"this"!). I'll try to insert some debug code to catch this ...
--
Stefan Huelswitt
huels@iname.com | http://home.pages.de/~nathan
Home |
Main Index |
Thread Index