Bug 241630 - k3b crashes on closing dialog after succesful audio CD ripping [qDeleteAll (K3b::CdparanoiaLibData) , ~CdparanoiaLib, ~AudioRipJob]
Summary: k3b crashes on closing dialog after succesful audio CD ripping [qDeleteAll (K...
Status: RESOLVED FIXED
Alias: None
Product: k3b
Classification: Applications
Component: general (show other bugs)
Version: 1.92.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Michał Małek
URL:
Keywords:
: 242910 247233 261183 261950 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-06-13 10:22 UTC by Cyril Brosch
Modified: 2011-01-03 15:18 UTC (History)
5 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cyril Brosch 2010-06-13 10:22:40 UTC
Version:           1.92.0 (using KDE 4.4.3) 
OS:                Linux

K3b reproduceably crashes when I close the dialog window after ripping an audio CD.



Reproducible: Always

Steps to Reproduce:
1. rip an audio CD
2. after finish click "close" in the dialog

Actual Results:  
k3b crashes

Expected Results:  
dialog should close

Here's the log:

Application: K3b (k3b), signal: Segmentation fault
[Current thread is 1 (Thread 0xb322f710 (LWP 8342))]

Thread 3 (Thread 0xb137bb70 (LWP 8343)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4693401 in select () at ../sysdeps/unix/syscall-template.S:82
#2  0xb5409618 in QProcessManager::run (this=0xb5546888) at io/qprocess_unix.cpp:245
#3  0xb532e69f in QThreadPrivate::start (arg=0xb5546888) at thread/qthread_unix.cpp:248
#4  0xb4538b15 in start_thread (arg=0xb137bb70) at pthread_create.c:297
#5  0xb469a77e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xb0b7ab70 (LWP 9582)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb453d442 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:179
#2  0xb46a8694 in __pthread_cond_timedwait (cond=0xb0b7a244, mutex=0xb0b7a274, abstime=0xb0b7a2c0) at forward.c:152
#3  0xb532e43c in thread_sleep (ti=0xb0b7a2c0) at thread/qthread_unix.cpp:398
#4  0xb532e5d4 in QThread::sleep (secs=2) at thread/qthread_unix.cpp:412
#5  0xb75e475e in K3b::MediaCache::PollThread::run (this=0x8424c20) at /usr/src/debug/k3b-1.92.0/libk3b/tools/k3bmediacache.cpp:106
#6  0xb532e69f in QThreadPrivate::start (arg=0x8424c20) at thread/qthread_unix.cpp:248
#7  0xb4538b15 in start_thread (arg=0xb0b7ab70) at pthread_create.c:297
#8  0xb469a77e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb322f710 (LWP 8342)):
[KCrash Handler]
#6  qDeleteAll<QMap<K3b::Device::Device*, K3b::CdparanoiaLibData*>::const_iterator> (begin=..., end=...) at /usr/include/QtCore/qalgorithms.h:322
#7  0xb75cae5d in qDeleteAll<QMap<K3b::Device::Device*, K3b::CdparanoiaLibData*> > (this=0x8972ee8, __in_chrg=<value optimized out>) at /usr/include/QtCore/qalgorithms.h:330
#8  freeAll (this=0x8972ee8, __in_chrg=<value optimized out>) at /usr/src/debug/k3b-1.92.0/libk3b/tools/k3bcdparanoialib.cpp:244
#9  K3b::CdparanoiaLib::~CdparanoiaLib (this=0x8972ee8, __in_chrg=<value optimized out>) at /usr/src/debug/k3b-1.92.0/libk3b/tools/k3bcdparanoialib.cpp:441
#10 0x08111603 in K3b::AudioRipJob::~AudioRipJob (this=0x8b56fb8, __in_chrg=<value optimized out>) at /usr/src/debug/k3b-1.92.0/src/rip/k3baudioripjob.cpp:101
#11 0x081116f0 in K3b::AudioRipJob::~AudioRipJob (this=0x8b56fb8, __in_chrg=<value optimized out>) at /usr/src/debug/k3b-1.92.0/src/rip/k3baudioripjob.cpp:103
#12 0x0811cb77 in K3b::AudioRippingDialog::slotStartClicked (this=0xbf81f72c) at /usr/src/debug/k3b-1.92.0/src/rip/k3baudiorippingdialog.cpp:307
#13 0x08174719 in K3b::InteractionDialog::slotStartClickedInternal (this=0xbf81f72c) at /usr/src/debug/k3b-1.92.0/src/k3binteractiondialog.cpp:312
#14 0x081764b7 in K3b::InteractionDialog::qt_metacall (this=0xbf81f72c, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbf81e748)
    at /usr/src/debug/k3b-1.92.0/build/src/k3binteractiondialog.moc:161
#15 0x0811c02f in K3b::AudioRippingDialog::qt_metacall (this=0xbf81f72c, _c=QMetaObject::InvokeMetaMethod, _id=103, _a=0xbf81e748) at /usr/src/debug/k3b-1.92.0/build/src/k3baudiorippingdialog.moc:70
#16 0xb542fc6d in QMetaObject::metacall (object=0xbf81f72c, cl=QMetaObject::InvokeMetaMethod, idx=103, argv=0xbf81e748) at kernel/qmetaobject.cpp:237
#17 0xb543f353 in QMetaObject::activate (sender=0x88fede8, m=0x820cd30, local_signal_index=2, argv=0xbf81e748) at kernel/qobject.cpp:3293
#18 0xb50800cd in QAbstractButton::clicked (this=0x88fede8, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#19 0xb4d82eed in QAbstractButtonPrivate::emitClicked (this=0x8914768) at widgets/qabstractbutton.cpp:546
#20 0xb4d845ab in QAbstractButtonPrivate::click (this=0x8914768) at widgets/qabstractbutton.cpp:539
#21 0xb4d84866 in QAbstractButton::mouseReleaseEvent (this=0x88fede8, e=0xbf81ee54) at widgets/qabstractbutton.cpp:1121
#22 0xb49d13c0 in QWidget::event (this=0x88fede8, event=0xbf81ee54) at kernel/qwidget.cpp:7998
#23 0xb4d83aa0 in QAbstractButton::event (this=0x88fede8, e=0xbf81ee54) at widgets/qabstractbutton.cpp:1080
#24 0xb4e233a8 in QPushButton::event (this=0x88fede8, e=0xbf81ee54) at widgets/qpushbutton.cpp:679
#25 0xb4978584 in QApplicationPrivate::notify_helper (this=0x823fa18, receiver=0x88fede8, e=0xbf81ee54) at kernel/qapplication.cpp:4300
#26 0xb497d4d0 in QApplication::notify (this=0xbf81eb6c, receiver=0x88fede8, e=0xbf81ee54) at kernel/qapplication.cpp:3865
#27 0xb58c8771 in KApplication::notify (this=0xbf820898, receiver=0x88fede8, event=0xbf81ee54) at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kapplication.cpp:302
#28 0xb5429c5e in QCoreApplication::notifyInternal (this=0xbf820898, receiver=0x88fede8, event=0xbf81ee54) at kernel/qcoreapplication.cpp:704
#29 0xb497956c in sendSpontaneousEvent (receiver=0x88fede8, event=0xbf81ee54, alienWidget=0x88fede8, nativeWidget=0xbf81f72c, buttonDown=0xb52c7078, lastMouseReceiver=..., spontaneous=true)
    at ../../src/corelib/kernel/qcoreapplication.h:218
#30 QApplicationPrivate::sendMouseEvent (receiver=0x88fede8, event=0xbf81ee54, alienWidget=0x88fede8, nativeWidget=0xbf81f72c, buttonDown=0xb52c7078, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2963
#31 0xb4a0069c in QETWidget::translateMouseEvent (this=0xbf81f72c, event=0xbf81f36c) at kernel/qapplication_x11.cpp:4368
#32 0xb49ff847 in QApplication::x11ProcessEvent (this=0xbf820898, event=0xbf81f36c) at kernel/qapplication_x11.cpp:3379
#33 0xb4a283d0 in x11EventSourceDispatch (s=0x8244b70, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#34 0xb38db969 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#35 0xb38dc170 in ?? () from /usr/lib/libglib-2.0.so.0
#36 0xb38dc42a in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#37 0xb5455ddb in QEventDispatcherGlib::processEvents (this=0x82354b8, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#38 0xb4a27ffa in QGuiEventDispatcherGlib::processEvents (this=0x82354b8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#39 0xb5428efd in QEventLoop::processEvents (this=0xbf81f620, flags=...) at kernel/qeventloop.cpp:149
#40 0xb5429149 in QEventLoop::exec (this=0xbf81f620, flags=...) at kernel/qeventloop.cpp:201
#41 0xb4ea1d9d in QDialog::exec (this=0xbf81f72c) at dialogs/qdialog.cpp:546
#42 0x081760c5 in K3b::InteractionDialog::exec (this=0xbf81f72c) at /usr/src/debug/k3b-1.92.0/src/k3binteractiondialog.cpp:526
#43 0x0811fa73 in K3b::AudioCdView::startRip (this=0x833ecb8) at /usr/src/debug/k3b-1.92.0/src/rip/k3baudiocdview.cpp:313
#44 0x081210f4 in K3b::AudioCdView::qt_metacall (this=0x833ecb8, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbf81f8e8)
    at /usr/src/debug/k3b-1.92.0/build/src/k3baudiocdview.moc:93
#45 0xb542fc6d in QMetaObject::metacall (object=0x833ecb8, cl=QMetaObject::InvokeMetaMethod, idx=40, argv=0xbf81f8e8) at kernel/qmetaobject.cpp:237
#46 0xb543f353 in QMetaObject::activate (sender=0x84cbd78, m=0xb52abda8, local_signal_index=1, argv=0xbf81f8e8) at kernel/qobject.cpp:3293
#47 0xb497104d in QAction::triggered (this=0x84cbd78, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#48 0xb49712eb in QAction::activate (this=0x84cbd78, event=QAction::Trigger) at kernel/qaction.cpp:1255
#49 0xb4e57bc0 in trigger (this=0x84ce018) at ../../src/gui/kernel/qaction.h:218
#50 QToolButton::nextCheckState (this=0x84ce018) at widgets/qtoolbutton.cpp:1147
#51 0xb4d84567 in QAbstractButtonPrivate::click (this=0x84ce038) at widgets/qabstractbutton.cpp:528
#52 0xb4d84866 in QAbstractButton::mouseReleaseEvent (this=0x84ce018, e=0xbf820024) at widgets/qabstractbutton.cpp:1121
#53 0xb4e57cdd in QToolButton::mouseReleaseEvent (this=0x84ce018, e=0xbf820024) at widgets/qtoolbutton.cpp:721
#54 0xb49d13c0 in QWidget::event (this=0x84ce018, event=0xbf820024) at kernel/qwidget.cpp:7998
#55 0xb4d83aa0 in QAbstractButton::event (this=0x84ce018, e=0xbf820024) at widgets/qabstractbutton.cpp:1080
#56 0xb4e5944c in QToolButton::event (this=0x84ce018, event=0xbf820024) at widgets/qtoolbutton.cpp:1163
#57 0xb4978584 in QApplicationPrivate::notify_helper (this=0x823fa18, receiver=0x84ce018, e=0xbf820024) at kernel/qapplication.cpp:4300
#58 0xb497d4d0 in QApplication::notify (this=0xbf81fd3c, receiver=0x84ce018, e=0xbf820024) at kernel/qapplication.cpp:3865
#59 0xb58c8771 in KApplication::notify (this=0xbf820898, receiver=0x84ce018, event=0xbf820024) at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kapplication.cpp:302
#60 0xb5429c5e in QCoreApplication::notifyInternal (this=0xbf820898, receiver=0x84ce018, event=0xbf820024) at kernel/qcoreapplication.cpp:704
#61 0xb497956c in sendSpontaneousEvent (receiver=0x84ce018, event=0xbf820024, alienWidget=0x84ce018, nativeWidget=0x833f9a8, buttonDown=0xb52c7078, lastMouseReceiver=..., spontaneous=true)
    at ../../src/corelib/kernel/qcoreapplication.h:218
#62 QApplicationPrivate::sendMouseEvent (receiver=0x84ce018, event=0xbf820024, alienWidget=0x84ce018, nativeWidget=0x833f9a8, buttonDown=0xb52c7078, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2963
#63 0xb4a0069c in QETWidget::translateMouseEvent (this=0x833f9a8, event=0xbf82053c) at kernel/qapplication_x11.cpp:4368
#64 0xb49ff847 in QApplication::x11ProcessEvent (this=0xbf820898, event=0xbf82053c) at kernel/qapplication_x11.cpp:3379
#65 0xb4a283d0 in x11EventSourceDispatch (s=0x8244b70, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#66 0xb38db969 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#67 0xb38dc170 in ?? () from /usr/lib/libglib-2.0.so.0
#68 0xb38dc42a in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#69 0xb5455ddb in QEventDispatcherGlib::processEvents (this=0x82354b8, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#70 0xb4a27ffa in QGuiEventDispatcherGlib::processEvents (this=0x82354b8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#71 0xb5428efd in QEventLoop::processEvents (this=0xbf8207f4, flags=...) at kernel/qeventloop.cpp:149
#72 0xb5429149 in QEventLoop::exec (this=0xbf8207f4, flags=...) at kernel/qeventloop.cpp:201
#73 0xb542da30 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#74 0xb4975ab4 in QApplication::exec () at kernel/qapplication.cpp:3579
#75 0x0815ec6e in main (argc=) at /usr/src/debug/k3b-1.92.0/src/main.cpp:151
Comment 1 Cyril Brosch 2010-07-09 14:20:16 UTC
Seems to be fixed in 2.0 final, I close it for now. Dunno what fixed it, it was however not related to bug https://bugs.kde.org/show_bug.cgi?id=236466, which is not fixed in the built I use.
Comment 2 Michał Małek 2010-09-05 09:27:34 UTC
Bug is still valid (see bug 247233)
Comment 3 Michał Małek 2010-09-05 09:28:16 UTC
*** Bug 247233 has been marked as a duplicate of this bug. ***
Comment 4 Michał Małek 2010-09-07 23:13:13 UTC
To all who experienced the crash: did you have more than one drive installed on the system at the time crash happened?
Comment 5 Michał Małek 2010-09-08 08:08:32 UTC
SVN commit 1172893 by mmalek:

Fixed GPF caused by invalidated iterators. Invalidation happened when items were removed from QMap collection while qDeleteAll() implicitly iterated through it
BUG: 241630

 M  +1 -0      ChangeLog  
 M  +27 -22    libk3b/tools/k3bcdparanoialib.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1172893
Comment 6 Michał Małek 2010-09-08 08:08:44 UTC
SVN commit 1172894 by mmalek:

Fixed GPF caused by invalidated iterators. Invalidation happened when items were removed from QMap collection while qDeleteAll() implicitly iterated through it
BUG: 241630


 M  +1 -0      ChangeLog  
 M  +27 -22    libk3b/tools/k3bcdparanoialib.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1172894
Comment 7 David Naylor 2010-09-08 20:34:54 UTC
(In reply to comment #4)
> To all who experienced the crash: did you have more than one drive installed on
> the system at the time crash happened?

Yes, I have two drives installed (on IDE bus).  I disconnected one but k3b still crashed.  I applied your patch and it works (for both one and two drives attached).  

I am still experienced out of order track ripping (it does not go 1, 2, 3...) and track 1 does not rip properly if not done individually.  This is with the Ogg-Vorbis encoder.  Have these been fixed in 2.0.2 or should I file bugs reports?
Comment 8 Dario Andres 2010-12-25 14:33:56 UTC
*** Bug 261183 has been marked as a duplicate of this bug. ***
Comment 9 Dario Andres 2010-12-25 14:35:12 UTC
*** Bug 242910 has been marked as a duplicate of this bug. ***
Comment 10 Pino Toscano 2011-01-03 15:18:20 UTC
*** Bug 261950 has been marked as a duplicate of this bug. ***