[mythtv] Backend segfaulting repeatedly during recording DVB
Ed Wildgoose
lists at wildgooses.com
Wed Feb 23 00:55:31 UTC 2005
Hi folks, I have been trying to debug this for a few days now, but I'm
just not getting anywhere. From a perfectly fine cvs from around mid
Jan, I now get segfaults extremely frequently and usually when the
backend is recording something. The segfaults are really wierd though
and I suspect some subtle memory overflow somewhere which is trampling a
variable. I have run the backend through valgrind, but nothing is
showing up particularly (although I don't really know how to use
valgrind that well)... I have rebuilt QT and glibc a few times to check
there isn't something fishy going on there (although it was working fine
before, so nothing suspected).
[Versions: QT: 3.3.3 Glibc:
The consistent places where it segfaults are two locations. It's always
these two locations, and the relevant lines involve definitely allocated
strings, yet the bt suggests NULL values being passed...
Abreviated backtraces shown below, full backtraces available (didn't
seem necessary to me):
Any ideas *please*...?
Ed W
Thread 13 (Thread -1331709008 (LWP 17856)):
#0 0xb68b105a in _int_malloc () from /lib/libc.so.6
No symbol table info available.
#1 0xb68b0470 in malloc () from /lib/libc.so.6
No symbol table info available.
#2 0xb6a17427 in operator new () from
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so.5
No symbol table info available.
#3 0xb6f77576 in QString::QString () from /usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#4 0xb73e356a in MythContext::KickDatabase (db=0x80d3a60) at
mythcontext.cpp:1250
query = {static null = {static null = <same as static member of
an already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0xb70e7518, static shared_null
= 0x80c0070}
#5 0xb73e40a4 in MythContext::GetSetting (this=0x80d1e40,
key=@0xb09fb950, defaultval=@0xb09fb630)
at mythcontext.cpp:1349
query = {static null = {static null = <same as static member of
an already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x14, static shared_null =
0x80c0070}
result = <incomplete type>
found = false
value = {static null = {static null = <same as static member of
an already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x80c0070, static shared_null =
0x80c0070}
#6 0xb73e46f6 in MythContext::GetNumSetting (this=0x80d1e40,
key=@0xb09fb950, defaultval=3) at mythcontext.cpp:1388
val = {static null = {static null = <same as static member of an
already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x814e75f, static shared_null =
0x80c0070}
retval = {static null = {static null = <same as static member of
an already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x0, static shared_null =
0x80c0070}
#7 0xb7cd35a8 in JobQueue::ProcessQueue (this=0x8104a20) at
jobqueue.cpp:182
delquery = {<> = {<No data fields>}, <No data fields>}
query = {<> = {<No data fields>}, <No data fields>}
chanid = {static null = {static null = <same as static member of
an already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x80c0070, static shared_null =
0x80c0070}
---Type <return> to continue, or q <return> to quit---
starttime = {d = {jd = 0}, t = {ds = 0}}
startts = {static null = {static null = <same as static member
of an already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x80c0070, static shared_null =
0x80c0070}
type = 0
id = 0
cmds = 0
flags = 0
status = 0
hostname = {static null = {static null = <same as static member
of an already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x80c0070, static shared_null =
0x80c0070}
sleepTime = 30
job = {sh = 0xb2a005b8}
jobType = {sh = 0xb2a00548}
jobStatus = {sh = 0xb2a00508}
maxJobs = 3
message = {static null = {static null = <same as static member
of an already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x80c0070, static shared_null =
0x80c0070}
jobs = {sh = 0xb2a02fd8}
atMax = false
#8 0xb7cd32be in JobQueue::RunQueueProcesser (this=0x8104a20) at
jobqueue.cpp:143
No locals.
#9 0xb7cd32e7 in JobQueue::QueueProcesserThread (param=0x8104a20) at
jobqueue.cpp:149
jobqueue = (JobQueue *) 0x8104a20
#10 0xb6a447e1 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#11 0xb69006da in clone () from /lib/libc.so.6
No symbol table info available.
And
Thread 3 (Thread -1245860944 (LWP 19357)):
#0 0xb68b05a8 in free () from /lib/libc.so.6
No symbol table info available.
#1 0xb6a16003 in operator delete () from
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so.5
No symbol table info available.
#2 0xb6a16057 in operator delete[] () from
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so.5
No symbol table info available.
#3 0xb6f778c0 in QStringData::deleteSelf () from
/usr/qt/3/lib/libqt-mt.so.3
No symbol table info available.
#4 0x0805a3f7 in ~QString (this=0xb5bdaa40) at qstring.h:848
No locals.
#5 0xb7de89e8 in DVBSignalMonitor::MonitorLoop (this=0x80fe8e0) at
dvbsignalmonitor.cpp:80
str = {static null = {static null = <same as static member of an
already seen type>, d = 0x80c0070,
static shared_null = 0x80c0070}, d = 0x80c3340, static shared_null =
0x80c0070}
stats = {snr = 65278, ss = 50886, ber = 0, ub = 0, status = 31}
PrevLockedState = true
#6 0xb7de8c1d in DVBSignalMonitor::SpawnMonitorLoop (self=0x80fe8e0) at
dvbsignalmonitor.cpp:92
No locals.
#7 0xb6a447e1 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#8 0xb69006da in clone () from /lib/libc.so.6
No symbol table info available.
More information about the mythtv-dev
mailing list