Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#5941 closed defect (fixed)

MythFrontend Telnet Interface Segfaults when connection is not closed cleanly

Reported by: Rob Smith Owned by: danielk
Priority: minor Milestone: 0.22
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Steps to reproduce with revision 19159

telnet frontend 6546
kill -9 telnet-pid
telnet frontend 6546

backtrace

Program received signal SIGSEGV, Segmentation fault.
0x00000000025e2aa0 in ?? ()
(gdb) bt
#0  0x00000000025e2aa0 in ?? ()
#1  0x0000000000503310 in NetworkControl::newConnection (this=0x162d7a0)
    at networkcontrol.cpp:314
#2  0x000000000051b725 in NetworkControl::qt_metacall (this=0x162d7a0, 
    _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff413da8b0)
    at moc_networkcontrol.cpp:67
#3  0x0000003da9f3fb7a in QMetaObject::activate ()
   from /usr/lib/qt4/libQtCore.so.4
#4  0x0000003daa486358 in ?? () from /usr/lib/qt4/libQtNetwork.so.4
#5  0x0000003daa474c03 in ?? () from /usr/lib/qt4/libQtNetwork.so.4
#6  0x0000003da8f92a2f in QApplicationPrivate::notify_helper ()
   from /usr/lib/qt4/libQtGui.so.4
#7  0x0000003da8f972a0 in QApplication::notify ()
   from /usr/lib/qt4/libQtGui.so.4
#8  0x0000003da9f2d545 in QCoreApplication::notifyInternal ()
   from /usr/lib/qt4/libQtCore.so.4
#9  0x0000003da9f54000 in QEventDispatcherUNIX::activateSocketNotifiers ()
   from /usr/lib/qt4/libQtCore.so.4
#10 0x0000003da9f544f3 in QEventDispatcherUNIXPrivate::doSelect ()
   from /usr/lib/qt4/libQtCore.so.4
#11 0x0000003da9f54847 in QEventDispatcherUNIX::processEvents ()
   from /usr/lib/qt4/libQtCore.so.4
#12 0x0000003da900e5fd in ?? () from /usr/lib/qt4/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#13 0x0000003da9f2caab in QEventLoop::processEvents ()
   from /usr/lib/qt4/libQtCore.so.4
#14 0x0000003da9f2cbfe in QEventLoop::exec () from /usr/lib/qt4/libQtCore.so.4
#15 0x0000003da9f2e584 in QCoreApplication::exec ()
   from /usr/lib/qt4/libQtCore.so.4
#16 0x000000000043e5f8 in main (argc=5, argv=0x7fff413dc128) at main.cpp:1476

and bt full

#0  0x00000000025e2aa0 in ?? ()
No symbol table info available.
#1  0x0000000000503310 in NetworkControl::newConnection (this=0x162d7a0)
    at networkcontrol.cpp:314
	welcomeStr = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
    simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 987}, 
    alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  d = 0x3daa2127a0, static codecForCStrings = 0x0}
	closedOldConn = true
	s = (struct QTcpSocket *) 0x16cbbe0
	locker = {{mtx = 0x162d7d9, val = 23255001}}
#2  0x000000000051b725 in NetworkControl::qt_metacall (this=0x162d7a0, 
    _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff413da8b0)
    at moc_networkcontrol.cpp:67
No locals.
#3  0x0000003da9f3fb7a in QMetaObject::activate ()
   from /usr/lib/qt4/libQtCore.so.4
No symbol table info available.
#4  0x0000003daa486358 in ?? () from /usr/lib/qt4/libQtNetwork.so.4
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#5  0x0000003daa474c03 in ?? () from /usr/lib/qt4/libQtNetwork.so.4
No symbol table info available.
#6  0x0000003da8f92a2f in QApplicationPrivate::notify_helper ()
   from /usr/lib/qt4/libQtGui.so.4
No symbol table info available.
#7  0x0000003da8f972a0 in QApplication::notify ()
   from /usr/lib/qt4/libQtGui.so.4
No symbol table info available.
#8  0x0000003da9f2d545 in QCoreApplication::notifyInternal ()
   from /usr/lib/qt4/libQtCore.so.4
No symbol table info available.
#9  0x0000003da9f54000 in QEventDispatcherUNIX::activateSocketNotifiers ()
   from /usr/lib/qt4/libQtCore.so.4
No symbol table info available.
#10 0x0000003da9f544f3 in QEventDispatcherUNIXPrivate::doSelect ()
   from /usr/lib/qt4/libQtCore.so.4
No symbol table info available.
#11 0x0000003da9f54847 in QEventDispatcherUNIX::processEvents ()
   from /usr/lib/qt4/libQtCore.so.4
No symbol table info available.
#12 0x0000003da900e5fd in ?? () from /usr/lib/qt4/libQtGui.so.4
No symbol table info available.
#13 0x0000003da9f2caab in QEventLoop::processEvents ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/qt4/libQtCore.so.4
No symbol table info available.
#14 0x0000003da9f2cbfe in QEventLoop::exec () from /usr/lib/qt4/libQtCore.so.4
No symbol table info available.
#15 0x0000003da9f2e584 in QCoreApplication::exec ()
   from /usr/lib/qt4/libQtCore.so.4
No symbol table info available.
#16 0x000000000043e5f8 in main (argc=5, argv=0x7fff413dc128) at main.cpp:1476
	bPromptForBackend = false
	bBypassAutoDiscovery = false
	upgradeAllowed = false
	cmdline_err = false
	cmdline = {parseTypes = 255, settingsOverride = {{d = 0x76fe40, 
      e = 0x76fe40}}, settingsQuery = {<QList<QString>> = {{p = {
          static shared_null = {ref = {_q_value = 18153}, alloc = 0, 
            begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x770880}, 
        d = 0x770880}}, <No data fields>}, display = {
    static null = {<No data fields>}, static shared_null = {ref = {
        _q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
      simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
      reserved = 0, array = {0}}, static shared_empty = {ref = {
        _q_value = 987}, alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, 
      simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
---Type <return> to continue, or q <return> to quit---
      reserved = 0, array = {0}}, d = 0x76fe20, 
    static codecForCStrings = 0x0}, geometry = {
    static null = {<No data fields>}, static shared_null = {ref = {
        _q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
      simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
      reserved = 0, array = {0}}, static shared_empty = {ref = {
        _q_value = 987}, alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, 
      simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
      reserved = 0, array = {0}}, d = 0x76fe20, 
    static codecForCStrings = 0x0}, wantsToExit = false}
	a = <incomplete type>
	pluginname = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
    simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 987}, 
    alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  d = 0x76fe20, static codecForCStrings = 0x0}
	finfo = {d_ptr = 0x8a4b20}
	binname = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
    simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 987}, 
---Type <return> to continue, or q <return> to quit---
    alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  d = 0x8a4ae0, static codecForCStrings = 0x0}
	ResetSettings = false
	settingsOverride = {{d = 0x76fe40, e = 0x76fe40}}
	callCleanup = {
  m_cleanFunction = 0x4409f0 <(anonymous namespace)::cleanup()>}
	settingsQuery = {<QList<QString>> = {{p = {static shared_null = {
          ref = {_q_value = 18153}, alloc = 0, begin = 0, end = 0, 
          sharable = 1, array = {0x0}}, d = 0x770880}, 
      d = 0x770880}}, <No data fields>}
	fileprefix = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
    simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 987}, 
    alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  d = 0x8b4a10, static codecForCStrings = 0x0}
	dir = {d_ptr = 0x8cecb0}
	geometry = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
    simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 987}, 
---Type <return> to continue, or q <return> to quit---
    alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  d = 0x76fe20, static codecForCStrings = 0x0}
	priv_thread = 1107327312
	priv_thread_created = true
	status = 0
	themename = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
    simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 987}, 
    alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  d = 0xa68b20, static codecForCStrings = 0x0}
	randomtheme = false
	themedir = {static null = {<No data fields>}, static shared_null = {
    ref = {_q_value = 5432}, alloc = 0, size = 0, data = 0x76fe3a, clean = 0, 
    simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 987}, 
    alloc = 0, size = 0, data = 0x3daa2127ba, clean = 0, simpletext = 0, 
    righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  d = 0xba25d0, static codecForCStrings = 0x0}
	mainWindow = (class MythMainWindow *) 0xa68b70
	pmanager = (MythPluginManager *) 0x16666d0
---Type <return> to continue, or q <return> to quit---
	mon = (class MediaMonitor *) 0x908ad0
	networkControl = (class NetworkControl *) 0x162d7a0
	exitstatus = 0

Change History (4)

comment:1 Changed 11 years ago by danielk

Milestone: unknown0.22

confirmed in trunk [19454].

comment:2 Changed 11 years ago by danielk

Owner: changed from Isaac Richards to danielk
Status: newaccepted

comment:3 Changed 11 years ago by danielk

Resolution: fixed
Status: acceptedclosed

(In [19529]) Fixes #5941. Handle unceremonous NetworkControl? disconnects without segfaulting..

comment:4 Changed 11 years ago by danielk

(In [19530]) Refs #5941. Cleanup of the Network control disconnect code.

Note: See TracTickets for help on using tickets.