| Summary: | kmix crash with pulse audio | ||
|---|---|---|---|
| Product: | [Applications] kmix | Reporter: | Alin M Elena <alinm.elena> |
| Component: | Backend: Pulseaudio | Assignee: | Colin Guthrie <colin> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | crash | CC: | esken |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | openSUSE | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Alin M Elena
2011-11-15 15:54:19 UTC
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 *** |