Bug 310959

Summary: kmix crash when trying to set input volume
Product: [Applications] kmix Reporter: Yichao Yu <yyc1992>
Component: generalAssignee: Christian Esken <esken>
Status: RESOLVED FIXED    
Severity: crash CC: hggdh2, stefan.ev.fuchs
Priority: HI    
Version: 4.3   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: crash log with debug info 1
crash log with debug info 2
stderr or kmix

Description Yichao Yu 2012-12-01 04:19:32 UTC
Application: kmix (4.3)
KDE Platform Version: 4.9.80
Qt Version: 4.8.4
Operating System: Linux 3.6.8-1-ARCH i686
Distribution: "Arch Linux"

-- Information about the crash:
- What I was doing when the application crashed:
trying to change input volume in kmix gui (second tab)

- Unusual behavior I noticed:
crash immediately (before  I even successfully start to drag the slider)

- Custom settings of the application:

The crash can be reproduced every time.

-- Backtrace:
Application: KMix (kmix), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0xb18a0740 (LWP 3303))]

Thread 2 (Thread 0xa4d24b40 (LWP 3304)):
#0  0xb2edde3d in clock_gettime () from /usr/lib/librt.so.1
#1  0xb5b4ecf5 in ?? () from /usr/lib/libQtCore.so.4
#2  0xb5c3641e in ?? () from /usr/lib/libQtCore.so.4
#3  0x7fffffff in ?? ()
#4  0xb5c367aa in ?? () from /usr/lib/libQtCore.so.4
#5  0x7fffffff in ?? ()

Thread 1 (Thread 0xb18a0740 (LWP 3303)):
[KCrash Handler]
#6  0xb6618484 in QAbstractSlider::value() const () from /usr/lib/libQtGui.so.4
#7  0xb776a694 in ?? () from /usr/lib/libkdeinit4_kmix.so
#8  0xb776daf9 in ?? () from /usr/lib/libkdeinit4_kmix.so
#9  0xb5c1bc76 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#10 0xb690ee45 in QAbstractSlider::valueChanged(int) () from /usr/lib/libQtGui.so.4
#11 0xb6618523 in QAbstractSlider::setValue(int) () from /usr/lib/libQtGui.so.4
#12 0xb6618810 in QAbstractSlider::triggerAction(QAbstractSlider::SliderAction) () from /usr/lib/libQtGui.so.4
#13 0xb661896f in QAbstractSlider::setSliderPosition(int) () from /usr/lib/libQtGui.so.4
#14 0xb66bd468 in QSlider::mouseMoveEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#15 0xb625451c in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#16 0xb6619103 in QAbstractSlider::event(QEvent*) () from /usr/lib/libQtGui.so.4
#17 0xb66bce60 in QSlider::event(QEvent*) () from /usr/lib/libQtGui.so.4
#18 0xb61fb0dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#19 0xb62005c2 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#20 0xb722b781 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#21 0xb5c0399e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#22 0xb61fbf44 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#23 0xb6284495 in ?? () from /usr/lib/libQtGui.so.4
#24 0xb6283143 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#25 0xb62ac7a4 in ?? () from /usr/lib/libQtGui.so.4
#26 0xb2d62793 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#27 0xb2d62b30 in ?? () from /usr/lib/libglib-2.0.so.0
#28 0xb2d62c11 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#29 0xb5c35901 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#30 0xb62ac38a in ?? () from /usr/lib/libQtGui.so.4
#31 0xb5c0247c in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#32 0xb5c02771 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#33 0xb5c07a0a in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#34 0xb61f8f64 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#35 0xb774cd43 in kdemain () from /usr/lib/libkdeinit4_kmix.so
#36 0x0804856b in ?? ()
#37 0xb7584605 in __libc_start_main () from /usr/lib/libc.so.6
#38 0x08048591 in _start ()

Possible duplicates by query: bug 293776, bug 292837, bug 291418, bug 290742.

Reported using DrKonqi
Comment 1 Jekyll Wu 2012-12-02 00:07:36 UTC
Please recompile kmix with debug symbols enabled and kept.
Comment 2 Yichao Yu 2012-12-02 01:12:55 UTC
Created attachment 75572 [details]
crash log with debug info 1
Comment 3 Yichao Yu 2012-12-02 01:13:38 UTC
Created attachment 75573 [details]
crash log with debug info 2

just happened to save two crash log.... nvm
Comment 4 Yichao Yu 2012-12-02 01:14:26 UTC
Created attachment 75574 [details]
stderr or kmix

stderr for the second crash log
Comment 5 Yichao Yu 2012-12-02 01:15:07 UTC
So here it is, compiled with -DCMAKE_BUILD_TYPE=RelWithDebInfo
hopefully enough.
Comment 6 Christian Esken 2012-12-04 20:39:45 UTC
Git commit 2ff2b0f875357f2f0091a433111c5ee74da6bf29 by Christian Esken.
Committed on 04/12/2012 at 21:37.
Pushed by esken into branch 'master'.

Fix crash in the "feedback loop guard" for the case when there is no playback control on a Volume.

M  +10   -4    gui/mdwslider.cpp

http://commits.kde.org/kmix/2ff2b0f875357f2f0091a433111c5ee74da6bf29
Comment 7 Christian Esken 2012-12-04 20:47:29 UTC
Thanks for your bug report. If it happens only on controls without playback, my fix should work.
Please test.

----
Footnote: Cannot test that currently myself (Ubuntu 12.10 doesn't want to hotplug my capture capable audio devices),
Comment 8 Christian Esken 2012-12-04 20:54:53 UTC
*** Bug 311123 has been marked as a duplicate of this bug. ***
Comment 9 Christian Esken 2012-12-04 20:56:58 UTC
*** Bug 311132 has been marked as a duplicate of this bug. ***
Comment 10 Yichao Yu 2012-12-04 21:10:31 UTC
Well, the crash also happens when there is playback. (when I am making a phone call with GTalk) but this commit does seem to fix it.

THX.
close?
Comment 11 Christian Esken 2012-12-04 21:15:21 UTC
Thanks for your super fast test. I agree that the bug can be closed then.
Comment 12 Yichao Yu 2012-12-04 22:51:46 UTC
After playing with the problematic part a little bit, I finally understand what you mean by "control without playback" and yes you are right, it happens only on record tab (with no "playback" control).
Nvm, I just want to clarify any possible confusion in my previous post.
Thx again.