Hello, I use infosatepg + tvmovie2vdr to get epg-data some stations. This has been working with vdr-1.3.38, but vdr-1.3.39 segfaults when tvmovie2vdr starts sending the epg-data to vdr. I acquired a backtrace from a vanilla vdr-1.3.39 installation, only plugin was vdr-remote.
Commandline: ./vdr -u vdr -g /tmp -c /etc/vdr -v /video -w 60 -s /etc/vdr/vdrshutdown \ -r'/etc/vdr/noad.sh' -P'remote --input=/dev/input/event1'
Backtrace: #0 0x08105ba2 in cHashBase::Get (this=0x834a660, Id=65317) at tools.c:1462 1462 cList<cHashObject> *list = hashTable[hashfn(Id)]; (gdb) bt #0 0x08105ba2 in cHashBase::Get (this=0x834a660, Id=65317) at tools.c:1462 #1 0x080a9d63 in cSchedule::GetEvent (this=0x834a630, EventID=65317, StartTime=1137387600) at tools.h:344 #2 0x080a489f in cEIT (this=0xa749b31c, Schedules=0x81ccb20, Source=35008, Tid=79 'O', Data=0x0) at eit.c:56 #3 0x080a57ce in cEitFilter::Process (this=0x82c7d88, Pid=18, Tid=79 'O', Data=0xa749b414 "Oò¥", Length=680) at eit.c:303 #4 0x080e573e in cSectionHandler::Action (this=0x82d4ec0) at sections.c:212 #5 0x080fecd0 in cThread::StartThread (Thread=0x82d4ec0) at thread.c:243 #6 0xa7ef1e70 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #7 0xa7d6fbde in clone () from /lib/tls/i686/cmov/libc.so.6
On Monday 16 January 2006 15:41, Malte Schröder wrote:
Hello, I use infosatepg + tvmovie2vdr to get epg-data some stations. This has been working with vdr-1.3.38, but vdr-1.3.39 segfaults when tvmovie2vdr starts sending the epg-data to vdr.
Infact vdr segfaults when tvmovie2vdr (or I manually) sends CLRE via svdrp ...
Malte Schröder wrote:
On Monday 16 January 2006 15:41, Malte Schröder wrote:
Hello, I use infosatepg + tvmovie2vdr to get epg-data some stations. This has been working with vdr-1.3.38, but vdr-1.3.39 segfaults when tvmovie2vdr starts sending the epg-data to vdr.
Infact vdr segfaults when tvmovie2vdr (or I manually) sends CLRE via svdrp ...
Here's a quick fix for this - I may nned to look further into this...
--- epg.c 2006/01/15 13:58:30 1.49 +++ epg.c 2006/01/16 16:18:49 @@ -935,7 +935,8 @@ cSchedulesLock SchedulesLock(true, 1000); cSchedules *s = (cSchedules *)Schedules(SchedulesLock); if (s) { - s->Clear(); + for (cSchedule *Schedule = s->First(); Schedule; Schedule = s->Next(Schedule)) + Schedule->Cleanup(INT_MAX); return true; } return false;
Klaus
On Monday 16 January 2006 17:26, Klaus Schmidinger wrote:
--- epg.c 2006/01/15 13:58:30 1.49 +++ epg.c 2006/01/16 16:18:49 @@ -935,7 +935,8 @@ cSchedulesLock SchedulesLock(true, 1000); cSchedules *s = (cSchedules *)Schedules(SchedulesLock); if (s) {
- s->Clear();
- for (cSchedule *Schedule = s->First(); Schedule; Schedule =
s->Next(Schedule))
- Schedule->Cleanup(INT_MAX);
return true; } return false;
I am not able to reproduce the error with the patch applied :)
Thx