Bug 261439

Summary: K3b crashed when burning of audioCD project starts
Product: [Applications] k3b Reporter: Marian Kyral <mkyral>
Component: generalAssignee: Michał Małek <michalm>
Status: RESOLVED FIXED    
Severity: crash CC: kde, trueg
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: fix divide by 0 error.

Description Marian Kyral 2010-12-28 11:09:41 UTC
Application: k3b (2.0.80)
KDE Platform Version: 4.5.90 (4.6 RC1)
Qt Version: 4.7.1
Operating System: Linux 2.6.36-gentoo-r5-ck2 x86_64
Distribution (Platform): Gentoo Packages

-- Information about the crash:
- What I was doing when the application crashed:

I've created an AudioCD project from mp3 files and I want to burn it. The burning dialog window is shown, but K3b crashining exactly on start of burning.

K3b is compiled from Git (bc94cc80c6b6)

The crash can be reproduced every time.

-- Backtrace:
Application: K3b (k3b), signal: Floating point exception
[Current thread is 1 (Thread 0x7f63594a8760 (LWP 12199))]

Thread 5 (Thread 0x7f6353c1a710 (LWP 12200)):
#0  0x00000031a4c436b7 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#1  0x00000031a4c44649 in g_main_context_iterate.clone.5 () from /usr/lib/libglib-2.0.so.0
#2  0x00000031a4c44ced in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00000031a758b506 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00000031a755f9b2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00000031a755fbf4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00000031a7475f94 in QThread::exec() () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00000031a7541748 in QInotifyFileSystemWatcherEngine::run() () from /usr/lib64/qt4/libQtCore.so.4
#8  0x00000031a747875e in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#9  0x00000031a3406d5c in start_thread () from /lib/libpthread.so.0
#10 0x00000031a2cd15ed in clone () from /lib/libc.so.6

Thread 4 (Thread 0x7f6350aeb710 (LWP 12201)):
#0  0x00000031a2ccad53 in select () from /lib/libc.so.6
#1  0x00000031a754100c in QProcessManager::run() () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00000031a747875e in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00000031a3406d5c in start_thread () from /lib/libpthread.so.0
#4  0x00000031a2cd15ed in clone () from /lib/libc.so.6

Thread 3 (Thread 0x7f63502ea710 (LWP 12219)):
#0  0x00000031a2ccad53 in select () from /lib/libc.so.6
#1  0x00007f63595781e7 in K3bQProcessManager::run (this=0x1e73e40) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/libk3b/tools/qprocess/k3bqprocess_unix.cpp:331
#2  0x00000031a747875e in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00000031a3406d5c in start_thread () from /lib/libpthread.so.0
#4  0x00000031a2cd15ed in clone () from /lib/libc.so.6

Thread 2 (Thread 0x7f634fae9710 (LWP 12221)):
#0  0x00000031a340b999 in pthread_cond_timedwait () from /lib/libpthread.so.0
#1  0x00000031a7478525 in thread_sleep(timespec*) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00000031a74786c3 in QThread::sleep(unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007f635956b69d in K3b::MediaCache::PollThread::run (this=0x1eda840) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/libk3b/tools/k3bmediacache.cpp:106
#4  0x00000031a747875e in QThreadPrivate::start(void*) () from /usr/lib64/qt4/libQtCore.so.4
#5  0x00000031a3406d5c in start_thread () from /lib/libpthread.so.0
#6  0x00000031a2cd15ed in clone () from /lib/libc.so.6

Thread 1 (Thread 0x7f63594a8760 (LWP 12199)):
[KCrash Handler]
#6  0x000000000053f769 in K3b::JobProgressDialog::slotUpdateTime (this=0x1bf6820) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/src/k3bjobprogressdialog.cpp:545
#7  0x000000000053ffec in K3b::JobProgressDialog::qt_metacall (this=0x1bf6820, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa5258900) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999_build/src/k3bjobprogressdialog.moc:107
#8  0x00000000005416e0 in K3b::BurnProgressDialog::qt_metacall (this=0x1bf6820, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa5258900) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999_build/src/k3bburnprogressdialog.moc:73
#9  0x00000031a7574c97 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#10 0x00000031a75744c9 in QObject::event(QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#11 0x0000003ba07c7824 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#12 0x0000003ba07cc2fa in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#13 0x0000003829c3f052 in KApplication::notify (this=0x7fffa525cc40, receiver=0x1f9ddf0, event=0x7fffa5259060) at /var/tmp/portage/kde-base/kdelibs-4.5.90/work/kdelibs-4.5.90/kdeui/kernel/kapplication.cpp:311
#14 0x00000031a756060b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#15 0x00000031a758dd4e in QTimerInfoList::activateTimers() () from /usr/lib64/qt4/libQtCore.so.4
#16 0x00000031a758ade8 in idleTimerSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtCore.so.4
#17 0x00000031a4c44272 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#18 0x00000031a4c44a50 in g_main_context_iterate.clone.5 () from /usr/lib/libglib-2.0.so.0
#19 0x00000031a4c44ced in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#20 0x00000031a758b4af in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#21 0x0000003ba086c23e in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#22 0x00000031a755f9b2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#23 0x00000031a755fbf4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#24 0x0000003ba0c5f87e in QDialog::exec() () from /usr/lib64/qt4/libQtGui.so.4
#25 0x0000000000540ad0 in K3b::JobProgressDialog::startJob (this=0x1bf6820, job=0x1f7a600) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/src/k3bjobprogressdialog.cpp:631
#26 0x00000000004b8a28 in K3b::ProjectBurnDialog::slotStartClicked (this=0x1ea83a0) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/src/projects/k3bprojectburndialog.cpp:234
#27 0x000000000054807b in K3b::InteractionDialog::slotStartClickedInternal (this=0x1ea83a0) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/src/k3binteractiondialog.cpp:312
#28 0x0000000000549c27 in K3b::InteractionDialog::qt_metacall (this=0x1ea83a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa5259bd0) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999_build/src/k3binteractiondialog.moc:161
#29 0x00000000004b91f0 in K3b::ProjectBurnDialog::qt_metacall (this=0x1ea83a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa5259bd0) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999_build/src/k3bprojectburndialog.moc:79
#30 0x0000000000468750 in K3b::AudioBurnDialog::qt_metacall (this=0x1ea83a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa5259bd0) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999_build/src/k3baudioburndialog.moc:71
#31 0x00000031a7574c97 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#32 0x0000003ba0e163b2 in QAbstractButton::clicked(bool) () from /usr/lib64/qt4/libQtGui.so.4
#33 0x0000003ba0b6000b in QAbstractButtonPrivate::emitClicked() () from /usr/lib64/qt4/libQtGui.so.4
#34 0x0000003ba0b615db in QAbstractButtonPrivate::click() () from /usr/lib64/qt4/libQtGui.so.4
#35 0x0000003ba0b6184c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#36 0x0000003ba0818d7f in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#37 0x0000003ba07c7824 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#38 0x0000003ba07ccd60 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#39 0x0000003829c3f052 in KApplication::notify (this=0x7fffa525cc40, receiver=0x25f4de0, event=0x7fffa525a6f0) at /var/tmp/portage/kde-base/kdelibs-4.5.90/work/kdelibs-4.5.90/kdeui/kernel/kapplication.cpp:311
#40 0x00000031a756060b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#41 0x0000003ba07c8835 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/qt4/libQtGui.so.4
#42 0x0000003ba0846a08 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib64/qt4/libQtGui.so.4
#43 0x0000003ba08450d9 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#44 0x0000003ba086c592 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtGui.so.4
#45 0x00000031a4c44272 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#46 0x00000031a4c44a50 in g_main_context_iterate.clone.5 () from /usr/lib/libglib-2.0.so.0
#47 0x00000031a4c44ced in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#48 0x00000031a758b4af in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#49 0x0000003ba086c23e in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#50 0x00000031a755f9b2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#51 0x00000031a755fbf4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#52 0x0000003ba0c5f87e in QDialog::exec() () from /usr/lib64/qt4/libQtGui.so.4
#53 0x0000000000549764 in K3b::InteractionDialog::exec (this=0x1ea83a0) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/src/k3binteractiondialog.cpp:526
#54 0x00000000004b6a8a in K3b::View::slotBurn (this=<value optimized out>) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/src/projects/k3bview.cpp:97
#55 0x00000000004b7271 in K3b::View::qt_metacall (this=0x25a0950, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa525b5b0) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999_build/src/k3bview.moc:80
#56 0x0000000000474280 in K3b::AudioView::qt_metacall (this=0x25a0950, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa525b5b0) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999_build/src/k3baudioview.moc:69
#57 0x00000031a7574c97 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#58 0x0000003ba07c11c2 in QAction::triggered(bool) () from /usr/lib64/qt4/libQtGui.so.4
#59 0x0000003ba07c13ba in QAction::activate(QAction::ActionEvent) () from /usr/lib64/qt4/libQtGui.so.4
#60 0x0000003ba0b6159a in QAbstractButtonPrivate::click() () from /usr/lib64/qt4/libQtGui.so.4
#61 0x0000003ba0b6184c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#62 0x0000003ba0c1db0a in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#63 0x0000003ba0818d7f in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#64 0x0000003ba07c7824 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#65 0x0000003ba07ccd60 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#66 0x0000003829c3f052 in KApplication::notify (this=0x7fffa525cc40, receiver=0x260c670, event=0x7fffa525c0e0) at /var/tmp/portage/kde-base/kdelibs-4.5.90/work/kdelibs-4.5.90/kdeui/kernel/kapplication.cpp:311
#67 0x00000031a756060b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#68 0x0000003ba07c8835 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/qt4/libQtGui.so.4
#69 0x0000003ba0846a08 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib64/qt4/libQtGui.so.4
#70 0x0000003ba08450d9 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#71 0x0000003ba086c592 in x11EventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib64/qt4/libQtGui.so.4
#72 0x00000031a4c44272 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#73 0x00000031a4c44a50 in g_main_context_iterate.clone.5 () from /usr/lib/libglib-2.0.so.0
#74 0x00000031a4c44ced in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#75 0x00000031a758b4af in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#76 0x0000003ba086c23e in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#77 0x00000031a755f9b2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#78 0x00000031a755fbf4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#79 0x00000031a756407b in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#80 0x00000000005317ce in main (argc=1, argv=0x7fffa525d828) at /var/tmp/portage/app-cdr/k3b-9999/work/k3b-9999/src/main.cpp:150

Reported using DrKonqi
Comment 1 cedric 2010-12-28 15:56:35 UTC
Created attachment 55317 [details]
fix divide by 0 error.

The attached patch fixes the crash for me. It was a divide by 0 problem when updating progress.
Comment 2 Marian Kyral 2010-12-28 18:25:51 UTC
(In reply to comment #1)
> Created an attachment (id=55317) [details]
> fix divide by 0 error.
> 
> The attached patch fixes the crash for me. It was a divide by 0 problem when
> updating progress.

Thanks a lot,
problem is fixed now.
Comment 3 Nicolas L. 2011-01-04 00:35:34 UTC
fixed in git 

commit 784e32c9e84af7f6c8ff1fd0eb5abe63dff04982
Author: Jaime Torres <jtamate@gmail.com>
Date:   Tue Dec 28 18:19:56 2010 +0100

    Avoid a division by 0 when d->lastProgress=0