| Summary: | Kmix crash while removing usb-soundcard [QString, KMixWindow::unplugged, ..., KMixDeviceManager::unplugged] | ||
|---|---|---|---|
| Product: | [Applications] kmix | Reporter: | Clemens Eisserer <linuxhippy> |
| Component: | general | Assignee: | Christian Esken <esken> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | andresbajotierra, lamarque, oleg.atamanenko+kde, rbowers28, utgarda |
| Priority: | HI | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Fedora RPMs | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | 4.6.1 | |
| Sentry Crash Report: | |||
| Attachments: |
New crash information added by DrKonqi
Bugfix / Patch |
||
The backtrace doesn't have too much information about KMix :-\ I have already installed the corresponding debuginfo-packages, and will add another backtrace as soon as it occurs again. Ok, here's another one:
Application: KMix (kmix), signal: Segmentation fault
The current source language is "auto; currently c".
[KCrash Handler]
#6 QString (other=..., this=0xbf942680) at /usr/include/QtCore/qstring.h:711
#7 KMixWindow::unplugged (other=..., this=0xbf942680) at /usr/src/debug/kdemultimedia-4.3.3/kmix/kmix.cpp:489
#8 0x06399ed5 in KMixWindow::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
at /usr/src/debug/kdemultimedia-4.3.3/i686-redhat-linux-gnu/kmix/kmix.moc:106
#9 0x02e72c0c in QMetaObject::activate (sender=<value optimized out>, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=<value optimized out>)
at kernel/qobject.cpp:3112
#10 0x02e73843 in QMetaObject::activate (sender=<value optimized out>, m=<value optimized out>, local_signal_index=<value optimized out>, argv=<value optimized out>) at kernel/qobject.cpp:3186
#11 0x063c2f34 in KMixDeviceManager::unplugged (this=<value optimized out>, _t1=<value optimized out>) at /usr/src/debug/kdemultimedia-4.3.3/i686-redhat-linux-gnu/kmix/kmixdevicemanager.moc:96
#12 0x063c304c in KMixDeviceManager::unpluggedSlot (this=<value optimized out>, udi=<value optimized out>) at /usr/src/debug/kdemultimedia-4.3.3/kmix/kmixdevicemanager.cpp:164
#13 0x063c425c in KMixDeviceManager::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
at /usr/src/debug/kdemultimedia-4.3.3/i686-redhat-linux-gnu/kmix/kmixdevicemanager.moc:77
#14 0x02e72c0c in QMetaObject::activate (sender=<value optimized out>, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=<value optimized out>)
at kernel/qobject.cpp:3112
#15 0x02e73843 in QMetaObject::activate (sender=<value optimized out>, m=<value optimized out>, local_signal_index=<value optimized out>, argv=<value optimized out>) at kernel/qobject.cpp:3186
#16 0x06b4e794 in Solid::DeviceNotifier::deviceRemoved (this=<value optimized out>, _t1=<value optimized out>) at /usr/src/debug/kdelibs-4.3.3/i686-redhat-linux-gnu/solid/solid/devicenotifier.moc:88
#17 0x06b505ed in Solid::DeviceManagerPrivate::_k_deviceRemoved (this=<value optimized out>, udi=<value optimized out>) at /usr/src/debug/kdelibs-4.3.3/solid/solid/devicemanager.cpp:186
#18 0x06b50a45 in Solid::DeviceManagerPrivate::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
at /usr/src/debug/kdelibs-4.3.3/i686-redhat-linux-gnu/solid/solid/devicemanager_p.moc:74
#19 0x02e72c0c in QMetaObject::activate (sender=<value optimized out>, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=<value optimized out>)
at kernel/qobject.cpp:3112
#20 0x02e73843 in QMetaObject::activate (sender=<value optimized out>, m=<value optimized out>, local_signal_index=<value optimized out>, argv=<value optimized out>) at kernel/qobject.cpp:3186
#21 0x06b637f4 in Solid::Ifaces::DeviceManager::deviceRemoved (this=<value optimized out>, _t1=<value optimized out>)
at /usr/src/debug/kdelibs-4.3.3/i686-redhat-linux-gnu/solid/solid/ifaces/devicemanager.moc:88
#22 0x06b89172 in Solid::Backends::Hal::HalManager::slotDeviceRemoved (this=<value optimized out>, udi=<value optimized out>)
at /usr/src/debug/kdelibs-4.3.3/solid/solid/backends/hal/halmanager.cpp:219
#23 0x06b8925a in Solid::Backends::Hal::HalManager::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
at /usr/src/debug/kdelibs-4.3.3/i686-redhat-linux-gnu/solid/solid/backends/hal/halmanager.moc:72
#24 0x07f7aa3c in QDBusConnectionPrivate::deliverCall (this=<value optimized out>, object=<value optimized out>, msg=<value optimized out>, metaTypes=<value optimized out>,
slotIdx=<value optimized out>) at qdbusintegrator.cpp:891
#25 0x07f829a8 in QDBusCallDeliveryEvent::placeMetaCall(QObject*) () from /usr/lib/libQtDBus.so.4
#26 0x02e6cf96 in QObject::event (this=<value optimized out>, e=<value optimized out>) at kernel/qobject.cpp:1110
#27 0x0344fb24 in QApplicationPrivate::notify_helper (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>) at kernel/qapplication.cpp:4065
#28 0x03457281 in QApplication::notify (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>) at kernel/qapplication.cpp:3605
#29 0x0721402b in KApplication::notify (this=<value optimized out>, receiver=<value optimized out>, event=<value optimized out>) at /usr/src/debug/kdelibs-4.3.3/kdeui/kernel/kapplication.cpp:302
#30 0x02e5cd73 in QCoreApplication::notifyInternal (this=<value optimized out>, receiver=<value optimized out>, event=<value optimized out>) at kernel/qcoreapplication.cpp:610
#31 0x02e5d972 in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.h:213
#32 QCoreApplicationPrivate::sendPostedEvents (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.cpp:1247
#33 0x02e5db2e in QCoreApplication::sendPostedEvents (receiver=<value optimized out>, event_type=<value optimized out>) at kernel/qcoreapplication.cpp:1140
#34 0x02e87f40 in sendPostedEvents () at kernel/qcoreapplication.h:218
#35 postEventSourceDispatch () at kernel/qeventdispatcher_glib.cpp:210
#36 0x00ac4118 in g_main_dispatch (context=<value optimized out>) at gmain.c:1960
#37 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2513
#38 0x00ac7a48 in g_main_context_iterate (context=<value optimized out>, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2591
#39 0x00ac7b74 in IA__g_main_context_iteration (context=0x9961e90, may_block=<value optimized out>) at gmain.c:2654
#40 0x02e87b6d in QEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327
#41 0x034ef356 in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#42 0x02e5b2aa in QEventLoop::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qeventloop.cpp:149
#43 0x02e5b70a in QEventLoop::exec (this=<value optimized out>, flags=<value optimized out>) at kernel/qeventloop.cpp:201
#44 0x02e5dbf7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#45 0x0344f9a8 in QApplication::exec () at kernel/qapplication.cpp:3525
#46 0x063966a3 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kdemultimedia-4.3.3/kmix/main.cpp:71
#47 0x0804865c in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kdemultimedia-4.3.3/i686-redhat-linux-gnu/kmix/kmix_dummy.cpp:3
Thanks Created attachment 42978 [details]
New crash information added by DrKonqi
KMix crashed when I restarted my E-MU 0404 USB Sound Card.
Thanks for the backtraces,
the crash happens, when the following 3 conditions come together:
- The Card with the Master gets unplugged
- There is another soundcard installed
- The other soundcard does not have a Master ("---no-master-detected---").
The bug is quite likely in the following line:
QString localMaster = ((Mixer::mixers())[0])->getLocalMasterMD()->id();
What to do (ideas):
- Guard ALL getLocalMasterMD() calls
- Possibly continue searching even more soundcards
- Finally if there is really really no master, do something like in the already handled "no more soundcards case").
*** Bug 251805 has been marked as a duplicate of this bug. *** Fixed by guarding ALL getLocalMasterMD() calls. Timeline: - Fixed in trunk - Will be fixed in KDE4.6.1 (commit pending, patch attached). Created attachment 55474 [details]
Bugfix / Patch
Has the fix really reached 4.6.1? Can I close this bug? |
Version: (using KDE 4.3.2) OS: Linux Installed from: Fedora RPMs When removing my usb-soundcard kmix crashed. Kmix was already in a strange state before it crashed (it did show a question-mark icon instead the usual loudspeaker). I experienced this only once, and it seems I did not have the required debug-info installed for kmix, so no idea wether the stacktrace is useful: Application: KMix (kmix), signal: Segmentation fault [KCrash Handler] #6 0x07e1502b in ?? () from /usr/lib/libkdeinit4_kmix.so #7 0x07e15ec5 in ?? () from /usr/lib/libkdeinit4_kmix.so #8 0x02e72c0c in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #9 0x02e73843 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #10 0x07e3ef34 in ?? () from /usr/lib/libkdeinit4_kmix.so #11 0x07e3f04c in ?? () from /usr/lib/libkdeinit4_kmix.so #12 0x07e4025c in ?? () from /usr/lib/libkdeinit4_kmix.so #13 0x02e72c0c in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #14 0x02e73843 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #15 0x02122794 in Solid::DeviceNotifier::deviceRemoved (this=<value optimized out>, _t1=<value optimized out>) at /usr/src/debug/kdelibs-4.3.2/i686-redhat-linux-gnu/solid/solid/devicenotifier.moc:88 #16 0x021245ed in Solid::DeviceManagerPrivate::_k_deviceRemoved (this=<value optimized out>, udi=<value optimized out>) at /usr/src/debug/kdelibs-4.3.2/solid/solid/devicemanager.cpp:186 #17 0x02124a45 in Solid::DeviceManagerPrivate::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>) at /usr/src/debug/kdelibs-4.3.2/i686-redhat-linux-gnu/solid/solid/devicemanager_p.moc:74 #18 0x02e72c0c in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4 #19 0x02e73843 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #20 0x021377f4 in Solid::Ifaces::DeviceManager::deviceRemoved (this=<value optimized out>, _t1=<value optimized out>) at /usr/src/debug/kdelibs-4.3.2/i686-redhat-linux-gnu/solid/solid/ifaces/devicemanager.moc:88 #21 0x0215d182 in Solid::Backends::Hal::HalManager::slotDeviceRemoved (this=<value optimized out>, udi=<value optimized out>) at /usr/src/debug/kdelibs-4.3.2/solid/solid/backends/hal/halmanager.cpp:219 #22 0x0215d26a in Solid::Backends::Hal::HalManager::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>) at /usr/src/debug/kdelibs-4.3.2/i686-redhat-linux-gnu/solid/solid/backends/hal/halmanager.moc:72 #23 0x07f7aa3c in ?? () from /usr/lib/libQtDBus.so.4 #24 0x07f829a8 in ?? () from /usr/lib/libQtDBus.so.4 #25 0x02e6cf96 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4 #26 0x0344fb24 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #27 0x03457281 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #28 0x041e252b in KApplication::notify (this=<value optimized out>, receiver=<value optimized out>, event=<value optimized out>) at /usr/src/debug/kdelibs-4.3.2/kdeui/kernel/kapplication.cpp:302 #29 0x02e5cd73 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #30 0x02e5d972 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4 #31 0x02e5db2e in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4 #32 0x02e87f40 in ?? () from /usr/lib/libQtCore.so.4 #33 0x00ac4118 in g_main_dispatch (context=<value optimized out>) at gmain.c:1960 #34 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2513 #35 0x00ac7a48 in g_main_context_iterate (context=<value optimized out>, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2591 #36 0x00ac7b74 in IA__g_main_context_iteration (context=0x8ac6090, may_block=<value optimized out>) at gmain.c:2654 #37 0x02e87b6d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #38 0x034ef356 in ?? () from /usr/lib/libQtGui.so.4 #39 0x02e5b2aa in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #40 0x02e5b70a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #41 0x02e5dbf7 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #42 0x0344f9a8 in QApplication::exec() () from /usr/lib/libQtGui.so.4 #43 0x07e126a3 in kdemain () from /usr/lib/libkdeinit4_kmix.so #44 0x0804865c in _start ()