[mythtv-commits] Ticket #4820: Segfault in scheduler thread

MythTV mythtv at cvs.mythtv.org
Mon Mar 3 07:35:42 UTC 2008


#4820: Segfault in scheduler thread
------------------------------------------------+---------------------------
 Reporter:  Mike Rice <mikerice1969 at gmail.com>  |       Owner:  ijr    
     Type:  defect                              |      Status:  new    
 Priority:  minor                               |   Milestone:  unknown
Component:  mythtv                              |     Version:  head   
 Severity:  medium                              |     Mlocked:  0      
------------------------------------------------+---------------------------
 Running SVN trunk 16313.  May just be memory corruption but hopefully
 someone can see something wrong from the trace.  The full stack trace is
 attached.

 {{{
 Core was generated by `/usr/local/bin/mythbackend --noupnp --daemon -v
 most,noschedule,nojobqueue --lo'.
 Program terminated with signal 11, Segmentation fault.
 #0  0x06ffbc61 in malloc_consolidate () from /lib/libc.so.6
 #1  0x06ffdd8d in _int_malloc () from /lib/libc.so.6
 #2  0x06fffb7b in malloc () from /lib/libc.so.6
 #3  0x04d3dbfd in my_malloc () from /usr/lib/mysql/libmysqlclient.so.15
 #4  0x04d40d7a in alloc_root () from /usr/lib/mysql/libmysqlclient.so.15
 #5  0x04d63300 in cli_read_rows () from
 /usr/lib/mysql/libmysqlclient.so.15
 #6  0x04d63d41 in ?? () from /usr/lib/mysql/libmysqlclient.so.15
 #7  0x04d62244 in mysql_real_query () from
 /usr/lib/mysql/libmysqlclient.so.15
 #8  0x04974557 in QMYSQLResult::reset () from
 /usr/lib/qt-3.3/plugins/sqldrivers/libqsqlmysql.so
 #9  0x0220200b in QSqlQuery::exec () from /usr/lib/qt-3.3/lib/libqt-
 mt.so.3
 #10 0x00962706 in MSqlQuery::exec (this=0xb35fa85c, query=@0xb35fa7f0) at
 mythdbcon.cpp:390
         result = 2
 #11 0x022026b1 in QSqlQuery::exec () from /usr/lib/qt-3.3/lib/libqt-
 mt.so.3
 #12 0x08076f7d in MSqlQuery::exec (this=0xb35fa85c) at
 ../../libs/libmyth/mythdbcon.h:111
 No locals.
 #13 0x00ef2a42 in CardUtil::GetInputGroups (inputid=2) at
 cardutil.cpp:1133
         list = (
     std::vector<unsigned int,std::allocator<unsigned int> > &)
 @0xb35fa9f0: {<std::_Vector_base<unsigned int,std::allocator<unsigned int>
 >> = {_M_impl = {<std::allocator<unsigned int>> =
 {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data
 fields>},
       _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data
 fields>}
         list = {<std::_Vector_base<unsigned int,std::allocator<unsigned
 int> >> = {
     _M_impl = {<std::allocator<unsigned int>> =
 {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data
 fields>},
       _M_start = 0x2284ecd, _M_finish = 0x10, _M_end_of_storage =
 0x70ea128}}, <No data fields>}
         query = {<> = {<No data fields>}, m_db = 0xac650a50, m_isConnected
 = true, m_returnConnection = true}
 #14 0x00ef5dcd in CardUtil::GetConflictingCards (inputid=2,
 exclude_cardid=2) at cardutil.cpp:1198
         cardids = (
     std::vector<unsigned int,std::allocator<unsigned int> > &)
 @0xb35fab78: {<std::_Vector_base<unsigned int,std::allocator<unsigned int>
 >> = {_M_impl = {<std::allocator<unsigned int>> =
 {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data
 fields>},
       _M_start = 0xb35fab98, _M_finish = 0x80743c2, _M_end_of_storage =
 0xb35fabc8}}, <No data fields>}
         inputgroupids = {<std::_Vector_base<unsigned
 int,std::allocator<unsigned int> >> = {
     _M_impl = {<std::allocator<unsigned int>> =
 {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data
 fields>},
       _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data
 fields>}
         cardids = {<std::_Vector_base<unsigned int,std::allocator<unsigned
 int> >> = {
     _M_impl = {<std::allocator<unsigned int>> =
 {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data
 fields>},
       _M_start = 0x251e93c, _M_finish = 0xb35faa18, _M_end_of_storage =
 0x8074e62}}, <No data fields>}
 #15 0x080e387c in Scheduler::IsBusyRecording (this=0x8395880,
 rcinfo=0x8439a48) at scheduler.cpp:1476
         rctv = (EncoderLink *) 0x83be680
         busy_input = {<InputInfo> = {_vptr.InputInfo = 0x81612a8, name =
 {static null = {
         static null = <same as static member of an already seen type>, d =
 0x82960c0, static shared_null = 0x82960c0}, d = 0x82960c0,
       static shared_null = 0x82960c0}, sourceid = 0, inputid = 0, cardid =
 0, mplexid = 0}, chanid = 0}
         inputid = 2
         cardids = {<std::_Vector_base<unsigned int,std::allocator<unsigned
 int> >> = {
     _M_impl = {<std::allocator<unsigned int>> =
 {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data
 fields>},
       _M_start = 0xb35fab98, _M_finish = 0x80743c2, _M_end_of_storage =
 0xb35fabc8}}, <No data fields>}
 #16 0x080f4b00 in Scheduler::RunScheduler (this=0x8395880) at
 scheduler.cpp:1741
         msg = {static null = {static null = <same as static member of an
 already seen type>, d = 0x82960c0,
     static shared_null = 0x82960c0}, d = 0x82960c0, static shared_null =
 0x82960c0}
         fsID = -1
         lockit = {mtx = 0x8388c30}
         subtitle = {static null = {static null = <same as static member of
 an already seen type>, d = 0x82960c0,
     static shared_null = 0x82960c0}, d = 0x8c87700, static shared_null =
 0x82960c0}
         details = {static null = {static null = <same as static member of
 an already seen type>, d = 0x82960c0,
     static shared_null = 0x82960c0}, d = 0x82960c0, static shared_null =
 0x82960c0}
         doSchedAfterStart = false
         is_rec = true
         statuschanged = false
         recIter = {_M_cur = 0x876b690, _M_first = 0x876b538, _M_last =
 0x876b738, _M_node = 0xac32cd6c}
         prerollseconds = 60
         secsleft = 86
         nexttv = (EncoderLink *) 0x83be680
         nextRecording = (ProgramInfo *) 0x8439a48
         nextrectime = {d = {jd = 2454528}, t = {ds = 72000000}}
         schedid = {static null = {static null = <same as static member of
 an already seen type>, d = 0x82960c0,
     static shared_null = 0x82960c0}, d = 0x93ada50, static shared_null =
 0x82960c0}
         curtime = {d = {jd = 2454528}, t = {ds = 71913120}}
         lastupdate = {d = {jd = 2454528}, t = {ds = 71904035}}
         startIter = {_M_cur = 0x876b67c, _M_first = 0x876b538, _M_last =
 0x876b738, _M_node = 0xac32cd6c}
         blockShutdown = false
         idleSince = {d = {jd = 0}, t = {ds = 0}}
         idleTimeoutSecs = 0
         idleWaitForRecordingTime = 15
         firstRun = false
         fillstart = {tv_sec = 1204516704, tv_usec = 36836}
         fillend = {tv_sec = 1204516712, tv_usec = 31287}
         matchTime = 0.00151199999
         placeTime = 7.99445105
         query = {<> = {<No data fields>}, m_db = 0x83885c8, m_isConnected
 = true, m_returnConnection = false}
 #17 0x080f6e6a in Scheduler::SchedulerThread (param=0x8395880) at
 scheduler.cpp:2083
         sched = (Scheduler *) 0x8395880
 #18 0x03f4e50b in start_thread () from /lib/libpthread.so.0

 }}}

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/4820>
MythTV <http://svn.mythtv.org/trac>
MythTV


More information about the mythtv-commits mailing list