Opened 10 years ago
Closed 5 years ago
#12241 closed Bug Report - General (Fixed)
Crash while loading a MythUI screen
Reported by: | JYA | Owned by: | stuartm |
---|---|---|---|
Priority: | blocker | Milestone: | 0.28 |
Component: | MythTV - User Interface Library | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
Just upgraded today...
Getting a crash when attempting to load notification-ui.xml:
2014-08-10 12:51:30.218844 I TV: Entering main playback loop. ASSERT failure in QList<T>::operator[]: "index out of range", file /Users/jyavenard/Work/mythtv/.osx-packager/build/include/QtCore/qlist.h, line 477 (lldb) bt * thread #1: tid = 0x3c6954, 0x00007fff9312e866 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x00007fff9312e866 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff94ff235c libsystem_pthread.dylib`pthread_kill + 92 frame #2: 0x00007fff8c441b1a libsystem_c.dylib`abort + 125 frame #3: 0x000000010796698a libQtCore.4.dylib`qt_message_output(QtMsgType, char const*) + 154 frame #4: 0x0000000107966c09 libQtCore.4.dylib`qt_message(QtMsgType, char const*, __va_list_tag*) + 377 frame #5: 0x0000000107966561 libQtCore.4.dylib`qFatal(char const*, ...) + 145 frame #6: 0x000000010395f1e0 libmythui-0.28.0.dylib`QList<int>::operator[](this=0x00000001086bef88, i=1) + 96 at qlist.h:477 * frame #7: 0x000000010395b7e5 libmythui-0.28.0.dylib`MythUIType::UpdateDependState(this=0x00000001086bef60, dependee=0x0000000000000000, isDefault=false) + 389 at mythuitype.cpp:1063 frame #8: 0x000000010395dce5 libmythui-0.28.0.dylib`MythUIType::ConnectDependants(this=0x00000001124e70d0, recurse=true) + 1813 at mythuitype.cpp:1469 frame #9: 0x000000010392d278 libmythui-0.28.0.dylib`XMLParseBase::ParseChildren(filename=0x00007fff5fbfbfa8, element=0x00007fff5fbfbd30, parent=0x00000001124e70d0, showWarnings=true) + 4184 at xmlparsebase.cpp:409 frame #10: 0x0000000103935604 libmythui-0.28.0.dylib`XMLParseBase::doLoad(windowname=0x00007fff5fbfc278, parent=0x00000001124e70d0, filename=0x00007fff5fbfbfa8, onlywindows=true, showWarnings=true) + 4772 at xmlparsebase.cpp:764 frame #11: 0x0000000103933d81 libmythui-0.28.0.dylib`XMLParseBase::LoadWindowFromXML(xmlfile=0x00007fff5fbfc268, windowname=0x00007fff5fbfc278, parent=0x00000001124e70d0) + 961 at xmlparsebase.cpp:686 frame #12: 0x0000000103a23d77 libmythui-0.28.0.dylib`MythNotificationScreen::Create(this=0x00000001124e70d0) + 407 at mythnotificationcenter.cpp:418 frame #13: 0x0000000102638c4a libmythtv-0.28.0.dylib`OSD::DrawDirect(this=0x00000001184777e0, painter=0x00000001124c4a20, size=QSize at 0x00007fff5fbfc560, repaint=true) + 1146 at osd.cpp:675 frame #14: 0x00000001026d40ba libmythtv-0.28.0.dylib`VideoOutputOpenGL::PrepareFrame(this=0x0000000109184200, buffer=0x0000000109926c58, t=kScan_Ignore, osd=0x00000001184777e0) + 3818 at videoout_opengl.cpp:636 frame #15: 0x000000010256bdc3 libmythtv-0.28.0.dylib`MythPlayer::DisplayPauseFrame(this=0x000000010c941600) + 387 at mythplayer.cpp:2177 frame #16: 0x000000010256e104 libmythtv-0.28.0.dylib`MythPlayer::VideoLoop(this=0x000000010c941600) + 84 at mythplayer.cpp:2506 frame #17: 0x00000001024a3183 libmythtv-0.28.0.dylib`TV::PlaybackLoop(this=0x000000010988a600) + 339 at tv_play.cpp:1440 frame #18: 0x00000001024a0b02 libmythtv-0.28.0.dylib`TV::StartTV(tvrec=0x0000000000000000, flags=0, selection=0x00007fff5fbfcfa8) + 4834 at tv_play.cpp:409 frame #19: 0x000000010001b0db mythfrontend`startTVNormal() + 75 at main.cpp:601 frame #20: 0x0000000100018ee2 mythfrontend`TVMenuCallback(data=0x000000010b74ee50, selection=0x0000000108680f00) + 450 at main.cpp:821 frame #21: 0x00000001039a1bbb libmythui-0.28.0.dylib`MythThemedMenu::handleAction(this=0x0000000108680ce0, action=0x000000010b77a4f8, password=0x00007fff5fbfda38) + 3931 at myththemedmenu.cpp:859 frame #22: 0x00000001039a3777 libmythui-0.28.0.dylib`MythThemedMenu::buttonAction(this=0x0000000108680ce0, item=0x00000001184de810, skipPass=false) + 343 at myththemedmenu.cpp:718 frame #23: 0x0000000103a6eb01 libmythui-0.28.0.dylib`MythThemedMenu::qt_static_metacall(_o=0x0000000108680ce0, _c=InvokeMetaMethod, _id=2, _a=0x00007fff5fbfdbf0) + 257 at moc_myththemedmenu.cpp:54 frame #24: 0x0000000107a8115e libQtCore.4.dylib`QMetaObject::activate(QObject*, QMetaObject const*, int, void**) + 2030 frame #25: 0x0000000103a715ed libmythui-0.28.0.dylib`MythUIButtonList::itemClicked(this=0x000000010850b8a0, _t1=0x00000001184de810) + 77 at moc_mythuibuttonlist.cpp:122 frame #26: 0x00000001039cf45b libmythui-0.28.0.dylib`MythUIButtonList::keyPressEvent(this=0x000000010850b8a0, e=0x00007fff5fbfe670) + 3723 at mythuibuttonlist.cpp:2479 frame #27: 0x00000001039a0323 libmythui-0.28.0.dylib`MythThemedMenu::keyPressEvent(this=0x0000000108680ce0, event=0x00007fff5fbfe670) + 115 at myththemedmenu.cpp:209 frame #28: 0x00000001038fe48d libmythui-0.28.0.dylib`MythMainWindow::eventFilter(this=0x000000010b3341f0, (null)=0x000000010b3341f0, e=0x00007fff5fbfe670) + 637 at mythmainwindow.cpp:2106 frame #29: 0x0000000107a69ee9 libQtCore.4.dylib`QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 105 frame #30: 0x0000000106c8e313 libQtGui.4.dylib`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 243 frame #31: 0x0000000106c8fb08 libQtGui.4.dylib`QApplication::notify(QObject*, QEvent*) + 1464 frame #32: 0x0000000107a69c33 libQtCore.4.dylib`QCoreApplication::notifyInternal(QObject*, QEvent*) + 99 frame #33: 0x0000000106c91cdf libQtGui.4.dylib`qt_sendSpontaneousEvent(QObject*, QEvent*) + 47 frame #34: 0x0000000106cfef9e libQtGui.4.dylib`QKeyMapper::sendKeyEvent(QWidget*, bool, QEvent::Type, int, QFlags<Qt::KeyboardModifier>, QString const&, bool, int, unsigned int, unsigned int, unsigned int, bool*) + 414 frame #35: 0x0000000106cfea1b libQtGui.4.dylib`QKeyMapperPrivate::translateKeyEvent(QWidget*, OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*, bool) + 1227 frame #36: 0x0000000106c4273e libQtGui.4.dylib`qt_dispatchKeyEvent(void*, QWidget*) + 302 frame #37: 0x0000000106c38009 libQtGui.4.dylib`-[QCocoaView keyDown:] + 265 frame #38: 0x00007fff8ed0456b AppKit`-[NSWindow sendEvent:] + 1843 frame #39: 0x0000000106c3b0e2 libQtGui.4.dylib`-[QCocoaWindow sendEvent:] + 114 frame #40: 0x00007fff8eca5b32 AppKit`-[NSApplication sendEvent:] + 3395 frame #41: 0x0000000106c3fe32 libQtGui.4.dylib`-[QNSApplication sendEvent:] + 82 frame #42: 0x00007fff8eaf59f9 AppKit`-[NSApplication run] + 646 frame #43: 0x0000000106c48972 libQtGui.4.dylib`QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 994 frame #44: 0x0000000107a671c7 libQtCore.4.dylib`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 487 frame #45: 0x0000000107a6a15e libQtCore.4.dylib`QCoreApplication::exec() + 206 frame #46: 0x0000000100011da7 mythfrontend`main(argc=5, argv=0x00007fff5fbffa20) + 17431 at main.cpp:1931
Crash occurs due to an out of bound access in a QList: void MythUIType::UpdateDependState?(MythUIType *dependee, bool isDefault)
This line:
if (m_dependOperator[i-1] == 1)
i = 2, size of m_dependOperator is 1, so attempting to access m_dependOperator[1] will cause a crash (in Qt debug version)
Attachments (1)
Change History (2)
Changed 10 years ago by
Attachment: | notification-ui.xml added |
---|
comment:1 Changed 5 years ago by
Milestone: | unknown → 0.28 |
---|---|
Resolution: | → Fixed |
Status: | new → closed |
This appears to have been fixed in the following commit
https://github.com/MythTV/mythtv/commit/6444db38eb83784c943894ab9c7d4a200d89e50c
Note: See
TracTickets for help on using
tickets.
Screen causing the crash