Currently logging to "backend.log". Logs will be appended to the log file. Output will be logged and displayed. Thread 14 (Thread -1241838672 (LWP 5953)): #0 0xb6431df2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6b00d7c in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 No symbol table info available. #2 0xb7d47c52 in EITScanner::RunEventLoop (this=0x818e4c0) at eitscanner.cpp:133 t = {m_timer = {ds = 63203226}} eitCount = 0 #3 0xb7d47c8f in EITScanner::SpawnEventLoop (param=0x818e4c0) at eitscanner.cpp:72 scanner = (class EITScanner *) 0x818e4c0 #4 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #5 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 13 (Thread -1250227280 (LWP 5955)): #0 0xb6431df2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6b00d7c in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 No symbol table info available. #2 0xb7c3936f in TVRec::RunTV (this=0x81932d0) at tv_rec.cpp:1278 lock = {mtx = 0x8193388} #3 0xb7c39431 in TVRec::EventThread (param=0x81932d0) at tv_rec.cpp:1127 thetv = (class TVRec *) 0x81932d0 #4 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #5 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 12 (Thread -1258615888 (LWP 5957)): #0 0xb6431df2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6b00fad in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 No symbol table info available. #2 0x080b5c13 in Scheduler::RunScheduler (this=0x8194e20) at scheduler.cpp:1009 statuschanged = false recIter = {_M_node = 0x81b0530} curtime = {d = {jd = 2453692}, t = {ds = 63314036}} secsleft = 1485 nexttv = (EncoderLink *) 0x8193768 nextRecording = (ProgramInfo *) 0x81cce18 nextrectime = {d = {jd = 2453692}, t = {ds = 64800000}} startIter = {_M_node = 0x81b0530} idleSince = {d = {jd = 0}, t = {ds = 0}} matchTime = 0.95668 blockShutdown = true idleTimeoutSecs = 0 idleWaitForRecordingTime = 15 fillstart = {tv_sec = 1132242882, tv_usec = 687694} prerollseconds = 60 lastupdate = {d = {jd = 2453692}, t = {ds = 57281686}} recordfileprefix = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8193808, static shared_null = 0x80e0070} firstRun = false fillend = {tv_sec = 1132242882, tv_usec = 808805} placeTime = 0.121110998 query = {<> = {}, m_db = 0x8187eb0, m_isConnected = true, m_returnConnection = false} #3 0x080b8de5 in Scheduler::SchedulerThread (param=0x8194e20) at scheduler.cpp:1434 sched = (Scheduler *) 0x8194e20 #4 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #5 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 11 (Thread -1267004496 (LWP 5958)): #0 0xb627ab3c in __nanosleep_nocancel () from /lib/tls/libc.so.6 No symbol table info available. #1 0xb627a944 in sleep () from /lib/tls/libc.so.6 No symbol table info available. #2 0x08058a11 in AutoExpire::Sleep (this=0x8189e28, sleepTime=60) at autoexpire.cpp:276 minSleep = 5 timeExpended = 35 #3 0x0805f97a in AutoExpire::RunExpirer (this=0x8189e28) at autoexpire.cpp:261 curTime = {ds = 63275558} timer = {ds = 63275557} #4 0x0805f9a3 in AutoExpire::ExpirerThread (param=0x8189e28) at autoexpire.cpp:437 expirer = (AutoExpire *) 0x8189e28 #5 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #6 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 10 (Thread -1275393104 (LWP 5959)): #0 0xb627ab3c in __nanosleep_nocancel () from /lib/tls/libc.so.6 No symbol table info available. #1 0xb627a944 in sleep () from /lib/tls/libc.so.6 No symbol table info available. #2 0x080c0dc2 in HouseKeeper::RunHouseKeeping (this=0x8190cf8) at housekeeper.cpp:186 period = 14 maxhr = 0 minhr = 0 dbTag = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0xcbcded0, static shared_null = 0x80e0070} #3 0x080c0e09 in HouseKeeper::doHouseKeepingThread (param=0x8190cf8) at housekeeper.cpp:254 hkeeper = (HouseKeeper *) 0x8190cf8 #4 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #5 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 9 (Thread -1283781712 (LWP 5960)): #0 0xb627ab3c in __nanosleep_nocancel () from /lib/tls/libc.so.6 No symbol table info available. #1 0xb627a944 in sleep () from /lib/tls/libc.so.6 No symbol table info available. #2 0xb79be5ee in JobQueue::ProcessQueue (this=0x8194870) at jobqueue.cpp:472 queueStartTimeStr = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x81c76c8, static shared_null = 0x80e0070} queueStartTime = 0 atMax = false status = 2 hostname = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0xd02b958, static shared_null = 0x80e0070} maxJobs = 1 queueEndTimeStr = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x81b6290, static shared_null = 0x80e0070} message = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0xcb1cb48, static shared_null = 0x80e0070} tmpStr = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0xcbdc7c0, static shared_null = 0x80e0070} inTimeWindow = true type = 2 id = 428 jobStatus = {sh = 0x81c2130} curQTime = {ds = 63314356} starttime = {d = {jd = 2453691}, t = {ds = 71940000}} flags = 2 sleepTime = 60 curTime = 1735 startedJobAlready = false chanid = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0xd02d2c0, static shared_null = 0x80e0070} startts = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0xcf11120, static shared_null = 0x80e0070} cmds = 0 queueEndTime = 2359 jobs = {sh = 0x818d418} #3 0xb79be80e in JobQueue::RunQueueProcesser (this=0x8194870) at jobqueue.cpp:138 No locals. #4 0xb79be837 in JobQueue::QueueProcesserThread (param=0x8194870) at jobqueue.cpp:144 jobqueue = (class JobQueue *) 0x8194870 #5 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #6 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 8 (Thread -1292170320 (LWP 5961)): #0 0xb6431b91 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6b00fce in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 No symbol table info available. #2 0x080a1b15 in ProcessRequestThread::run (this=0x818a160) at mainserver.cpp:86 No locals. #3 0xb67a7330 in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 No symbol table info available. #4 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #5 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 7 (Thread -1300558928 (LWP 5962)): #0 0xb6431b91 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6b00fce in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 No symbol table info available. #2 0x080a1b15 in ProcessRequestThread::run (this=0x818ced8) at mainserver.cpp:86 No locals. #3 0xb67a7330 in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 No symbol table info available. #4 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #5 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 6 (Thread -1308947536 (LWP 5963)): #0 0xb6431b91 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6b00fce in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 No symbol table info available. #2 0x080a1b15 in ProcessRequestThread::run (this=0x818d748) at mainserver.cpp:86 No locals. #3 0xb67a7330 in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 No symbol table info available. #4 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #5 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 5 (Thread -1317336144 (LWP 5964)): #0 0xb6431b91 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6b00fce in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 No symbol table info available. #2 0x080a1b15 in ProcessRequestThread::run (this=0x818d688) at mainserver.cpp:86 No locals. #3 0xb67a7330 in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 No symbol table info available. #4 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #5 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 4 (Thread -1325724752 (LWP 5965)): #0 0xb64341a9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6430f17 in _L_mutex_lock_29 () from /lib/tls/libpthread.so.0 No symbol table info available. #2 0xb0faff18 in ?? () No symbol table info available. #3 0xb63fb001 in operator delete () from /usr/lib/libstdc++.so.6 No symbol table info available. #4 0xb6affd8e in QRecursiveMutexPrivate::lock () from /usr/lib/libqt-mt.so.3 No symbol table info available. #5 0xb6aff4b7 in QMutex::lock () from /usr/lib/libqt-mt.so.3 No symbol table info available. #6 0xb67b0674 in QApplication::lock () from /usr/lib/libqt-mt.so.3 No symbol table info available. #7 0xb71e168c in ReadStringList (socket=0x89a18c8, list=@0xb0fb034c) at util.cpp:488 read = -1325727544 zerocnt = 134615227 str = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x805fc78, static shared_null = 0x80e0070} sizestr = size = 140778944 utf8 = payload = #8 0x08092c3d in MainServer::ProcessRequestWork (this=0x818d010, sock=0x89a18c8) at mainserver.cpp:265 listline = {> = {sh = 0x82efad0}, } line = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8249c80, static shared_null = 0x80e0070} tokens = {> = {sh = 0x825b7a8}, } command = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8d8f770, static shared_null = 0x80e0070} pbs = (class PlaybackSock *) 0xb0fb03e8 #9 0x0809618f in MainServer::ProcessRequest (this=0x818d010, sock=0x89a18c8) at mainserver.cpp:255 No locals. #10 0x080a1b3b in ProcessRequestThread::run (this=0x818cf50) at mainserver.cpp:91 No locals. #11 0xb67a7330 in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 No symbol table info available. #12 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #13 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 3 (Thread -1384129616 (LWP 7248)): #0 0xb64341a9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0 No symbol table info available. #1 0xb6430f17 in _L_mutex_lock_29 () from /lib/tls/libpthread.so.0 No symbol table info available. #2 0xad7fd048 in ?? () No symbol table info available. #3 0xb6b3a0ec in QStringData::deleteSelf () from /usr/lib/libqt-mt.so.3 No symbol table info available. #4 0xb6affd8e in QRecursiveMutexPrivate::lock () from /usr/lib/libqt-mt.so.3 No symbol table info available. #5 0xb6aff4b7 in QMutex::lock () from /usr/lib/libqt-mt.so.3 No symbol table info available. #6 0xb67b0674 in QApplication::lock () from /usr/lib/libqt-mt.so.3 No symbol table info available. #7 0xb718505b in MythContext::SendReceiveStringList (this=0x80fc670, strlist=@0xad7fd1bc, quickTimeout=false) at mythcontext.cpp:2207 ok = false #8 0xb7d6a15b in PreviewGenerator::RemotePreviewRun (this=0x86420f0) at previewgenerator.cpp:126 strlist = {> = {sh = 0x846d400}, } ok = false #9 0xb7d6a21d in PreviewGenerator::Run (this=0x86420f0) at previewgenerator.cpp:66 No locals. #10 0xb79b4d52 in JobQueue::DoFlagCommercialsThread (this=0x8194870) at jobqueue.cpp:2074 details = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8d8fb30, static shared_null = 0x80e0070} me = { = {<> = {}, d = 0x0}, message = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x89e8768, static shared_null = 0x80e0070}, extradata = {> = {sh = 0x8779b20}, }} subtitle = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8d94ed8, static shared_null = 0x80e0070} logDesc = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8eccb08, static shared_null = 0x80e0070} key = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8784200, static shared_null = 0x80e0070} msg = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x81e52b8, static shared_null = 0x80e0070} program_info = (ProgramInfo *) 0x8885000 controlFlagging = 0 jobID = 429 breaksFound = 2 cmd = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x878f2d8, static shared_null = 0x80e0070} #11 0xb79b5179 in JobQueue::FlagCommercialsThread (param=0x8194870) at jobqueue.cpp:1945 theFlagger = (class JobQueue *) 0x8194870 #12 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #13 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 2 (Thread -1334113360 (LWP 8309)): #0 0xb62afd49 in poll () from /lib/tls/libc.so.6 No symbol table info available. #1 0xb7cf9572 in DVBSIParser::StartSectionReader (this=0xaf28c420) at dvbsiparser.cpp:279 ret = 1 buffer = "\000°A@\000Å\000\000\000\000à\020N\000âÉL\200âÈL@âÇL\000âÆG@âÅG\000âÄFÀâÃF\200âÂF@âÁF\000âÀB@â¿AÀâ¾A\200â½â5\016Iparliament presented by Alicia McCarthy.P\006ò\003\002engP\006ñ°\001undT\004 \000¿\000­ѻ#0\000\0000\000\000mMUeng\017Lords QuestionsARecorded coverage of Lords Questions"... processed = false #2 0xb7cf9f49 in DVBSIParser::SystemInfoThread (param=0xaf28c420) at dvbsiparser.cpp:100 siparser = (DVBSIParser *) 0xaf28c420 #3 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 No symbol table info available. #4 0xb62ba13e in clone () from /lib/tls/libc.so.6 No symbol table info available. Thread 1 (Thread -1241057600 (LWP 5936)): #0 0xb62b26e7 in ___newselect_nocancel () from /lib/tls/libc.so.6 No symbol table info available. #1 0xb6a4cdcb in QSocketDevice::waitForMore () from /usr/lib/libqt-mt.so.3 No symbol table info available. #2 0xb6a48603 in QSocket::waitForMore () from /usr/lib/libqt-mt.so.3 No symbol table info available. #3 0xb6a4866b in QSocket::waitForMore () from /usr/lib/libqt-mt.so.3 No symbol table info available. #4 0xb71e1711 in ReadStringList (socket=0x80fcb88, list=@0xbfae6970) at util.cpp:489 read = 135252028 zerocnt = 0 str = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x806074c, static shared_null = 0x80e0070} sizestr = size = -1221156808 utf8 = payload = #5 0xb717d8c2 in MythContext::EventSocketConnected (this=0x80fc670) at mythcontext.cpp:2322 str = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8643f60, static shared_null = 0x80e0070} strlist = {> = {sh = 0x825bd88}, } #6 0xb72ce39f in MythContext::qt_invoke (this=0x80fc670, _id=3, _o=0xbfae6a3c) at moc_mythcontext.cpp:87 No locals. #7 0xb681bc5f in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 No symbol table info available. #8 0xb681c743 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 No symbol table info available. #9 0xb6be4816 in QSocket::connected () from /usr/lib/libqt-mt.so.3 No symbol table info available. #10 0xb6a488a4 in QSocket::tryConnection () from /usr/lib/libqt-mt.so.3 No symbol table info available. #11 0xb6a488ff in QSocket::sn_write () from /usr/lib/libqt-mt.so.3 No symbol table info available. #12 0xb6be4a0a in QSocket::qt_invoke () from /usr/lib/libqt-mt.so.3 No symbol table info available. #13 0xb681bc5f in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 No symbol table info available. #14 0xb681c5ad in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 No symbol table info available. #15 0xb6bad20c in QSocketNotifier::activated () from /usr/lib/libqt-mt.so.3 No symbol table info available. #16 0xb683c659 in QSocketNotifier::event () from /usr/lib/libqt-mt.so.3 No symbol table info available. #17 0xb67b1778 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 No symbol table info available. #18 0xb67b1996 in QApplication::notify () from /usr/lib/libqt-mt.so.3 No symbol table info available. #19 0xb718dd6b in QApplication::sendEvent (receiver=0x8644390, event=0xbfae6e10) at qapplication.h:496 No locals. #20 0xb67a2b81 in QEventLoop::activateSocketNotifiers () from /usr/lib/libqt-mt.so.3 No symbol table info available. #21 0xb67553d0 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 No symbol table info available. #22 0xb67c9ea2 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 No symbol table info available. #23 0xb67c9dcb in QEventLoop::exec () from /usr/lib/libqt-mt.so.3 No symbol table info available. #24 0xb67b0305 in QApplication::exec () from /usr/lib/libqt-mt.so.3 No symbol table info available. #25 0x08075a5e in main (argc=6, argv=0xbfae7654) at main.cpp:659 a = binname = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x80fc4e8, static shared_null = 0x80e0070} verboseString = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x80fc528, static shared_null = 0x80e0070} daemonize = true printsched = false testsched = false resched = false nosched = false nojobqueue = false noexpirer = false printexpire = false pidfs = port = 6543 statusport = 6544 myip = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x8188f60, static shared_null = 0x80e0070} masterip = {static null = {static null = , d = 0x80e0070, static shared_null = 0x80e0070}, d = 0x81892f0, static shared_null = 0x80e0070} ismaster = true fatal_error = false runsched = true #0 0xb64341a9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0 No breakpoints or watchpoints. #0 0xb64341a9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0 #1 0xb6430f17 in _L_mutex_lock_29 () from /lib/tls/libpthread.so.0 #2 0xad7fd048 in ?? () #3 0xb6b3a0ec in QStringData::deleteSelf () from /usr/lib/libqt-mt.so.3 #4 0xb6affd8e in QRecursiveMutexPrivate::lock () from /usr/lib/libqt-mt.so.3 #5 0xb6aff4b7 in QMutex::lock () from /usr/lib/libqt-mt.so.3 #6 0xb67b0674 in QApplication::lock () from /usr/lib/libqt-mt.so.3 #7 0xb718505b in MythContext::SendReceiveStringList (this=0x80fc670, strlist=@0xad7fd1bc, quickTimeout=false) at mythcontext.cpp:2207 #8 0xb7d6a15b in PreviewGenerator::RemotePreviewRun (this=0x86420f0) at previewgenerator.cpp:126 #9 0xb7d6a21d in PreviewGenerator::Run (this=0x86420f0) at previewgenerator.cpp:66 #10 0xb79b4d52 in JobQueue::DoFlagCommercialsThread (this=0x8194870) at jobqueue.cpp:2074 #11 0xb79b5179 in JobQueue::FlagCommercialsThread (param=0x8194870) at jobqueue.cpp:1945 #12 0xb642fcfd in start_thread () from /lib/tls/libpthread.so.0 #13 0xb62ba13e in clone () from /lib/tls/libc.so.6 #0 0xb64341a9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0 14 Thread -1241838672 (LWP 5953) 0xb6431df2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 13 Thread -1250227280 (LWP 5955) 0xb6431df2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 12 Thread -1258615888 (LWP 5957) 0xb6431df2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 11 Thread -1267004496 (LWP 5958) 0xb627ab3c in __nanosleep_nocancel () from /lib/tls/libc.so.6 10 Thread -1275393104 (LWP 5959) 0xb627ab3c in __nanosleep_nocancel () from /lib/tls/libc.so.6 9 Thread -1283781712 (LWP 5960) 0xb627ab3c in __nanosleep_nocancel () from /lib/tls/libc.so.6 8 Thread -1292170320 (LWP 5961) 0xb6431b91 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 7 Thread -1300558928 (LWP 5962) 0xb6431b91 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 6 Thread -1308947536 (LWP 5963) 0xb6431b91 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 5 Thread -1317336144 (LWP 5964) 0xb6431b91 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 4 Thread -1325724752 (LWP 5965) 0xb64341a9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0 * 3 Thread -1384129616 (LWP 7248) 0xb64341a9 in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0 2 Thread -1334113360 (LWP 8309) 0xb62afd49 in poll () from /lib/tls/libc.so.6 1 Thread -1241057600 (LWP 5936) 0xb62b26e7 in ___newselect_nocancel () from /lib/tls/libc.so.6 Current source file is jobqueue.cpp Compilation directory is /home/stuarta/Projects/MythTV/build/mythtv/libs/libmythtv Located in /home/stuarta/Projects/MythTV/build/mythtv/libs/libmythtv/jobqueue.cpp Source language is c++. Compiled with DWARF 2 debugging format. Does not include preprocessor macro info. 1 // -*- Mode: c++ -*- 2 3 #ifndef USING_DVB 4 #error USING_DVB must be defined to compile eitscanner.cpp 5 #endif 6 7 #include "tv_rec.h" 8 #include "dvbchannel.h" 9 #include "dvbsiparser.h" 10 #include "dvbtypes.h" 11 12 #include "eitscanner.h" 13 #include "eithelper.h" 14 #include "scheduledrecording.h" 15 16 #define LOC QString("EITScanner(): ") 17 18 /** \class EITScanner 19 * \brief Acts as glue between DVBChannel, DVBSIParser, and EITHelper. 20 * 21 * This is the class where the "EIT Crawl" should be implemented. 22 * 23 */ 24 25 EITScanner::EITScanner() 26 : QObject(NULL, "EITScanner"), 27 channel(NULL), parser(NULL), eitHelper(new EITHelper()), 28 exitThread(false), rec(NULL), activeScan(false) 29 { 30 pthread_create(&eventThread, NULL, SpawnEventLoop, this); 31 32 // Lower scheduling priority, to avoid problems with recordings. 33 struct sched_param sp = {19 /* very low priority */}; 34 pthread_setschedparam(eventThread, SCHED_OTHER, &sp); 35 } 36 37 void EITScanner::TeardownAll(void) 38 { 39 StopActiveScan(); 40 if (!exitThread) 41 { 42 exitThread = true; 43 exitThreadCond.wakeAll(); 44 pthread_join(eventThread, NULL); 45 } 46 47 if (eitHelper) 48 { 49 eitHelper->deleteLater(); 50 eitHelper = NULL; 51 } 52 } 53 54 void EITScanner::deleteLater(void) 55 { 56 TeardownAll(); 57 QObject::deleteLater(); 58 } 59 60 void EITScanner::SetPMTObject(const PMTObject *) 61 { 62 eitHelper->ClearList(); 63 } 64 65 /** \fn EITScanner::SpawnEventLoop(void*) 66 * \brief Thunk that allows scanner_thread pthread to 67 * call EITScanner::RunScanner(). 68 */ 69 void *EITScanner::SpawnEventLoop(void *param) 70 { 71 EITScanner *scanner = (EITScanner*) param; 72 scanner->RunEventLoop(); 73 return NULL; 74 } 75 76 /** \fn EITScanner::RunEventLoop() 77 * \brief This runs the event loop for EITScanner until 'exitThread' is true. 78 */ 79 void EITScanner::RunEventLoop(void) 80 { 81 exitThread = false; 82 83 MythTimer t; 84 uint eitCount = 0; 85 86 while (!exitThread) 87 { 88 if (channel) 89 { 90 int mplex = channel->GetMultiplexID(); 91 if ((mplex > 0) && parser && eitHelper->GetListSize()) 92 { 93 eitCount += eitHelper->ProcessEvents(mplex); 94 t.start(); 95 } 96 } 97 98 // If there have been any new events and we haven't 99 // seen any in a while, tell scheduler to run. 100 if (eitCount && (t.elapsed() > 60 * 1000)) 101 { 102 VERBOSE(VB_GENERAL, LOC + "Added "< activeScanNextTrig)) 108 { 109 // if there have been any new events, tell scheduler to run. 110 if (eitCount) 111 { 112 VERBOSE(VB_GENERAL, LOC + "Added "<SetChannel(*activeScanNextChan, TVRec::kFlagEITScan); 123 VERBOSE(VB_GENERAL, LOC + 124 QString("Now looking for EIT data on channel %1") 125 .arg(*activeScanNextChan)); 126 } 127 128 activeScanNextTrig = QDateTime::currentDateTime() 129 .addSecs(activeScanTrigTime); 130 activeScanNextChan++; 131 } 132 133 exitThreadCond.wait(200); // sleep up to 200 ms. 134 } 135 } 136 137 /** \fn EITScanner::StartPassiveScan(DVBChannel*, DVBSIParser*) 138 * \brief Start inserting Event Information Tables from the multiplex 139 * we happen to be tuned to into the database. 140 */ 141 void EITScanner::StartPassiveScan(DVBChannel *_channel, DVBSIParser *_parser) 142 { 143 eitHelper->ClearList(); 144 parser = _parser; 145 channel = _channel; 146 connect(parser, SIGNAL(EventsReady(QMap_Events*)), 147 eitHelper, SLOT(HandleEITs(QMap_Events*))); 148 connect(channel, SIGNAL(UpdatePMTObject(const PMTObject *)), 149 this, SLOT(SetPMTObject(const PMTObject *))); 150 } 151 152 /** \fn EITScanner::StopPassiveScan() 153 * \brief Stops inserting Event Information Tables into DB. 154 */ 155 void EITScanner::StopPassiveScan(void) 156 { 157 eitHelper->disconnect(); 158 eitHelper->ClearList(); 159 160 channel = NULL; 161 parser = NULL; 162 } 163 164 void EITScanner::StartActiveScan(TVRec *_rec, uint max_seconds_per_source) 165 { 166 rec = _rec; 167 168 if (!activeScanChannels.size()) 169 { 170 MSqlQuery query(MSqlQuery::InitCon()); 171 query.prepare( 172 "SELECT channum, mplexid " 173 "FROM channel, cardinput, capturecard, videosource " 174 "WHERE cardinput.sourceid = channel.sourceid AND " 175 " videosource.sourceid = channel.sourceid AND " 176 " capturecard.cardid = cardinput.cardid AND " 177 " channel.mplexid IS NOT NULL AND " 178 " useonairguide = 1 AND " 179 " useeit = 1 AND " 180 " cardinput.cardid = :CARDID " 181 "ORDER BY cardinput.sourceid, atscsrcid"); 182 query.bindValue(":CARDID", rec->GetCaptureCardNum()); 183 184 if (!query.exec() || !query.isActive()) 185 { 186 MythContext::DBError("EITScanner::StartActiveScan", query); 187 return; 188 } 189 190 // TODO make scan work with cards with multiple inputs 191 QMap > chanByMplex; 192 while (query.next()) 193 { 194 uint mplexid = query.value(1).toUInt(); 195 QString channum = query.value(0).toString(); 196 chanByMplex[mplexid].push_back(channum); 197 } 198 199 // This creates a list of channels that visit each multiplex 200 // as often and as soon as possible, but still ensures that 201 // each channel is visited individually. 202 QValueList keyList = chanByMplex.keys(); 203 QValueList::iterator curMplex = keyList.begin(); 204 int i = 0; 205 while (i < query.size()) 206 { 207 if (chanByMplex[*curMplex].size() != 0) 208 { 209 activeScanChannels << chanByMplex[*curMplex].front(); 210 chanByMplex[*curMplex].pop_front(); 211 i++; 212 } 213 if (++curMplex == keyList.end()) 214 curMplex = keyList.begin(); 215 } 216 activeScanNextChan = activeScanChannels.begin(); 217 } 218 219 VERBOSE(VB_EIT, "StartActiveScan called with "<< 220 activeScanChannels.size()<<" channels"); 221 222 if (activeScanChannels.size()) 223 { 224 activeScanNextTrig = QDateTime::currentDateTime(); 225 activeScanTrigTime = max_seconds_per_source; 226 activeScan = true; 227 } 228 } 229 230 void EITScanner::StopActiveScan() 231 { 232 activeScan = false; 233 rec = NULL; 234 StopPassiveScan(); 235 } Current source file is eitscanner.cpp Compilation directory is /home/stuarta/Projects/MythTV/build/mythtv/libs/libmythtv Located in /home/stuarta/Projects/MythTV/build/mythtv/libs/libmythtv/eitscanner.cpp Contains 235 lines. Source language is c++. Compiled with DWARF 2 debugging format. Does not include preprocessor macro info.