Summary: | k3b crashes while ripping to mp3, flac [QMetaCallEvent::placeMetaCall, K3bExternalEncoder::slotExternalProgramOutput] | ||
---|---|---|---|
Product: | [Applications] k3b | Reporter: | Marcel <wittemar> |
Component: | general | Assignee: | Sebastian Trueg <trueg> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | btunell, bugzilla.kde, cfarrell1980, exquisiteirony, fabian, fresh.road1272, grimble00060, JMett-Horka, juanfco.ruiz, kde_bugs, kevin.kofler, killerfox512, liquidsky89, matthiasweimar, michalm, rdieter, robert.graf |
Priority: | NOR | ||
Version: | 1.66.0 | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Proposed patch |
Description
Marcel
2009-06-27 01:40:41 UTC
*** Bug 198309 has been marked as a duplicate of this bug. *** *** Bug 198467 has been marked as a duplicate of this bug. *** *** Bug 198918 has been marked as a duplicate of this bug. *** *** Bug 200256 has been marked as a duplicate of this bug. *** *** Bug 201580 has been marked as a duplicate of this bug. *** *** Bug 203008 has been marked as a duplicate of this bug. *** Happens here as well, the problem seems to be with the OpenSuSE build. I was encoding to FLAC though Reported to OpenSuSE Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=535456 Why did you close this as invalid? The one I reported that's one of the duplicates is with Fedora. It's not just OpenSuSE. Bugzilla needs to have some way to get more information from the duplicate reports without having to click through each one. :/ yeah, the justification for such is missing, reopening. (feel free to revert when/if such information is provided). Even if the application ripps the disc successfully. It still hangs at the very end, getting stuck on 99% after attaching gdb, and interrupting on intervals, it seems to be stuck on K3bExternalEncoder::slotExternalProgramOutput() with the following backtrace: Thread 2 (Thread 0x7f36edf81950 (LWP 7896)): #0 0x00007f36fc034662 in select () from /lib64/libc.so.6 #1 0x00007f370500c1a6 in QProcessManager::run (this=0x80c980) at io/qprocess_unix.cpp:296 #2 0x00007f3704f43e65 in QThreadPrivate::start (arg=0x80c980) at thread/qthread_unix.cpp:188 #3 0x00007f3704cd0070 in start_thread () from /lib64/libpthread.so.0 #4 0x00007f36fc03b10d in clone () from /lib64/libc.so.6 #5 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f3705d0f750 (LWP 7895)): #0 QProcess::canReadLine (this=0x13a4960) at ../../src/corelib/tools/qringbuffer_p.h:215 #1 0x00007f36ee9ae718 in K3bExternalEncoder::slotExternalProgramOutput() () from /usr/lib64/kde4/k3bexternalencoder.so #2 0x00007f36ee9ae788 in K3bExternalEncoder::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/kde4/k3bexternalencoder.so #3 0x00007f370503d8a8 in QObject::event (this=0x9c4b40, e=0x997d60) at kernel/qobject.cpp:1111 #4 0x00007f36ff6deb0d in QApplicationPrivate::notify_helper (this=0x80d210, receiver=0x9c4b40, e=0x997d60) at kernel/qapplication.cpp:4056 #5 0x00007f36ff6e6d9a in QApplication::notify (this=0x7fffb5a83e60, receiver=0x9c4b40, e=0x997d60) at kernel/qapplication.cpp:4021 #6 0x00007f370445c71b in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5 #7 0x00007f370502d94c in QCoreApplication::notifyInternal (this=0x7fffb5a83e60, receiver=0x9c4b40, event=0x997d60) at kernel/qcoreapplication.cpp:610 #8 0x00007f370502e5ca in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x7df170) at kernel/qcoreapplication.h:213 #9 0x00007f37050570b3 in postEventSourceDispatch (s=<value optimized out>) at kernel/qcoreapplication.h:218 #10 0x00007f36fb8cf0fb in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #11 0x00007f36fb8d28cd in ?? () from /usr/lib64/libglib-2.0.so.0 #12 0x00007f36fb8d2a8b in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #13 0x00007f3705056d3f in QEventDispatcherGlib::processEvents (this=0x7dedd0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327 #14 0x00007f36ff775fef in QGuiEventDispatcherGlib::processEvents (this=0x12e95a0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202 #15 0x00007f370502c1d2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = -1247288288}) at kernel/qeventloop.cpp:149 #16 0x00007f370502c5a4 in QEventLoop::exec (this=0x7fffb5a7e460, flags={i = -1247288192}) at kernel/qeventloop.cpp:201 #17 0x00007f36ffb5875e in QDialog::exec (this=0x7fffb5a7e6a0) at dialogs/qdialog.cpp:498 #18 0x00000000005306ba in K3b::JobProgressDialog::startJob(K3b::Job*) () #19 0x00000000004e5af1 in K3b::AudioRippingDialog::slotStartClicked() () #20 0x000000000053ce75 in K3b::InteractionDialog::slotStartClickedInternal() () #21 0x000000000053d672 in K3b::InteractionDialog::qt_metacall(QMetaObject::Call, int, void**) () #22 0x00000000004e773d in K3b::AudioRippingDialog::qt_metacall(QMetaObject::Call, int, void**) () #23 0x00007f37050426e2 in QMetaObject::activate (sender=0x11ec6a0, from_signal_index=<value optimized out>, to_signal_index=30, argv=0x135) at kernel/qobject.cpp:3113 #24 0x00007f36ffce3287 in QAbstractButton::clicked (this=0x12e95a0, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:200 #25 0x00007f36ffa3d58b in QAbstractButtonPrivate::emitClicked (this=0x12013e0) at widgets/qabstractbutton.cpp:543 #26 0x00007f36ffa3f1b2 in QAbstractButtonPrivate::click (this=0x12013e0) at widgets/qabstractbutton.cpp:536 #27 0x00007f36ffa3f405 in QAbstractButton::mouseReleaseEvent (this=0x11ec6a0, e=0x7fffb5a7f580) at widgets/qabstractbutton.cpp:1115 #28 0x00007f36ff72faed in QWidget::event (this=0x11ec6a0, event=0x7fffb5a7f580) at kernel/qwidget.cpp:7549 #29 0x00007f36ff6deb0d in QApplicationPrivate::notify_helper (this=0x80d210, receiver=0x11ec6a0, e=0x7fffb5a7f580) at kernel/qapplication.cpp:4056 #30 0x00007f36ff6e74fa in QApplication::notify (this=<value optimized out>, receiver=0x11ec6a0, e=0x7fffb5a7f580) at kernel/qapplication.cpp:3758 #31 0x00007f370445c71b in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5 #32 0x00007f370502d94c in QCoreApplication::notifyInternal (this=0x7fffb5a83e60, receiver=0x11ec6a0, event=0x7fffb5a7f580) at kernel/qcoreapplication.cpp:610 #33 0x00007f36ff6e6748 in QApplicationPrivate::sendMouseEvent (receiver=0x11ec6a0, event=0x7fffb5a7f580, alienWidget=0x11ec6a0, nativeWidget=0x7fffb5a814a0, buttonDown=<value optimized out>, lastMouseReceiver=@0x7f37000f2f30) at ../../src/corelib/kernel/qcoreapplication.h:216 #34 0x00007f36ff750509 in QETWidget::translateMouseEvent (this=0x7fffb5a814a0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4407 #35 0x00007f36ff74f543 in QApplication::x11ProcessEvent (this=0x7fffb5a83e60, event=0x7fffb5a81100) at kernel/qapplication_x11.cpp:3548 #36 0x00007f36ff776864 in x11EventSourceDispatch (s=0x81acc0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #37 0x00007f36fb8cf0fb in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #38 0x00007f36fb8d28cd in ?? () from /usr/lib64/libglib-2.0.so.0 #39 0x00007f36fb8d2a8b in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #40 0x00007f3705056d3f in QEventDispatcherGlib::processEvents (this=0x7dedd0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327 #41 0x00007f36ff775fef in QGuiEventDispatcherGlib::processEvents (this=0x12e95a0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202 #42 0x00007f370502c1d2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = -1247276048}) at kernel/qeventloop.cpp:149 #43 0x00007f370502c5a4 in QEventLoop::exec (this=0x7fffb5a81430, flags={i = -1247275952}) at kernel/qeventloop.cpp:201 #44 0x00007f36ffb5875e in QDialog::exec (this=0x7fffb5a814a0) at dialogs/qdialog.cpp:498 #45 0x00000000004ec69e in K3b::AudioCdView::startRip() () #46 0x00000000004ec858 in K3b::AudioCdView::qt_metacall(QMetaObject::Call, int, void**) () #47 0x00007f37050426e2 in QMetaObject::activate (sender=0xa710a0, from_signal_index=<value optimized out>, to_signal_index=6, argv=0x135) at kernel/qobject.cpp:3113 #48 0x00007f36ff6d8af7 in QAction::triggered (this=0x12e95a0, _t1=false) at .moc/release-shared/moc_qaction.cpp:236 #49 0x00007f36ff6d9f70 in QAction::activate (this=0xa710a0, event=<value optimized out>) at kernel/qaction.cpp:1160 #50 0x00007f36ffa3f16a in QAbstractButtonPrivate::click (this=0xa76450) at widgets/qabstractbutton.cpp:525 #51 0x00007f36ffa3f405 in QAbstractButton::mouseReleaseEvent (this=0xa72de0, e=0x7fffb5a81f20) at widgets/qabstractbutton.cpp:1115 #52 0x00007f36ffb10e7a in QToolButton::mouseReleaseEvent (this=0x12e95a0, e=0x0) at widgets/qtoolbutton.cpp:709 #53 0x00007f36ff72faed in QWidget::event (this=0xa72de0, event=0x7fffb5a81f20) at kernel/qwidget.cpp:7549 #54 0x00007f36ff6deb0d in QApplicationPrivate::notify_helper (this=0x80d210, receiver=0xa72de0, e=0x7fffb5a81f20) at kernel/qapplication.cpp:4056 #55 0x00007f36ff6e74fa in QApplication::notify (this=<value optimized out>, receiver=0xa72de0, e=0x7fffb5a81f20) at kernel/qapplication.cpp:3758 #56 0x00007f370445c71b in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5 #57 0x00007f370502d94c in QCoreApplication::notifyInternal (this=0x7fffb5a83e60, receiver=0xa72de0, event=0x7fffb5a81f20) at kernel/qcoreapplication.cpp:610 #58 0x00007f36ff6e6748 in QApplicationPrivate::sendMouseEvent (receiver=0xa72de0, event=0x7fffb5a81f20, alienWidget=0xa72de0, nativeWidget=0x9aebf0, buttonDown=<value optimized out>, lastMouseReceiver=@0x7f37000f2f30) at ../../src/corelib/kernel/qcoreapplication.h:216 #59 0x00007f36ff750509 in QETWidget::translateMouseEvent (this=0x9aebf0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4407 #60 0x00007f36ff74f543 in QApplication::x11ProcessEvent (this=0x7fffb5a83e60, event=0x7fffb5a83aa0) at kernel/qapplication_x11.cpp:3548 #61 0x00007f36ff776864 in x11EventSourceDispatch (s=0x81acc0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #62 0x00007f36fb8cf0fb in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #63 0x00007f36fb8d28cd in ?? () from /usr/lib64/libglib-2.0.so.0 #64 0x00007f36fb8d2a8b in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #65 0x00007f3705056d3f in QEventDispatcherGlib::processEvents (this=0x7dedd0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327 #66 0x00007f36ff775fef in QGuiEventDispatcherGlib::processEvents (this=0x12e95a0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202 #67 0x00007f370502c1d2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = -1247265392}) at kernel/qeventloop.cpp:149 #68 0x00007f370502c5a4 in QEventLoop::exec (this=0x7fffb5a83dd0, flags={i = -1247265312}) at kernel/qeventloop.cpp:201 #69 0x00007f370502e894 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #70 0x0000000000527737 in main () *** Bug 206402 has been marked as a duplicate of this bug. *** I agree with FiNeX, it's the same bug as for FLAC (bug 198467). AFAICT, the fix is simple, there's an unsafe delete d->process; in K3bExternalEncoder::initExternalEncoder which can interfere with slot processing, changing that to if (d->process) d->process->deleteLater(); should fix this crash. Created attachment 37189 [details]
Proposed patch
Can anybody please test the attached patch?
*** Bug 208667 has been marked as a duplicate of this bug. *** *** Bug 209154 has been marked as a duplicate of this bug. *** *** Bug 210988 has been marked as a duplicate of this bug. *** @Kevin Kofler: I couldn't reproduce this issue but I agree, with your diagnose (and treatment, too). I will apply your patch. @anyone who experienced this crash: feel free to reopen this bug if this will happen again. SVN commit 1039678 by mmalek: Fixed crash caused by a slot called on a deleted process object. Patch by Kevin Kofler, thanks! BUG: 198015 M +4 -2 k3bexternalencoder.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1039678 *** Bug 198882 has been marked as a duplicate of this bug. *** *** Bug 214699 has been marked as a duplicate of this bug. *** *** Bug 225394 has been marked as a duplicate of this bug. *** |