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