Bug 216601 - Closing Ark while file preview window is still open causes crash [__libc_message, malloc_printerr, __libc_free]
Summary: Closing Ark while file preview window is still open causes crash [__libc_mess...
Status: RESOLVED FIXED
Alias: None
Product: ark
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Raphael Kubo da Costa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-29 04:43 UTC by Christoph Feck
Modified: 2009-12-29 03:30 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Feck 2009-11-29 04:43:19 UTC
Application: ark (2.14)
KDE Platform Version: 4.3.80 (KDE 4.3.80 (KDE 4.4 Beta1)) (Compiled from sources)
Qt Version: 4.6.0
Operating System: Linux 2.6.31.5-0.1-desktop i686

-- Information about the crash:
To reproduce:
* run Ark with an archive or open archive from within Ark
* click on a file to preview
* close Ark window, without closing previewer window before

The crash can be reproduced everytime.

 -- Backtrace:
Application: Ark (ark), signal: Aborted
[Current thread is 1 (Thread 0xb5184a80 (LWP 15388))]

Thread 2 (Thread 0xb387eb70 (LWP 15395)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb5ca7d95 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0xb1b6ad27 in WTF::TCMalloc_PageHeap::scavengerThread (this=0xb1c42180) at /local/git/Qt/qt/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304
#3  0xb1b6ad71 in WTF::TCMalloc_PageHeap::runScavengerThread (context=0xb1c42180) at /local/git/Qt/qt/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438
#4  0xb5ca36e5 in start_thread (arg=0x0) at pthread_create.c:297
#5  0xb5ca3600 in ?? () at pthread_create.c:216 from /lib/libpthread.so.0

Thread 1 (Thread 0xb5184a80 (LWP 15388)):
[KCrash Handler]
#6  0xffffe424 in __kernel_vsyscall ()
#7  0xb5a2b0cf in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#8  0xb5a2c9e7 in abort () at abort.c:88
#9  0xb5a674ed in __libc_message (do_abort=2, fmt=0xb5b2cc30 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:170
#10 0xb5a6d50b in malloc_printerr (action=<value optimized out>, str=0x6 <Address 0x6 out of bounds>, ptr=0xbfa78648) at malloc.c:6239
#11 0xb5a72049 in __libc_free (mem=0x6) at malloc.c:3699
#12 0xb5c64f4f in operator delete(void*) () from /usr/lib/libstdc++.so.6
#13 0xb3b4690a in ArkViewer::~ArkViewer (this=0xbfa78648, __in_chrg=<value optimized out>) at /local/svn/kde/trunk/KDE/kdeutils/ark/part/arkviewer.cpp:83
#14 0xb5e4272f in QObjectPrivate::deleteChildren (this=0x81bd370) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:1990
#15 0xb60e2d57 in QWidget::~QWidget (this=0x81bbdb8, __in_chrg=<value optimized out>) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:1459
#16 0xb64afcc1 in QFrame::~QFrame (this=0x81bbdb8, __in_chrg=<value optimized out>) at /local/git/Qt/qt/src/gui/widgets/qframe.cpp:242
#17 0xb6519a03 in QSplitter::~QSplitter (this=0x81bbdb8, __in_chrg=<value optimized out>) at /local/git/Qt/qt/src/gui/widgets/qsplitter.cpp:1029
#18 0xb75c866a in KParts::Part::~Part (this=0x8161eb0, __vtt_parm=0xb3b6022c, __in_chrg=<value optimized out>) at /local/svn/kde/trunk/KDE/kdelibs/kparts/part.cpp:208
#19 0xb75c9663 in KParts::ReadOnlyPart::~ReadOnlyPart (this=0x8161eb0, __vtt_parm=0xb3b60228, __in_chrg=<value optimized out>) at /local/svn/kde/trunk/KDE/kdelibs/kparts/part.cpp:459
#20 0xb75ca85c in KParts::ReadWritePart::~ReadWritePart (this=0x8161eb0, __vtt_parm=0xb3b60224, __in_chrg=<value optimized out>) at /local/svn/kde/trunk/KDE/kdelibs/kparts/part.cpp:721
#21 0xb3b39857 in Ark::Part::~Part (this=0x8161eb0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /local/svn/kde/trunk/KDE/kdeutils/ark/part/part.cpp:132
#22 0x08051a72 in MainWindow::~MainWindow (this=0x8125b60, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /local/svn/kde/trunk/KDE/kdeutils/ark/app/mainwindow.cpp:74
#23 0xb5e42325 in qDeleteInEventHandler (o=0x0) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:4013
#24 0xb5e43958 in QObject::event (this=0x8125b60, e=0x6) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:1235
#25 0xb60dad56 in QWidget::event (this=0x8125b60, event=0x871b018) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:8431
#26 0xb64cde97 in QMainWindow::event (this=0x8125b60, event=0x871b018) at /local/git/Qt/qt/src/gui/widgets/qmainwindow.cpp:1434
#27 0xb7158213 in KMainWindow::event (this=0x8125b60, ev=0x871b018) at /local/svn/kde/trunk/KDE/kdelibs/kdeui/widgets/kmainwindow.cpp:1103
#28 0xb719b0cf in KXmlGuiWindow::event (this=0x8125b60, ev=0x871b018) at /local/svn/kde/trunk/KDE/kdelibs/kdeui/xmlgui/kxmlguiwindow.cpp:131
#29 0xb607d1bc in QApplicationPrivate::notify_helper (this=0x8076370, receiver=0x8125b60, e=0x871b018) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4253
#30 0xb6083ea7 in QApplication::notify (this=0xbfa78f64, receiver=0x8125b60, e=0x871b018) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4218
#31 0xb70628fc in KApplication::notify (this=0xbfa78f64, receiver=0x8125b60, event=0x871b018) at /local/svn/kde/trunk/KDE/kdelibs/kdeui/kernel/kapplication.cpp:302
#32 0xb5e3312b in QCoreApplication::notifyInternal (this=0xbfa78f64, receiver=0x8125b60, event=0x871b018) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:704
#33 0xb5e35b03 in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/kernel/qcoreapplication.h:215
#34 QCoreApplicationPrivate::sendPostedEvents (event=<value optimized out>, receiver=<value optimized out>) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1345
#35 0xb5e35c6d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1238
#36 0xb5e5f19f in sendPostedEvents () at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/kernel/qcoreapplication.h:220
#37 postEventSourceDispatch () at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:276
#38 0xb54fa4c2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#39 0xb54fdd98 in ?? () from /usr/lib/libglib-2.0.so.0
#40 0xb54fdebe in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#41 0xb5e5ec95 in QEventDispatcherGlib::processEvents (this=0x8076330, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:407
#42 0xb61390d5 in QGuiEventDispatcherGlib::processEvents (this=0x8076330, flags=...) at /local/git/Qt/qt/src/gui/kernel/qguieventdispatcher_glib.cpp:202
#43 0xb5e31759 in QEventLoop::processEvents (this=0xbfa784e0, flags=) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:149
#44 0xb5e31baa in QEventLoop::exec (this=0xbfa784e0, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:201
#45 0xb6593a93 in QDialog::exec (this=0xbfa78648) at /local/git/Qt/qt/src/gui/dialogs/qdialog.cpp:530
#46 0xb3b473c6 in ArkViewer::viewInInternalViewer (this=0xbfa78648, filename=...) at /local/svn/kde/trunk/KDE/kdeutils/ark/part/arkviewer.cpp:175
#47 0xb3b46b64 in ArkViewer::view (filename=..., parent=0x81bbdb8) at /local/svn/kde/trunk/KDE/kdeutils/ark/part/arkviewer.cpp:110
#48 0xb3b3cec6 in Ark::Part::slotPreviewExtracted (this=0x8161eb0, job=0x820ee48) at /local/svn/kde/trunk/KDE/kdeutils/ark/part/part.cpp:502
#49 0xb3b38234 in Ark::Part::qt_metacall (this=0x8161eb0, _c=InvokeMetaMethod, _id=7, _a=0x81647c0) at /local/build/KDE/kdeutils/ark/part/moc_part.cpp:132
#50 0xb5e3833a in QMetaObject::metacall (object=0x8161eb0, cl=15388, idx=26, argv=0x81647c0) at /local/git/Qt/qt/src/corelib/kernel/qmetaobject.cpp:237
#51 0xb5e428d6 in QMetaCallEvent::placeMetaCall (this=0x81647e0, object=0x8161eb0) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:574
#52 0xb5e4392e in QObject::event (this=0x8161eb0, e=0x81647e0) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:1252
#53 0xb607d1bc in QApplicationPrivate::notify_helper (this=0x8076370, receiver=0x8161eb0, e=0x81647e0) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4253
#54 0xb6083de7 in QApplication::notify (this=0xbfa78f64, receiver=0x8161eb0, e=0x81647e0) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:3663
#55 0xb70628fc in KApplication::notify (this=0xbfa78f64, receiver=0x8161eb0, event=0x81647e0) at /local/svn/kde/trunk/KDE/kdelibs/kdeui/kernel/kapplication.cpp:302
#56 0xb5e3312b in QCoreApplication::notifyInternal (this=0xbfa78f64, receiver=0x8161eb0, event=0x81647e0) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:704
#57 0xb5e35b03 in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/kernel/qcoreapplication.h:215
#58 QCoreApplicationPrivate::sendPostedEvents (event=<value optimized out>, receiver=<value optimized out>) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1345
#59 0xb5e35c6d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1238
#60 0xb5e5f19f in sendPostedEvents () at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/kernel/qcoreapplication.h:220
#61 postEventSourceDispatch () at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:276
#62 0xb54fa4c2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#63 0xb54fdd98 in ?? () from /usr/lib/libglib-2.0.so.0
#64 0xb54fdebe in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#65 0xb5e5ec95 in QEventDispatcherGlib::processEvents (this=0x8076330, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:407
#66 0xb61390d5 in QGuiEventDispatcherGlib::processEvents (this=0x8076330, flags=...) at /local/git/Qt/qt/src/gui/kernel/qguieventdispatcher_glib.cpp:202
#67 0xb5e31759 in QEventLoop::processEvents (this=0xbfa78ee4, flags=) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:149
#68 0xb5e31baa in QEventLoop::exec (this=0xbfa78ee4, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:201
#69 0xb5e35d2f in QCoreApplication::exec () at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:981
#70 0xb607d257 in QApplication::exec () at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:3572
#71 0x08050e82 in main (argc=2, argv=0xbfa79364) at /local/svn/kde/trunk/KDE/kdeutils/ark/app/main.cpp:210

Possible duplicates by query: bug 208881, bug 203221, bug 191122, bug 203599, bug 201991.

Reported using DrKonqi
Comment 1 Dario Andres 2009-12-19 16:10:48 UTC
Isn't this related to the glibc bug ? (bug 196207). Is it reproducible after setting the MALLOC_CHECK_ env var to "" ?
Regards
Comment 2 Christoph Feck 2009-12-19 16:29:52 UTC
Calling free() on address 0x6 isn't a glibc bug :)

Backtrace with MALLOC_CHECK_ set to 0:

Application: Ark (ark), signal: Segmentation fault
[Current thread is 1 (Thread 0xb51b6a80 (LWP 21840))]

Thread 2 (Thread 0xb3234b70 (LWP 21864)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb5cd9d95 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0xb26e7db7 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0xb27bf1a0) at /local/git/Qt/qt/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304
#3  0xb26e7e01 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0xb27bf1a0) at /local/git/Qt/qt/src/3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438
#4  0xb5cd56e5 in start_thread (arg=0x0) at pthread_create.c:297
#5  0xb5cd5600 in ?? () at pthread_create.c:216 from /lib/libpthread.so.0

Thread 1 (Thread 0xb51b6a80 (LWP 21840)):
[KCrash Handler]
#6  0xb5e7a206 in QMetaObject::removeGuard (ptr=0xbf809450) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:458
#7  0xb3b79c81 in QPointer<KParts::ReadOnlyPart>::~QPointer (this=0xbf809450, __in_chrg=<value optimized out>) at /local/qt4/include/QtCore/qpointer.h:64
#8  0xb3b78887 in ArkViewer::~ArkViewer (this=0xbf809438, __in_chrg=<value optimized out>) at /local/svn/kde/trunk/KDE/kdeutils/ark/part/arkviewer.cpp:83
#9  0xb3b78b6f in ArkViewer::view (filename=..., parent=0x81b4e48) at /local/svn/kde/trunk/KDE/kdeutils/ark/part/arkviewer.cpp:110
#10 0xb3b6eec6 in Ark::Part::slotPreviewExtracted (this=0x810c660, job=0x822b378) at /local/svn/kde/trunk/KDE/kdeutils/ark/part/part.cpp:502
#11 0xb3b6a234 in Ark::Part::qt_metacall (this=0x810c660, _c=InvokeMetaMethod, _id=7, _a=0x822d5c8) at /local/build/KDE/kdeutils/ark/part/moc_part.cpp:132
#12 0xb5e6a69a in QMetaObject::metacall (object=0x810c660, cl=138759616, idx=26, argv=0x822d5c8) at /local/git/Qt/qt/src/corelib/kernel/qmetaobject.cpp:237
#13 0xb5e74bb6 in QMetaCallEvent::placeMetaCall (this=0x82e7830, object=0x810c660) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:561
#14 0xb5e75cde in QObject::event (this=0x810c660, e=0x82e7830) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:1239
#15 0xb60af1ac in QApplicationPrivate::notify_helper (this=0x8076040, receiver=0x810c660, e=0x82e7830) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4293
#16 0xb60b5deb in QApplication::notify (this=0xbf809d64, receiver=0x810c660, e=0x82e7830) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:3697
#17 0xb6f1e0f4 in KApplication::notify (this=0xbf809d64, receiver=0x810c660, event=0x82e7830) at /local/svn/kde/trunk/KDE/kdelibs/kdeui/kernel/kapplication.cpp:302
#18 0xb5e6548b in QCoreApplication::notifyInternal (this=0xbf809d64, receiver=0x810c660, event=0x82e7830) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:704
#19 0xb5e67e63 in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/kernel/qcoreapplication.h:215
#20 QCoreApplicationPrivate::sendPostedEvents (event=<value optimized out>, receiver=<value optimized out>) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1345
#21 0xb5e67fcd in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1238
#22 0xb5e9144f in sendPostedEvents () at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/kernel/qcoreapplication.h:220
#23 postEventSourceDispatch () at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:276
#24 0xb552c4c2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#25 0xb552fd98 in ?? () from /usr/lib/libglib-2.0.so.0
#26 0xb552febe in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#27 0xb5e90f45 in QEventDispatcherGlib::processEvents (this=0x8060318, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventdispatcher_glib.cpp:412
#28 0xb616b8f5 in QGuiEventDispatcherGlib::processEvents (this=0x8060318, flags=...) at /local/git/Qt/qt/src/gui/kernel/qguieventdispatcher_glib.cpp:204
#29 0xb5e63ab9 in QEventLoop::processEvents (this=0xbf809ce4, flags=) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:149
#30 0xb5e63f0a in QEventLoop::exec (this=0xbf809ce4, flags=...) at /local/git/Qt/qt/src/corelib/kernel/qeventloop.cpp:201
#31 0xb5e6808f in QCoreApplication::exec () at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:981
#32 0xb60af247 in QApplication::exec () at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:3572
#33 0x08050e82 in main (argc=1, argv=0xbf80a164) at /local/svn/kde/trunk/KDE/kdeutils/ark/app/main.cpp:210
Comment 3 Dario Andres 2009-12-19 16:36:14 UTC
Oops, didn't see that, sorry :)
Comment 4 Raphael Kubo da Costa 2009-12-29 03:26:43 UTC
SVN commit 1067160 by rkcosta:

Treat the preview dialog as a non-modal dialog.

There was no point in calling exec() here, just call show() and be
happy.

BUG: 216601

 M  +22 -11    arkviewer.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1067160
Comment 5 Raphael Kubo da Costa 2009-12-29 03:30:10 UTC
SVN commit 1067162 by rkcosta:

Backport r1067160.

Treat the preview dialog as a non-modal dialog.

There was no point in calling exec() here, just call show() and be
happy.

CCBUG: 216601


 M  +22 -11    arkviewer.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1067162