Bug 215253 - Kmix crash while removing usb-soundcard [QString, KMixWindow::unplugged, ..., KMixDeviceManager::unplugged]
Summary: Kmix crash while removing usb-soundcard [QString, KMixWindow::unplugged, ...,...
Status: RESOLVED FIXED
Alias: None
Product: kmix
Classification: Applications
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Fedora RPMs Linux
: HI crash
Target Milestone: ---
Assignee: Christian Esken
URL:
Keywords:
: 251805 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-11-19 11:15 UTC by Clemens Eisserer
Modified: 2011-04-05 07:12 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.6.1
Sentry Crash Report:


Attachments
New crash information added by DrKonqi (5.62 KB, text/plain)
2010-04-23 02:27 UTC, Oleg Atamanenko
Details
Bugfix / Patch (4.79 KB, patch)
2011-01-02 17:01 UTC, Christian Esken
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Clemens Eisserer 2009-11-19 11:15:04 UTC
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 ()
Comment 1 Dario Andres 2009-11-21 17:18:58 UTC
The backtrace doesn't have too much information about KMix :-\
Comment 2 Clemens Eisserer 2009-11-21 18:12:06 UTC
I have already installed the corresponding debuginfo-packages, and will add another backtrace as soon as it occurs again.
Comment 3 Clemens Eisserer 2009-11-30 02:28:46 UTC
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
Comment 4 Dario Andres 2009-12-14 19:38:36 UTC
Thanks
Comment 5 Oleg Atamanenko 2010-04-23 02:27:19 UTC
Created attachment 42978 [details]
New crash information added by DrKonqi

KMix crashed when I restarted my E-MU 0404 USB Sound Card.
Comment 6 Christian Esken 2010-05-19 12:49:43 UTC
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").
Comment 7 Pino Toscano 2010-09-20 15:55:17 UTC
*** Bug 251805 has been marked as a duplicate of this bug. ***
Comment 8 Christian Esken 2011-01-02 16:59:43 UTC
Fixed by guarding ALL getLocalMasterMD() calls.
Timeline:
- Fixed in trunk
- Will be fixed in KDE4.6.1 (commit pending, patch attached).
Comment 9 Christian Esken 2011-01-02 17:01:33 UTC
Created attachment 55474 [details]
Bugfix / Patch
Comment 10 Lamarque V. Souza 2011-04-05 07:12:16 UTC
Has the fix really reached 4.6.1? Can I close this bug?