Application: kmix (3.9-plus) KDE Platform Version: 4.7.3 (4.7.3) "release 1" Qt Version: 4.8.0 Operating System: Linux 3.1.0-2-desktop x86_64 Distribution: "openSUSE 12.2 Milestone 0 (x86_64)" -- Information about the crash: I have observed that after a while kmix takes 100% of one core... at that time amarok was playing. killing it and restarting usually solved the problem. then one day.. I decided to install the debug packages and then start it from konsole with --nofork.. thjs is how I got this nice crash... and the beautiful trace. Alin - What I was doing when the application crashed: - Unusual behavior I noticed: - Custom settings of the application: -- Backtrace: Application: KMix (kmix), signal: Segmentation fault [Current thread is 1 (Thread 0x7f004e5d87a0 (LWP 7998))] Thread 3 (Thread 0x7f002b77b700 (LWP 7999)): #0 0x00007f004deba3a3 in poll () from /lib64/libc.so.6 #1 0x00007f0043511a98 in ?? () from /usr/lib64/libglib-2.0.so.0 #2 0x00007f0043511f59 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #3 0x00007f004b89adb6 in QEventDispatcherGlib::processEvents (this=0xb0ef80, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:426 #4 0x00007f004b86ab12 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #5 0x00007f004b86ad67 in QEventLoop::exec (this=0x7f002b77acf0, flags=...) at kernel/qeventloop.cpp:204 #6 0x00007f004b76c137 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501 #7 0x00007f004b84a91f in QInotifyFileSystemWatcherEngine::run (this=0xac9e70) at io/qfilesystemwatcher_inotify.cpp:248 #8 0x00007f004b76f15b in QThreadPrivate::start (arg=0xac9e70) at thread/qthread_unix.cpp:298 #9 0x00007f003ebe025a in ?? () from /usr/lib64/libGL.so.1 #10 0x00007f004b4d7f05 in start_thread () from /lib64/libpthread.so.0 #11 0x00007f004dec34bd in clone () from /lib64/libc.so.6 Thread 2 (Thread 0x7f002a776700 (LWP 8001)): #0 0x00007f004deba388 in poll () from /lib64/libc.so.6 #1 0x00007f0043511a98 in ?? () from /usr/lib64/libglib-2.0.so.0 #2 0x00007f0043511f59 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #3 0x00007f004b89adb6 in QEventDispatcherGlib::processEvents (this=0x9b8270, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:426 #4 0x00007f004b86ab12 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #5 0x00007f004b86ad67 in QEventLoop::exec (this=0x7f002a775d20, flags=...) at kernel/qeventloop.cpp:204 #6 0x00007f004b76c137 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501 #7 0x00007f004b76f15b in QThreadPrivate::start (arg=0xadc990) at thread/qthread_unix.cpp:298 #8 0x00007f003ebe025a in ?? () from /usr/lib64/libGL.so.1 #9 0x00007f004b4d7f05 in start_thread () from /lib64/libpthread.so.0 #10 0x00007f004dec34bd in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7f004e5d87a0 (LWP 7998)): [KCrash Handler] #6 0x00007f004e1d0653 in MDWSlider::update (this=0x897020) at /usr/src/debug/kdemultimedia-4.7.46_20111113/kmix/gui/mdwslider.cpp:990 #7 0x00007f004e1cbebb in ViewDockAreaPopup::refreshVolumeLevels (this=<optimized out>) at /usr/src/debug/kdemultimedia-4.7.46_20111113/kmix/gui/viewdockareapopup.cpp:159 #8 0x00007f004b87fbd1 in QMetaObject::activate (sender=0x923320, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3547 #9 0x00007f004b87fbd1 in QMetaObject::activate (sender=0x99a6f0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3547 #10 0x00007f004e1a5bec in Mixer_Backend::readSetFromHW (this=0x99a6f0) at /usr/src/debug/kdemultimedia-4.7.46_20111113/kmix/backends/mixer_backend.cpp:155 #11 0x00007f004e1b4e45 in sink_cb (c=<optimized out>, i=<optimized out>, eol=<optimized out>) at /usr/src/debug/kdemultimedia-4.7.46_20111113/kmix/backends/mixer_pulse.cpp:191 #12 0x00007f004c53e694 in context_get_sink_info_callback (pd=<optimized out>, command=<optimized out>, tag=<optimized out>, t=0xad5570, userdata=0x946400) at pulse/introspect.c:272 #13 0x00007f0043a39073 in run_action (pd=0x956370, r=0x921cc0, command=2, ts=0xad5570) at pulsecore/pdispatch.c:279 #14 0x00007f0043a393e3 in pa_pdispatch_run (pd=0x956370, packet=<optimized out>, creds=0x67e880, userdata=0x9a10b0) at pulsecore/pdispatch.c:331 #15 0x00007f004c534ddd in pstream_packet_callback (p=<optimized out>, packet=0xad66a0, creds=0x67e880, userdata=0x9a10b0) at pulse/context.c:335 #16 0x00007f0043a3dc7b in do_read (p=0x67e730) at pulsecore/pstream.c:809 #17 do_something (p=0x67e730) at pulsecore/pstream.c:177 #18 0x00007f004c320bf3 in dispatch_func (source=0x935ee0, callback=<optimized out>, userdata=<optimized out>) at pulse/glib-mainloop.c:584 #19 0x00007f004351158d in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #20 0x00007f0043511d88 in ?? () from /usr/lib64/libglib-2.0.so.0 #21 0x00007f0043511f59 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #22 0x00007f004b89ad4f in QEventDispatcherGlib::processEvents (this=0x608100, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #23 0x00007f004aa78ece in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #24 0x00007f004b86ab12 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #25 0x00007f004b86ad67 in QEventLoop::exec (this=0x7fff8d83e910, flags=...) at kernel/qeventloop.cpp:204 #26 0x00007f004b86f8c5 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148 #27 0x00007f004e1bc52a in kdemain (argc=2, argv=0x7fff8d83eed8) at /usr/src/debug/kdemultimedia-4.7.46_20111113/kmix/apps/main.cpp:75 #28 0x00007f004de0b1bd in __libc_start_main () from /lib64/libc.so.6 #29 0x0000000000400681 in _start () at ../sysdeps/x86_64/elf/start.S:113 Possible duplicates by query: bug 285017, bug 283194. Reported using DrKonqi
it seems to crash every time the song changes in amarok. Alin
Thanks for the bug report. I found the crash is in line 990 (KDE 4.7.3): 986 void MDWSlider::update() 987 { 988 989 if ( m_slidersPlayback.count() != 0 || m_mixdevice->playbackVolume().hasSwitch() ) 990 updateInternal(m_mixdevice->playbackVolume(), m_slidersPlayback, m_mixdevice->isMuted() ); // <<<<<<<< HERE 991 if ( m_slidersCapture.count() != 0 || m_mixdevice->captureVolume().hasSwitch() ) 992 updateInternal(m_mixdevice->captureVolume(), m_slidersCapture, m_mixdevice->isNotRecSource() ); This means m_mixdevice is invalid or null. Looks like a race condition with object creation and object publishing. Or object deletion and still using it. I do *not* think this problem is a problem in the Pulseaudio backend. I will still assign it to it. Colin, will you have a look? If you cannot do anything please just assign it back to me.
Ben Cooksley also had a similar trace: Application: KMix (kmix), signal: Segmentation fault [Current thread is 1 (Thread 0x7f3317e20800 (LWP 3779))] Thread 2 (Thread 0x7f32f3684700 (LWP 3782)): #0 0x00007f3312f60423 in poll () from /lib64/libc.so.6 #1 0x00007f33139dda98 in ?? () from /usr/lib64/libglib-2.0.so.0 #2 0x00007f33139ddf59 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #3 0x00007f3314a446da in QEventDispatcherGlib::processEvents (this=0xa5fa60, flags=...) at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:426 #4 0x00007f3314a05e14 in QEventLoop::processEvents (this=0x7f32f3683ce0, flags=...) at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #5 0x00007f3314a05f9e in QEventLoop::exec (this=0x7f32f3683ce0, flags=...) at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qeventloop.cpp:204 #6 0x00007f33148d48eb in QThread::exec (this=0xa5d100) at /home/ben/kdesvn/qt-copy/src/corelib/thread/qthread.cpp:501 #7 0x00007f33149e119f in QInotifyFileSystemWatcherEngine::run (this=0xa5d100) at /home/ben/kdesvn/qt-copy/src/corelib/io/qfilesystemwatcher_inotify.cpp:248 #8 0x00007f33148d7218 in QThreadPrivate::start (arg=0xa5d100) at /home/ben/kdesvn/qt-copy/src/corelib/thread/qthread_unix.cpp:298 #9 0x00007f3314619f05 in start_thread () from /lib64/libpthread.so.0 #10 0x00007f3312f6953d in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7f3317e20800 (LWP 3779)): [KCrash Handler] #6 0x00007f3317a180f3 in MDWSlider::update (this=0xa28c70) at /home/ben/kdesvn/kdemultimedia/kmix/gui/mdwslider.cpp:990 #7 0x00007f3317a1395b in ViewDockAreaPopup::refreshVolumeLevels (this=<optimized out>) at /home/ben/kdesvn/kdemultimedia/kmix/gui/viewdockareapopup.cpp:159 #8 0x00007f3314a267f6 in QMetaObject::activate (sender=0x998590, m=0x7f3317c4fa40, local_signal_index=1, argv=0x0) at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qobject.cpp:3547 #9 0x00007f3314a267f6 in QMetaObject::activate (sender=0x997350, m=0x7f3317c4b860, local_signal_index=0, argv=0x0) at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qobject.cpp:3547 #10 0x00007f33179edc0c in Mixer_Backend::readSetFromHW (this=0x997350) at /home/ben/kdesvn/kdemultimedia/kmix/backends/mixer_backend.cpp:155 #11 0x00007f33179fecaf in sink_input_cb (c=<optimized out>, i=0x0, eol=<optimized out>) at /home/ben/kdesvn/kdemultimedia/kmix/backends/mixer_pulse.cpp:309 #12 0x00007f3313eacbac in ?? () from /usr/lib64/libpulse.so.0 #13 0x00007f330910b073 in ?? () from /usr/lib64/libpulsecommon-1.1.so #14 0x00007f330910b3e3 in pa_pdispatch_run () from /usr/lib64/libpulsecommon-1.1.so #15 0x00007f3313ea3ddd in ?? () from /usr/lib64/libpulse.so.0 #16 0x00007f330910fc7b in ?? () from /usr/lib64/libpulsecommon-1.1.so #17 0x00007f3313c8fbf3 in ?? () from /usr/lib64/libpulse-mainloop-glib.so.0 #18 0x00007f33139dd58d in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #19 0x00007f33139ddd88 in ?? () from /usr/lib64/libglib-2.0.so.0 #20 0x00007f33139ddf59 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #21 0x00007f3314a446b7 in QEventDispatcherGlib::processEvents (this=0x60d040, flags=...) at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:424 #22 0x00007f3315dfd9ac in QGuiEventDispatcherGlib::processEvents (this=0x60d040, flags=...) at /home/ben/kdesvn/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:204 #23 0x00007f3314a05e14 in QEventLoop::processEvents (this=0x7fff98cab370, flags=...) at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qeventloop.cpp:149 #24 0x00007f3314a05f9e in QEventLoop::exec (this=0x7fff98cab370, flags=...) at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qeventloop.cpp:204 #25 0x00007f3314a08bca in QCoreApplication::exec () at /home/ben/kdesvn/qt-copy/src/corelib/kernel/qcoreapplication.cpp:1148 #26 0x00007f3315d239c4 in QApplication::exec () at /home/ben/kdesvn/qt-copy/src/gui/kernel/qapplication.cpp:3811 #27 0x00007f3317a04422 in kdemain (argc=1, argv=0x7fff98cab908) at /home/ben/kdesvn/kdemultimedia/kmix/apps/main.cpp:72 #28 0x00007f3312eb123d in __libc_start_main () from /lib64/libc.so.6 #29 0x00000000004007e1 in _start () at ../sysdeps/x86_64/elf/start.S:113 So I'm guessing that somehow the VideDockAreaPopup has some stale references that are not being cleared out properly. IIRC there is some code where I try and delete all the old stuff on redraw etc., but perhaps this is masked somewhere in an expanded class for the viewdock stuff? Like Christian I don't think this is the PA backend specifically but rather the general support in Kmix for "dynamic mixers" i.e. mixers whose elements come and go. Of course that infrastructure is primarily *for* PA but I believe Christian is using it a little for other stuff now (MPRIS) too. Not sure I'll be able to look at this soon :s
Several duplicates with the same backtrace, master bug is bug 285017 *** This bug has been marked as a duplicate of bug 285017 ***