[mythtv] Fix conflicts segv

Bruce Markey bjm at lvcm.com
Mon Mar 3 17:58:50 EST 2003


FYI, no biggie. On a test system with the current CVS I'm
seeing a seg fault on the backend every time I choose "Fix
Scheduling Conflicts" from a frontend. I had put some debug
statements in DoMultiCard and could see that this code runs
correctly when the backend is started. However, when  the
frontend requests QUERY_GETALLPENDING, in DoMultiCard the
((*m_tvList)[second->cardid]) comes up empty. Not sure why
though.

--  bjm

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 21410)]
QMap<int, EncoderLink *>::detach (this=0x0) at 
/usr/share/qt/include/qmap.h:742 742         void detach() {  if ( 
sh->count > 1 ) detachInternal(); }
(gdb) bt full
#0  QMap<int, EncoderLink *>::detach (this=0x0)
     at /usr/share/qt/include/qmap.h:742
         this = (QMap<int,EncoderLink *> *) 0x0
#1  0x0805e9d3 in QMap<int, EncoderLink *>::operator[] (this=0x0, 
k=@0x82dfa4c)     at /usr/share/qt/include/qmap.h:800
         this = (QMap<int,EncoderLink *> *) 0x0
         p = (QMapNode<int,EncoderLink *> *) 0x82ba4a8
#2  0x08070fe8 in Scheduler::DoMultiCard (this=0x82d1c08) at 
scheduler.cpp:794
         z = 0
         storeinput = 1
         numinputs = 2
         second = (ProgramInfo *) 0x82df9f8
         secondmove = true
         fixed = false
         first = (ProgramInfo *) 0x82df990
         conflictList = (
     list<ProgramInfo *,allocator<ProgramInfo *> > *) 0x82e0d98
         firstmove = true
         j = {_M_node = 0x82d54b8}
         copylist = (list<ProgramInfo *,allocator<ProgramInfo *> > *) 
0x82e1a70
         numconflicts = 7
         allConflictList = {<_List_base<ProgramInfo 
*,allocator<ProgramInfo *> >> = {<_List_alloc_base<ProgramInfo 
*,allocator<ProgramInfo *>,>> = {
---Type <return> to continue, or q <return> to quit---
       _M_node = 0x82d53a8}, <No data fields>}, <No data fields>}
         canMoveList = {<_List_base<bool,allocator<bool> >> = 
{<_List_alloc_base<bool,allocator<bool>,>> = {
       _M_node = 0x82d53b8}, <No data fields>}, <No data fields>}
         i = {_M_node = 0x82d53c8}
         biter = {_M_node = 0x82d53d8}
#3  0x0806dd9b in Scheduler::FillRecordLists (this=0x82d1c08,
     doautoconflicts=false) at scheduler.cpp:193
         this = (Scheduler *) 0x82d1c08
         foundlist = {sh = 0x82d2d40}
         iter = {_M_node = 0x82d5198}
         askIter = {node = 0x82ba1d0}
#4  0x08064522 in MainServer::HandleGetPendingRecordings (this=0x82b15d0,
     pbs=0x82b21d0) at mainserver.cpp:700
         this = (MainServer *) 0x82b15d0
         sched = (Scheduler *) 0x82d1c08
         conflicts = 8
         recordinglist = (
     list<ProgramInfo *,allocator<ProgramInfo *> > *) 0x82c2f90
         strlist = {<QValueList<QString>> = {sh = 0x82c2c68}, <No data 
fields>}
         iter = {_M_node = 0x82b35d0}
#5  0x0805f7dd in MainServer::readSocket (this=0x82b15d0) at 
mainserver.cpp:125         listline = {<QValueList<QString>> = {sh = 
0x82b2370}, <No data fields>} ---Type <return> to continue, or q 
<return> to quit---
         line = {static null = {
     static null = <same as static member of an already seen type>,
     d = 0x8298d98, static shared_null = 0x8298d98}, d = 0x82c2f90,
   static shared_null = 0x8298d98}
         tokens = {<QValueList<QString>> = {sh = 0x82d1f48}, <No data 
fields>}
         command = {static null = {
     static null = <same as static member of an already seen type>,
     d = 0x8298d98, static shared_null = 0x8298d98}, d = 0x82c2f90,
   static shared_null = 0x8298d98}
         pbs = (PlaybackSock *) 0x82b21d0
         this = (MainServer *) 0x82b15d0
         socket = (QSocket *) 0x82b35d0
         testsock = (PlaybackSock *) 0x82b21d0
#6  0x08077a19 in MainServer::qt_invoke (this=0x82b15d0, _id=6, 
_o=0xbfffe598)
     at moc_mainserver.cpp:99
         this = (MainServer *) 0x82b15d0
#7  0x4038eb26 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#8  0x4038ea7e in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#9  0x405f6058 in QSocket::readyRead () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#10 0x40500962 in QSocket::sn_read () from /usr/lib/libqt-mt.so.3
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#11 0x405f6149 in QSocket::qt_invoke () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#12 0x4038eb26 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#13 0x4038ec34 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#14 0x405ca40b in QSocketNotifier::activated () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#15 0x403a4a4c in QSocketNotifier::event () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#16 0x40347773 in QApplication::internalNotify () from 
/usr/lib/libqt-mt.so.3
No symbol table info available.
#17 0x40347614 in QApplication::notify () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#18 0x402f610f in qt_set_socket_handler () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#19 0x402f6544 in QApplication::processNextEvent () from 
/usr/lib/libqt-mt.so.3 No symbol table info available.
#20 0x40348bbf in QApplication::enter_loop () from /usr/lib/libqt-mt.so.3
No symbol table info available.
#21 0x402f617b in QApplication::exec () from /usr/lib/libqt-mt.so.3
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#22 0x0805daac in main (argc=1, argv=0xbffffc14) at main.cpp:219
         a = {<QObject> = {<Qt> = {static color0 = @0x406ef420,
       static color1 = @0x406ef428, static black = @0x406ef430,
       static white = @0x406ef438, static darkGray = @0x406ef440,
       static gray = @0x406ef448, static lightGray = @0x406ef450,
       static red = @0x406ef458, static green = @0x406ef460,
       static blue = @0x406ef468, static cyan = @0x406ef470,
       static magenta = @0x406ef478, static yellow = @0x406ef480,
       static darkRed = @0x406ef488, static darkGreen = @0x406ef490,
       static darkBlue = @0x406ef498, static darkCyan = @0x406ef4a0,
       static darkMagenta = @0x406ef4a8, static darkYellow = @0x406ef4b0,
       static arrowCursor = @0x406edd00, static upArrowCursor = @0x406edd08,
       static crossCursor = @0x406edd10, static waitCursor = @0x406edd18,
       static ibeamCursor = @0x406edd20, static sizeVerCursor = @0x406edd28,
       static sizeHorCursor = @0x406edd30,
       static sizeBDiagCursor = @0x406edd38,
       static sizeFDiagCursor = @0x406edd40,
       static sizeAllCursor = @0x406edd48, static blankCursor = @0x406edd50,
       static splitVCursor = @0x406edd60, static splitHCursor = @0x406edd58,
       static pointingHandCursor = @0x406edd68,
       static forbiddenCursor = @0x406edd70,
       static whatsThisCursor = @0x406edd78}, static metaObj = 0x82992d0,
     isSignal = 0, isWidget = 0, pendTimer = 0, blockSig = 0, wasDeleted 
= 0,
---Type <return> to continue, or q <return> to quit---
     isTree = 1, objname = 0x0, parentObj = 0x0, childObjects = 0x829c9d8,
     connections = 0x82999d8, senderObjects = 0x0, eventFilters = 0x0,
     postedEvents = 0x0, d = 0x0,
     _vptr.QObject = 0x406c9f60 <QApplication virtual table>},
   static metaObj = 0x829af90, static qt_mutex = 0x829ab28, app_argc = 1,
   app_argv = 0xbffffc14, quit_now = false, quit_code = 0,
   static app_style = 0x0, static app_cspec = 0, static app_pal = 0x829c6e8,
   static app_font = 0x0, static app_cursor = 0x0, static app_tracking = 0,
   static is_app_running = true, static is_app_closing = false,
   static app_exit_loop = false, static loop_level = 1,
   static main_widget = 0x0, static focus_widget = 0x0,
   static active_window = 0x0, static obey_desktop_settings = true,
   static cursor_flash_time = 1000, static mouse_double_click_time = 400,
   static wheel_scroll_lines = 3, static animate_ui = true,
   static animate_menu = false, static animate_tooltip = false,
   static animate_combo = false, static fade_menu = false,
   static fade_tooltip = false, translators = 0x0, session_manager = 
0x829c990,
   session_id = {static null = {
       static null = <same as static member of an already seen type>,
       d = 0x8298d98, static shared_null = 0x8298d98}, d = 0x8298d98,
     static shared_null = 0x8298d98}, is_session_restored = false,
   static app_strut = {wd = 0, ht = 0}, static app_libpaths = 0x829d3f8,
   static app_palettes = 0x829c8f8, static app_fonts = 0x0,
---Type <return> to continue, or q <return> to quit---
   static popupWidgets = 0x0}
         logfile = {static null = {
     static null = <same as static member of an already seen type>,
     d = 0x8298d98, static shared_null = 0x8298d98}, d = 0x829cb10,
   static shared_null = 0x8298d98}
         pidfile = {static null = {
     static null = <same as static member of an already seen type>,
     d = 0x8298d98, static shared_null = 0x8298d98}, d = 0x829cb38,
   static shared_null = 0x8298d98}
         daemonize = false
         logfd = -1
         pidfs = <incomplete type>
         db = (QSqlDatabase *) 0x82a47c0
         subthread = (QSqlDatabase *) 0x829ee10
         port = 6543
         statusport = 6544
         myip = {static null = {
     static null = <same as static member of an already seen type>,
     d = 0x8298d98, static shared_null = 0x8298d98}, d = 0x82b2010,
   static shared_null = 0x8298d98}
         masterip = {static null = {
     static null = <same as static member of an already seen type>,
     d = 0x8298d98, static shared_null = 0x8298d98}, d = 0x82b03c8,
---Type <return> to continue, or q <return> to quit---
   static shared_null = 0x8298d98}
         ismaster = true
         sched = (Scheduler *) 0x82adbf8
(gdb)



More information about the mythtv-dev mailing list