Version: (using KDE 4.0.98) Installed from: SuSE RPMs Compiler: gcc (SUSE Linux) 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] OS: Linux I cannot reproduce this, here's the backtrace: Application: Ark (ark), signal SIGABRT [?1034h[Thread debugging using libthread_db enabled] [New Thread 0xb65006d0 (LWP 5480)] [New Thread 0xb460cb90 (LWP 5481)] [KCrash handler] #6 0xffffe430 in __kernel_vsyscall () #7 0xb67e2900 in raise () from /lib/libc.so.6 #8 0xb67e4238 in abort () from /lib/libc.so.6 #9 0xb69ec728 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6 #10 0xb69ea055 in ?? () from /usr/lib/libstdc++.so.6 #11 0xb69ea092 in std::terminate () from /usr/lib/libstdc++.so.6 #12 0xb69eb2d5 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.6 #13 0xb4df37ef in Kerfuffle::ReadOnlyArchiveInterface::entry (this=0x8149d08, archiveEntry=@0xb460c1e8) at /usr/src/debug/kdeutils-4.0.85/ark/kerfuffle/archiveinterface.cpp:55 #14 0xb46741a3 in LibArchiveInterface::list (this=0x8149d08) at /usr/src/debug/kdeutils-4.0.85/ark/plugins/libarchive/libarchivehandler.cpp:90 #15 0xb4df4a7f in Kerfuffle::ArchiveJobHelper::getTheListing (this=0x80fca40) at /usr/src/debug/kdeutils-4.0.85/ark/kerfuffle/internaljobs.cpp:156 #16 0xb4df4ffc in Kerfuffle::InternalListingJob::run (this=0x80fae50) at /usr/src/debug/kdeutils-4.0.85/ark/kerfuffle/internaljobs.cpp:61 #17 0xb4d6e4ed in ThreadWeaver::JobRunHelper::runTheJob (this=0xb460c2d8, th=0x80ce7e0, job=0x80fae50) at /usr/src/debug/kdelibs-4.0.85/threadweaver/Weaver/Job.cpp:106 #18 0xb4d6e869 in ThreadWeaver::Job::execute (this=0x80fae50, th=0x80ce7e0) at /usr/src/debug/kdelibs-4.0.85/threadweaver/Weaver/Job.cpp:135 #19 0xb4d6d47a in ThreadWeaver::ThreadRunHelper::run (this=0xb460c340, parent=0x81caf70, th=0x80ce7e0) at /usr/src/debug/kdelibs-4.0.85/threadweaver/Weaver/Thread.cpp:95 #20 0xb4d6daeb in ThreadWeaver::Thread::run (this=0x80ce7e0) at /usr/src/debug/kdelibs-4.0.85/threadweaver/Weaver/Thread.cpp:142 #21 0xb75339b7 in QThreadPrivate::start (arg=0x80ce7e0) at thread/qthread_unix.cpp:190 #22 0xb74d7175 in start_thread () from /lib/libpthread.so.0 #23 0xb6885dce in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb65006d0 (LWP 5480)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb687eef1 in select () from /lib/libc.so.6 #2 0xb6532225 in _xcb_conn_wait (c=0x80630c0, cond=0xbffbd088, vector=0x0, count=0x0) at xcb_conn.c:338 #3 0xb6533bfa in xcb_wait_for_reply (c=0x80630c0, request=4461, e=0xbffbd0f8) at xcb_in.c:344 #4 0xb72195b1 in _XReply (dpy=0x8062b78, rep=0xbffbd120, extra=0, discard=1) at xcb_io.c:366 #5 0xb720c967 in XSync (dpy=0x8062b78, discard=1) at Sync.c:48 #6 0xb71ec43e in XCloseDisplay (dpy=0x8062b78) at ClDisplay.c:67 #7 0xb6bbf9b0 in qt_cleanup () at kernel/qapplication_x11.cpp:2323 #8 0xb6b678a8 in ~QApplication (this=0xbffbd2c4) at kernel/qapplication.cpp:1020 #9 0xb7bb71be in ~KApplication (this=0xbffbd2c4) at /usr/src/debug/kdelibs-4.0.85/kdeui/kernel/kapplication.cpp:945 #10 0x0804e371 in main (argc=4, argv=0xbffbd484) at /usr/src/debug/kdeutils-4.0.85/ark/app/main.cpp:107 #0 0xffffe430 in __kernel_vsyscall ()
I guess I can reproduce it, quite easily. KDE 4.1.4 from Fedora 10 (updates-testing at the moment) What I did to trigger a crash: 1) downloaded gcc source rpm package: yumdownloader --source gcc 2) installed it: rpm -ihv gcc-4.3.2-7.src.rpm 3) went to rpmbuild tree, directory SOURCES 4) executed ark gcc-4.3.2-20081105.tar.bz2 5) in ark window clicked a + sign to expand the directories in the tar.bz 6) closed ark, in the middle of expanding the dirs 7) watched the KDE crash handler window pop up 8) tried 'load symbols' 9) KDE crash handler window disappeared most of the time (crashed on its own?) Got following backtrace on one occasion (some debuginfo rpms were not installed at a time): Application: Ark (ark), signal SIGABRT [Current thread is 1 (Thread 0xb7ef7770 (LWP 11322))] Thread 2 (Thread 0xb6663b90 (LWP 11323)): [KCrash Handler] #6 0x00110416 in __kernel_vsyscall () #7 0x003a0460 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #8 0x003a1e28 in abort () at abort.c:88 #9 0x009e5c48 in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:98 #10 0x009e3b35 in __cxxabiv1::__terminate (handler=0x9e5af0 <__gnu_cxx::__verbose_terminate_handler()>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:43 #11 0x009e3b72 in std::terminate () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:53 #12 0x009e4805 in __cxa_pure_virtual () at ../../../../libstdc++-v3/libsupc++/pure.cc:55 #13 0x00190412 in Kerfuffle::ReadOnlyArchiveInterface::entry () from /usr/lib/libkerfuffle.so.4 #14 0x0033a313 in ?? () from /usr/lib/kde4/kerfuffle_libarchive.so #15 0x001916af in ?? () from /usr/lib/libkerfuffle.so.4 #16 0x00191c2c in ?? () from /usr/lib/libkerfuffle.so.4 #17 0x05deb464 in ?? () from /usr/lib/libthreadweaver.so.4 #18 0x05deb809 in ThreadWeaver::Job::execute () from /usr/lib/libthreadweaver.so.4 #19 0x05dea3da in ?? () from /usr/lib/libthreadweaver.so.4 #20 0x05deaa4b in ThreadWeaver::Thread::run () from /usr/lib/libthreadweaver.so.4 #21 0x04e6875e in ?? () from /usr/lib/libQtCore.so.4 #22 0x0052351f in start_thread (arg=0xb6663b90) at pthread_create.c:297 #23 0x0045904e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 1 (Thread 0xb7ef7770 (LWP 11322)): #0 0x00110416 in __kernel_vsyscall () #1 0x004513d1 in select () from /lib/libc.so.6 #2 0x00676295 in ?? () from /usr/lib/libxcb.so.1 #3 0x00677c82 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1 #4 0x006cfdb9 in _XReply (dpy=0x85ce760, rep=0xbf924900, extra=0, discard=1) at xcb_io.c:366 #5 0x006c3247 in XSync (dpy=0x85ce760, discard=0) at Sync.c:48 #6 0x05fceabd in ?? () from /usr/lib/libQtGui.so.4 #7 0x05f73666 in QApplication::~QApplication () from /usr/lib/libQtGui.so.4 #8 0x059b030e in KApplication::~KApplication () from /usr/lib/libkdeui.so.5 #9 0x0804ded9 in _start () tried the same procedure under valgrind, got the following log: $ valgrind ark gcc-4.3.2-20081105.tar.bz2 ==10768== Memcheck, a memory error detector. ==10768== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==10768== Using LibVEX rev 1804, a library for dynamic binary translation. ==10768== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==10768== Using valgrind-3.3.0, a dynamic binary instrumentation framework. ==10768== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==10768== For more details, rerun with: -v ==10768== ==10768== Invalid free() / delete / delete[] ==10768== at 0x40052EA: operator delete(void*, std::nothrow_t const&) (vg_replace_malloc.c:354) ==10768== by 0x97D058: std::__verify_grouping(char const*, unsigned, std::string const&) (locale_facets.cc:108) ==10768== by 0x97DF8C: std::locale::_Impl::_Impl(char const*, unsigned) (localename.cc:218) ==10768== by 0x5285EF: pthread_once (pthread_once.S:122) ==10768== by 0x97F137: std::locale::locale() (localename.cc:88) ==10768== by 0x97A11C: std::locale::_Impl::_Impl(std::locale::_Impl const&, unsigned) (locale.cc:251) ==10768== by 0x55691B4: Strigi::SubInputStream::reset(long long) (subinputstream.cpp:91) ==10768== by 0x556CB6C: (within /usr/lib/libstreams.so.0.5.11) ==10768== by 0x554C903: (within /usr/lib/libstreams.so.0.5.11) ==10768== by 0x3601EC: _dl_init (dl-init.c:70) ==10768== by 0x35088E: (within /lib/ld-2.9.so) ==10768== Address 0xa16188 is not stack'd, malloc'd or (recently) free'd ==10768== ==10768== Syscall param writev(vector[...]) points to uninitialised byte(s) ==10768== at 0x450E1C: writev (writev.c:46) ==10768== by 0x67635D: (within /usr/lib/libxcb.so.1.0.0) ==10768== by 0x67698D: (within /usr/lib/libxcb.so.1.0.0) ==10768== by 0x676AB8: (within /usr/lib/libxcb.so.1.0.0) ==10768== by 0x677BD5: xcb_wait_for_reply (in /usr/lib/libxcb.so.1.0.0) ==10768== by 0x6CFDB8: _XReply (xcb_io.c:366) ==10768== by 0x6ACCA2: XGetWindowProperty (GetProp.c:64) ==10768== by 0x6ABEC6: XGetWMHints (GetHints.c:118) ==10768== by 0x5FF2A86: QWidgetPrivate::setWindowIcon_sys(bool) (qdrawhelper_p.h:1511) ==10768== by 0x5FBF22A: QWidget::create(unsigned long, bool, bool) (qapplication_x11.cpp:983) ==10768== by 0x5FBB052: QWidgetPrivate::createWinId(unsigned long) (qapplication_x11.cpp:762) ==10768== by 0x5FBE4DA: QWidgetPrivate::setWindowTitle_helper(QString const&) (qstring.h:825) ==10768== Address 0x44d92a3 is 6,923 bytes inside a block of size 8,556 alloc'd ==10768== at 0x4004BA2: calloc (vg_replace_malloc.c:397) ==10768== by 0x676610: xcb_connect_to_fd (in /usr/lib/libxcb.so.1.0.0) ==10768== by 0x67918E: xcb_connect (in /usr/lib/libxcb.so.1.0.0) ==10768== by 0x6CF2AA: _XConnectXCB (xcb_disp.c:87) ==10768== by 0x6B69AE: XOpenDisplay (OpenDis.c:168) ==10768== by 0x5FDDDCF: QWidgetPrivate::setWSGeometry(bool) (qrect.h:319) ==10768== by 0x5F6DEB8: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qlist.h:516) ==10768== by 0x5F6EA7A: QDebug::operator<<(int) (qdebug.h:92) ==10768== by 0x59B2DDD: KApplication::KApplication(bool) (kstyle.cpp:1165) ==10768== by 0x804DE73: main (main.cpp:87) ==10768== ==10768== Syscall param writev(vector[...]) points to uninitialised byte(s) ==10768== at 0x450E98: writev (writev.c:46) ==10768== by 0x67635D: (within /usr/lib/libxcb.so.1.0.0) ==10768== by 0x67698D: (within /usr/lib/libxcb.so.1.0.0) ==10768== by 0x676AB8: (within /usr/lib/libxcb.so.1.0.0) ==10768== by 0x677BD5: xcb_wait_for_reply (in /usr/lib/libxcb.so.1.0.0) ==10768== by 0x6CFDB8: _XReply (xcb_io.c:366) ==10768== by 0x6ACCA2: XGetWindowProperty (GetProp.c:64) ==10768== by 0x6ABEC6: XGetWMHints (GetHints.c:118) ==10768== by 0x5FF2A86: QWidgetPrivate::setWindowIcon_sys(bool) (qdrawhelper_p.h:1511) ==10768== by 0x5FBF22A: QWidget::create(unsigned long, bool, bool) (qapplication_x11.cpp:983) ==10768== by 0x5FBB052: QWidgetPrivate::createWinId(unsigned long) (qapplication_x11.cpp:762) ==10768== by 0x5FBE4DA: QWidgetPrivate::setWindowTitle_helper(QString const&) (qstring.h:825) ==10768== Address 0x44d8bdf is 5,191 bytes inside a block of size 8,556 alloc'd ==10768== at 0x4004BA2: calloc (vg_replace_malloc.c:397) ==10768== by 0x676610: xcb_connect_to_fd (in /usr/lib/libxcb.so.1.0.0) ==10768== by 0x67918E: xcb_connect (in /usr/lib/libxcb.so.1.0.0) ==10768== by 0x6CF2AA: _XConnectXCB (xcb_disp.c:87) ==10768== by 0x6B69AE: XOpenDisplay (OpenDis.c:168) ==10768== by 0x5FDDDCF: QWidgetPrivate::setWSGeometry(bool) (qrect.h:319) ==10768== by 0x5F6DEB8: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qlist.h:516) ==10768== by 0x5F6EA7A: QDebug::operator<<(int) (qdebug.h:92) ==10768== by 0x59B2DDD: KApplication::KApplication(bool) (kstyle.cpp:1165) ==10768== by 0x804DE73: main (main.cpp:87) ==10768== ==10768== ERROR SUMMARY: 5 errors from 3 contexts (suppressed: 146 from 2) ==10768== malloc/free: in use at exit: 5,307,990 bytes in 8,123 blocks. ==10768== malloc/free: 137,872 allocs, 129,750 frees, 50,891,926 bytes allocated. ==10768== For counts of detected errors, rerun with: -v ==10768== searching for pointers to 8,123 not-freed blocks. ==10768== checked 16,991,924 bytes. ==10768== ==10768== LEAK SUMMARY: ==10768== definitely lost: 2,494 bytes in 195 blocks. ==10768== possibly lost: 1,593 bytes in 13 blocks. ==10768== still reachable: 5,303,903 bytes in 7,915 blocks. ==10768== suppressed: 0 bytes in 0 blocks. ==10768== Rerun with --leak-check=full to see details of leaked memory. [franekj@localhost SOURCES]$ valgrind ark gcc-4.3.2-20081105.tar.bz2 ==10810== Memcheck, a memory error detector. ==10810== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==10810== Using LibVEX rev 1804, a library for dynamic binary translation. ==10810== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==10810== Using valgrind-3.3.0, a dynamic binary instrumentation framework. ==10810== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==10810== For more details, rerun with: -v ==10810== ==10810== Invalid free() / delete / delete[] ==10810== at 0x40052EA: operator delete(void*, std::nothrow_t const&) (vg_replace_malloc.c:354) ==10810== by 0x97D058: std::__verify_grouping(char const*, unsigned, std::string const&) (locale_facets.cc:108) ==10810== by 0x97DF8C: std::locale::_Impl::_Impl(char const*, unsigned) (localename.cc:218) ==10810== by 0x5285EF: pthread_once (pthread_once.S:122) ==10810== by 0x97F137: std::locale::locale() (localename.cc:88) ==10810== by 0x97A11C: std::locale::_Impl::_Impl(std::locale::_Impl const&, unsigned) (locale.cc:251) ==10810== by 0x55691B4: Strigi::SubInputStream::reset(long long) (subinputstream.cpp:91) ==10810== by 0x556CB6C: (within /usr/lib/libstreams.so.0.5.11) ==10810== by 0x554C903: (within /usr/lib/libstreams.so.0.5.11) ==10810== by 0x3601EC: _dl_init (dl-init.c:70) ==10810== by 0x35088E: (within /lib/ld-2.9.so) ==10810== Address 0xa16188 is not stack'd, malloc'd or (recently) free'd ==10810== ==10810== Syscall param writev(vector[...]) points to uninitialised byte(s) ==10810== at 0x450E1C: writev (writev.c:46) ==10810== by 0x67635D: (within /usr/lib/libxcb.so.1.0.0) ==10810== by 0x67698D: (within /usr/lib/libxcb.so.1.0.0) ==10810== by 0x676AB8: (within /usr/lib/libxcb.so.1.0.0) ==10810== by 0x677BD5: xcb_wait_for_reply (in /usr/lib/libxcb.so.1.0.0) ==10810== by 0x6CFDB8: _XReply (xcb_io.c:366) ==10810== by 0x6ACCA2: XGetWindowProperty (GetProp.c:64) ==10810== by 0x6ABEC6: XGetWMHints (GetHints.c:118) ==10810== by 0x5FF2A86: QWidgetPrivate::setWindowIcon_sys(bool) (qdrawhelper_p.h:1511) ==10810== by 0x5FBF22A: QWidget::create(unsigned long, bool, bool) (qapplication_x11.cpp:983) ==10810== by 0x5FBB052: QWidgetPrivate::createWinId(unsigned long) (qapplication_x11.cpp:762) ==10810== by 0x5FBE4DA: QWidgetPrivate::setWindowTitle_helper(QString const&) (qstring.h:825) ==10810== Address 0x44d92a3 is 6,923 bytes inside a block of size 8,556 alloc'd ==10810== at 0x4004BA2: calloc (vg_replace_malloc.c:397) ==10810== by 0x676610: xcb_connect_to_fd (in /usr/lib/libxcb.so.1.0.0) ==10810== by 0x67918E: xcb_connect (in /usr/lib/libxcb.so.1.0.0) ==10810== by 0x6CF2AA: _XConnectXCB (xcb_disp.c:87) ==10810== by 0x6B69AE: XOpenDisplay (OpenDis.c:168) ==10810== by 0x5FDDDCF: QWidgetPrivate::setWSGeometry(bool) (qrect.h:319) ==10810== by 0x5F6DEB8: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qlist.h:516) ==10810== by 0x5F6EA7A: QDebug::operator<<(int) (qdebug.h:92) ==10810== by 0x59B2DDD: KApplication::KApplication(bool) (kstyle.cpp:1165) ==10810== by 0x804DE73: main (main.cpp:87) ==10810== ==10810== Syscall param writev(vector[...]) points to uninitialised byte(s) ==10810== at 0x450E98: writev (writev.c:46) ==10810== by 0x67635D: (within /usr/lib/libxcb.so.1.0.0) ==10810== by 0x67698D: (within /usr/lib/libxcb.so.1.0.0) ==10810== by 0x676AB8: (within /usr/lib/libxcb.so.1.0.0) ==10810== by 0x677BD5: xcb_wait_for_reply (in /usr/lib/libxcb.so.1.0.0) ==10810== by 0x6CFDB8: _XReply (xcb_io.c:366) ==10810== by 0x6ACCA2: XGetWindowProperty (GetProp.c:64) ==10810== by 0x6ABEC6: XGetWMHints (GetHints.c:118) ==10810== by 0x5FF2A86: QWidgetPrivate::setWindowIcon_sys(bool) (qdrawhelper_p.h:1511) ==10810== by 0x5FBF22A: QWidget::create(unsigned long, bool, bool) (qapplication_x11.cpp:983) ==10810== by 0x5FBB052: QWidgetPrivate::createWinId(unsigned long) (qapplication_x11.cpp:762) ==10810== by 0x5FBE4DA: QWidgetPrivate::setWindowTitle_helper(QString const&) (qstring.h:825) ==10810== Address 0x44d8bdf is 5,191 bytes inside a block of size 8,556 alloc'd ==10810== at 0x4004BA2: calloc (vg_replace_malloc.c:397) ==10810== by 0x676610: xcb_connect_to_fd (in /usr/lib/libxcb.so.1.0.0) ==10810== by 0x67918E: xcb_connect (in /usr/lib/libxcb.so.1.0.0) ==10810== by 0x6CF2AA: _XConnectXCB (xcb_disp.c:87) ==10810== by 0x6B69AE: XOpenDisplay (OpenDis.c:168) ==10810== by 0x5FDDDCF: QWidgetPrivate::setWSGeometry(bool) (qrect.h:319) ==10810== by 0x5F6DEB8: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qlist.h:516) ==10810== by 0x5F6EA7A: QDebug::operator<<(int) (qdebug.h:92) ==10810== by 0x59B2DDD: KApplication::KApplication(bool) (kstyle.cpp:1165) ==10810== by 0x804DE73: main (main.cpp:87) ==10810== ==10810== Thread 2: ==10810== Invalid read of size 4 ==10810== at 0x4E19324: LibArchiveInterface::list() (libarchivehandler.cpp:99) ==10810== by 0x4CE46AE: Kerfuffle::ArchiveJobHelper::getTheListing() (internaljobs.cpp:156) ==10810== by 0x4CE4C2B: Kerfuffle::InternalListingJob::run() (internaljobs.cpp:61) ==10810== by 0x5DEB463: ThreadWeaver::Job::~Job() (Job.cpp:82) ==10810== by 0x5DEB808: _GLOBAL__I_State.cpp (qstring.h:385) ==10810== by 0x5DEA3D9: ThreadWeaver::Thread::Thread(ThreadWeaver::WeaverImpl*) (qmutex.h:107) ==10810== by 0x5DEAA4A: ThreadWeaver::JobRunHelper::qt_metacall(QMetaObject::Call, int, void**) (Job_p.moc:72) ==10810== by 0x4E6875D: QByteArray::toULong(bool*, int) const (qbytearray.cpp:3117) ==10810== by 0x52351E: start_thread (pthread_create.c:297) ==10810== by 0x45904D: clone (clone.S:130) ==10810== Address 0x715a010 is 16 bytes inside a block of size 20 free'd ==10810== at 0x40054AA: operator delete(void*) (vg_replace_malloc.c:342) ==10810== by 0x4E17FA1: LibArchiveInterface::~LibArchiveInterface() (libarchivehandler.cpp:51) ==10810== by 0x4CE7369: Kerfuffle::ArchiveBase::~ArchiveBase() (archivebase.cpp:51) ==10810== by 0x4C0A21F: ArchiveModel::~ArchiveModel() (archivemodel.cpp:165) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x293924: KParts::ReadOnlyPart::ReadOnlyPart(QObject*) (qstring.h:824) ==10810== by 0x294FA9: KParts::ReadOnlyPart::~ReadOnlyPart() (part.cpp:590) ==10810== by 0x29510E: KParts::ReadWritePart::~ReadWritePart() (qstring.h:975) ==10810== by 0x4C01EDE: Part::~Part() (part.cpp:88) ==10810== by 0x804E5E6: MainWindow::~MainWindow() (mainwindow.cpp:66) ==10810== by 0x4F6717B: qDeleteInEventHandler(QObject*) (qobject.cpp:83) ==10810== ==10810== Invalid read of size 4 ==10810== at 0x4CE33C1: Kerfuffle::ReadOnlyArchiveInterface::entry(QHash<int, QVariant> const&) (qlist.h:107) ==10810== by 0x4E19312: LibArchiveInterface::list() (libarchivehandler.cpp:97) ==10810== by 0x4CE46AE: Kerfuffle::ArchiveJobHelper::getTheListing() (internaljobs.cpp:156) ==10810== by 0x4CE4C2B: Kerfuffle::InternalListingJob::run() (internaljobs.cpp:61) ==10810== by 0x5DEB463: ThreadWeaver::Job::~Job() (Job.cpp:82) ==10810== by 0x5DEB808: _GLOBAL__I_State.cpp (qstring.h:385) ==10810== by 0x5DEA3D9: ThreadWeaver::Thread::Thread(ThreadWeaver::WeaverImpl*) (qmutex.h:107) ==10810== by 0x5DEAA4A: ThreadWeaver::JobRunHelper::qt_metacall(QMetaObject::Call, int, void**) (Job_p.moc:72) ==10810== by 0x4E6875D: QByteArray::toULong(bool*, int) const (qbytearray.cpp:3117) ==10810== by 0x52351E: start_thread (pthread_create.c:297) ==10810== by 0x45904D: clone (clone.S:130) ==10810== Address 0x715a008 is 8 bytes inside a block of size 20 free'd ==10810== at 0x40054AA: operator delete(void*) (vg_replace_malloc.c:342) ==10810== by 0x4E17FA1: LibArchiveInterface::~LibArchiveInterface() (libarchivehandler.cpp:51) ==10810== by 0x4CE7369: Kerfuffle::ArchiveBase::~ArchiveBase() (archivebase.cpp:51) ==10810== by 0x4C0A21F: ArchiveModel::~ArchiveModel() (archivemodel.cpp:165) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x293924: KParts::ReadOnlyPart::ReadOnlyPart(QObject*) (qstring.h:824) ==10810== by 0x294FA9: KParts::ReadOnlyPart::~ReadOnlyPart() (part.cpp:590) ==10810== by 0x29510E: KParts::ReadWritePart::~ReadWritePart() (qstring.h:975) ==10810== by 0x4C01EDE: Part::~Part() (part.cpp:88) ==10810== by 0x804E5E6: MainWindow::~MainWindow() (mainwindow.cpp:66) ==10810== by 0x4F6717B: qDeleteInEventHandler(QObject*) (qobject.cpp:83) ==10810== ==10810== Invalid read of size 4 ==10810== at 0x4CE33C7: Kerfuffle::ReadOnlyArchiveInterface::entry(QHash<int, QVariant> const&) (qatomic_i386.h:116) ==10810== by 0x4E19312: LibArchiveInterface::list() (libarchivehandler.cpp:97) ==10810== by 0x4CE46AE: Kerfuffle::ArchiveJobHelper::getTheListing() (internaljobs.cpp:156) ==10810== by 0x4CE4C2B: Kerfuffle::InternalListingJob::run() (internaljobs.cpp:61) ==10810== by 0x5DEB463: ThreadWeaver::Job::~Job() (Job.cpp:82) ==10810== by 0x5DEB808: _GLOBAL__I_State.cpp (qstring.h:385) ==10810== by 0x5DEA3D9: ThreadWeaver::Thread::Thread(ThreadWeaver::WeaverImpl*) (qmutex.h:107) ==10810== by 0x5DEAA4A: ThreadWeaver::JobRunHelper::qt_metacall(QMetaObject::Call, int, void**) (Job_p.moc:72) ==10810== by 0x4E6875D: QByteArray::toULong(bool*, int) const (qbytearray.cpp:3117) ==10810== by 0x52351E: start_thread (pthread_create.c:297) ==10810== by 0x45904D: clone (clone.S:130) ==10810== Address 0x6c6b238 is 0 bytes inside a block of size 32 free'd ==10810== at 0x400590A: free (vg_replace_malloc.c:323) ==10810== by 0x4E62FEC: qFree(void*) (qthread_p.h:102) ==10810== by 0x4CE39EF: QList<Kerfuffle::ArchiveObserver*>::~QList() (qlist.h:554) ==10810== by 0x4CE358C: Kerfuffle::ReadOnlyArchiveInterface::~ReadOnlyArchiveInterface() (archiveinterface.cpp:41) ==10810== by 0x4E17F99: LibArchiveInterface::~LibArchiveInterface() (libarchivehandler.cpp:51) ==10810== by 0x4CE7369: Kerfuffle::ArchiveBase::~ArchiveBase() (archivebase.cpp:51) ==10810== by 0x4C0A21F: ArchiveModel::~ArchiveModel() (archivemodel.cpp:165) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x293924: KParts::ReadOnlyPart::ReadOnlyPart(QObject*) (qstring.h:824) ==10810== by 0x294FA9: KParts::ReadOnlyPart::~ReadOnlyPart() (part.cpp:590) ==10810== by 0x29510E: KParts::ReadWritePart::~ReadWritePart() (qstring.h:975) ==10810== ==10810== Invalid read of size 1 ==10810== at 0x4CE33D0: Kerfuffle::ReadOnlyArchiveInterface::entry(QHash<int, QVariant> const&) (qlist.h:107) ==10810== by 0x4E19312: LibArchiveInterface::list() (libarchivehandler.cpp:97) ==10810== by 0x4CE46AE: Kerfuffle::ArchiveJobHelper::getTheListing() (internaljobs.cpp:156) ==10810== by 0x4CE4C2B: Kerfuffle::InternalListingJob::run() (internaljobs.cpp:61) ==10810== by 0x5DEB463: ThreadWeaver::Job::~Job() (Job.cpp:82) ==10810== by 0x5DEB808: _GLOBAL__I_State.cpp (qstring.h:385) ==10810== by 0x5DEA3D9: ThreadWeaver::Thread::Thread(ThreadWeaver::WeaverImpl*) (qmutex.h:107) ==10810== by 0x5DEAA4A: ThreadWeaver::JobRunHelper::qt_metacall(QMetaObject::Call, int, void**) (Job_p.moc:72) ==10810== by 0x4E6875D: QByteArray::toULong(bool*, int) const (qbytearray.cpp:3117) ==10810== by 0x52351E: start_thread (pthread_create.c:297) ==10810== by 0x45904D: clone (clone.S:130) ==10810== Address 0x6c6b248 is 16 bytes inside a block of size 32 free'd ==10810== at 0x400590A: free (vg_replace_malloc.c:323) ==10810== by 0x4E62FEC: qFree(void*) (qthread_p.h:102) ==10810== by 0x4CE39EF: QList<Kerfuffle::ArchiveObserver*>::~QList() (qlist.h:554) ==10810== by 0x4CE358C: Kerfuffle::ReadOnlyArchiveInterface::~ReadOnlyArchiveInterface() (archiveinterface.cpp:41) ==10810== by 0x4E17F99: LibArchiveInterface::~LibArchiveInterface() (libarchivehandler.cpp:51) ==10810== by 0x4CE7369: Kerfuffle::ArchiveBase::~ArchiveBase() (archivebase.cpp:51) ==10810== by 0x4C0A21F: ArchiveModel::~ArchiveModel() (archivemodel.cpp:165) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x293924: KParts::ReadOnlyPart::ReadOnlyPart(QObject*) (qstring.h:824) ==10810== by 0x294FA9: KParts::ReadOnlyPart::~ReadOnlyPart() (part.cpp:590) ==10810== by 0x29510E: KParts::ReadWritePart::~ReadWritePart() (qstring.h:975) ==10810== ==10810== Invalid read of size 4 ==10810== at 0x4CE33E8: Kerfuffle::ReadOnlyArchiveInterface::entry(QHash<int, QVariant> const&) (qlist.h:203) ==10810== by 0x4E19312: LibArchiveInterface::list() (libarchivehandler.cpp:97) ==10810== by 0x4CE46AE: Kerfuffle::ArchiveJobHelper::getTheListing() (internaljobs.cpp:156) ==10810== by 0x4CE4C2B: Kerfuffle::InternalListingJob::run() (internaljobs.cpp:61) ==10810== by 0x5DEB463: ThreadWeaver::Job::~Job() (Job.cpp:82) ==10810== by 0x5DEB808: _GLOBAL__I_State.cpp (qstring.h:385) ==10810== by 0x5DEA3D9: ThreadWeaver::Thread::Thread(ThreadWeaver::WeaverImpl*) (qmutex.h:107) ==10810== by 0x5DEAA4A: ThreadWeaver::JobRunHelper::qt_metacall(QMetaObject::Call, int, void**) (Job_p.moc:72) ==10810== by 0x4E6875D: QByteArray::toULong(bool*, int) const (qbytearray.cpp:3117) ==10810== by 0x52351E: start_thread (pthread_create.c:297) ==10810== by 0x45904D: clone (clone.S:130) ==10810== Address 0x6c6b240 is 8 bytes inside a block of size 32 free'd ==10810== at 0x400590A: free (vg_replace_malloc.c:323) ==10810== by 0x4E62FEC: qFree(void*) (qthread_p.h:102) ==10810== by 0x4CE39EF: QList<Kerfuffle::ArchiveObserver*>::~QList() (qlist.h:554) ==10810== by 0x4CE358C: Kerfuffle::ReadOnlyArchiveInterface::~ReadOnlyArchiveInterface() (archiveinterface.cpp:41) ==10810== by 0x4E17F99: LibArchiveInterface::~LibArchiveInterface() (libarchivehandler.cpp:51) ==10810== by 0x4CE7369: Kerfuffle::ArchiveBase::~ArchiveBase() (archivebase.cpp:51) ==10810== by 0x4C0A21F: ArchiveModel::~ArchiveModel() (archivemodel.cpp:165) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x293924: KParts::ReadOnlyPart::ReadOnlyPart(QObject*) (qstring.h:824) ==10810== by 0x294FA9: KParts::ReadOnlyPart::~ReadOnlyPart() (part.cpp:590) ==10810== by 0x29510E: KParts::ReadWritePart::~ReadWritePart() (qstring.h:975) ==10810== ==10810== Invalid read of size 4 ==10810== at 0x4CE33F2: Kerfuffle::ReadOnlyArchiveInterface::entry(QHash<int, QVariant> const&) (qlist.h:203) ==10810== by 0x4E19312: LibArchiveInterface::list() (libarchivehandler.cpp:97) ==10810== by 0x4CE46AE: Kerfuffle::ArchiveJobHelper::getTheListing() (internaljobs.cpp:156) ==10810== by 0x4CE4C2B: Kerfuffle::InternalListingJob::run() (internaljobs.cpp:61) ==10810== by 0x5DEB463: ThreadWeaver::Job::~Job() (Job.cpp:82) ==10810== by 0x5DEB808: _GLOBAL__I_State.cpp (qstring.h:385) ==10810== by 0x5DEA3D9: ThreadWeaver::Thread::Thread(ThreadWeaver::WeaverImpl*) (qmutex.h:107) ==10810== by 0x5DEAA4A: ThreadWeaver::JobRunHelper::qt_metacall(QMetaObject::Call, int, void**) (Job_p.moc:72) ==10810== by 0x4E6875D: QByteArray::toULong(bool*, int) const (qbytearray.cpp:3117) ==10810== by 0x52351E: start_thread (pthread_create.c:297) ==10810== by 0x45904D: clone (clone.S:130) ==10810== Address 0x6c6b244 is 12 bytes inside a block of size 32 free'd ==10810== at 0x400590A: free (vg_replace_malloc.c:323) ==10810== by 0x4E62FEC: qFree(void*) (qthread_p.h:102) ==10810== by 0x4CE39EF: QList<Kerfuffle::ArchiveObserver*>::~QList() (qlist.h:554) ==10810== by 0x4CE358C: Kerfuffle::ReadOnlyArchiveInterface::~ReadOnlyArchiveInterface() (archiveinterface.cpp:41) ==10810== by 0x4E17F99: LibArchiveInterface::~LibArchiveInterface() (libarchivehandler.cpp:51) ==10810== by 0x4CE7369: Kerfuffle::ArchiveBase::~ArchiveBase() (archivebase.cpp:51) ==10810== by 0x4C0A21F: ArchiveModel::~ArchiveModel() (archivemodel.cpp:165) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x293924: KParts::ReadOnlyPart::ReadOnlyPart(QObject*) (qstring.h:824) ==10810== by 0x294FA9: KParts::ReadOnlyPart::~ReadOnlyPart() (part.cpp:590) ==10810== by 0x29510E: KParts::ReadWritePart::~ReadWritePart() (qstring.h:975) ==10810== ==10810== Invalid read of size 4 ==10810== at 0x4CE3404: Kerfuffle::ReadOnlyArchiveInterface::entry(QHash<int, QVariant> const&) (archiveinterface.cpp:53) ==10810== by 0x4E19312: LibArchiveInterface::list() (libarchivehandler.cpp:97) ==10810== by 0x4CE46AE: Kerfuffle::ArchiveJobHelper::getTheListing() (internaljobs.cpp:156) ==10810== by 0x4CE4C2B: Kerfuffle::InternalListingJob::run() (internaljobs.cpp:61) ==10810== by 0x5DEB463: ThreadWeaver::Job::~Job() (Job.cpp:82) ==10810== by 0x5DEB808: _GLOBAL__I_State.cpp (qstring.h:385) ==10810== by 0x5DEA3D9: ThreadWeaver::Thread::Thread(ThreadWeaver::WeaverImpl*) (qmutex.h:107) ==10810== by 0x5DEAA4A: ThreadWeaver::JobRunHelper::qt_metacall(QMetaObject::Call, int, void**) (Job_p.moc:72) ==10810== by 0x4E6875D: QByteArray::toULong(bool*, int) const (qbytearray.cpp:3117) ==10810== by 0x52351E: start_thread (pthread_create.c:297) ==10810== by 0x45904D: clone (clone.S:130) ==10810== Address 0x6c6b24c is 20 bytes inside a block of size 32 free'd ==10810== at 0x400590A: free (vg_replace_malloc.c:323) ==10810== by 0x4E62FEC: qFree(void*) (qthread_p.h:102) ==10810== by 0x4CE39EF: QList<Kerfuffle::ArchiveObserver*>::~QList() (qlist.h:554) ==10810== by 0x4CE358C: Kerfuffle::ReadOnlyArchiveInterface::~ReadOnlyArchiveInterface() (archiveinterface.cpp:41) ==10810== by 0x4E17F99: LibArchiveInterface::~LibArchiveInterface() (libarchivehandler.cpp:51) ==10810== by 0x4CE7369: Kerfuffle::ArchiveBase::~ArchiveBase() (archivebase.cpp:51) ==10810== by 0x4C0A21F: ArchiveModel::~ArchiveModel() (archivemodel.cpp:165) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x293924: KParts::ReadOnlyPart::ReadOnlyPart(QObject*) (qstring.h:824) ==10810== by 0x294FA9: KParts::ReadOnlyPart::~ReadOnlyPart() (part.cpp:590) ==10810== by 0x29510E: KParts::ReadWritePart::~ReadWritePart() (qstring.h:975) ==10810== ==10810== Invalid read of size 4 ==10810== at 0x4CE3406: Kerfuffle::ReadOnlyArchiveInterface::entry(QHash<int, QVariant> const&) (archiveinterface.cpp:55) ==10810== by 0x4E19312: LibArchiveInterface::list() (libarchivehandler.cpp:97) ==10810== by 0x4CE46AE: Kerfuffle::ArchiveJobHelper::getTheListing() (internaljobs.cpp:156) ==10810== by 0x4CE4C2B: Kerfuffle::InternalListingJob::run() (internaljobs.cpp:61) ==10810== by 0x5DEB463: ThreadWeaver::Job::~Job() (Job.cpp:82) ==10810== by 0x5DEB808: _GLOBAL__I_State.cpp (qstring.h:385) ==10810== by 0x5DEA3D9: ThreadWeaver::Thread::Thread(ThreadWeaver::WeaverImpl*) (qmutex.h:107) ==10810== by 0x5DEAA4A: ThreadWeaver::JobRunHelper::qt_metacall(QMetaObject::Call, int, void**) (Job_p.moc:72) ==10810== by 0x4E6875D: QByteArray::toULong(bool*, int) const (qbytearray.cpp:3117) ==10810== by 0x52351E: start_thread (pthread_create.c:297) ==10810== by 0x45904D: clone (clone.S:130) ==10810== Address 0x6c6a750 is 8 bytes inside a block of size 16 free'd ==10810== at 0x40054AA: operator delete(void*) (vg_replace_malloc.c:342) ==10810== by 0x4CE47AA: Kerfuffle::ArchiveJobHelper::~ArchiveJobHelper() (internaljobs.cpp:151) ==10810== by 0x4CE5030: Kerfuffle::InternalListingJob::~InternalListingJob() (internaljobs.cpp:48) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x5273660: KJob::~KJob() (qstring.h:742) ==10810== by 0x4CE165C: Kerfuffle::ListJob::~ListJob() (jobs.h:45) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) ==10810== by 0x4F6FFD2: QSignalMapper::map() (qsignalmapper.cpp:262) ==10810== by 0x4CE7384: Kerfuffle::ArchiveBase::~ArchiveBase() (archivebase.cpp:53) ==10810== by 0x4C0A21F: ArchiveModel::~ArchiveModel() (archivemodel.cpp:165) ==10810== by 0x4F6748E: QMetaObject::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:78) pure virtual method called terminate called without an active exception KCrash: Application 'ark' crashing... sock_file=/home/franekj/.kde/socket-localhost.localdomain/kdeinit4__0 ark: Fatal IO error: client killed ==10810== ==10810== ERROR SUMMARY: 14 errors from 11 contexts (suppressed: 145 from 2) ==10810== malloc/free: in use at exit: 6,220,168 bytes in 14,510 blocks. ==10810== malloc/free: 545,812 allocs, 531,303 frees, 79,971,765 bytes allocated. ==10810== For counts of detected errors, rerun with: -v ==10810== searching for pointers to 14,510 not-freed blocks. ==10810== checked 17,833,052 bytes. ==10810== ==10810== LEAK SUMMARY: ==10810== definitely lost: 2,320 bytes in 185 blocks. ==10810== possibly lost: 10,348 bytes in 441 blocks. ==10810== still reachable: 6,207,500 bytes in 13,884 blocks. ==10810== suppressed: 0 bytes in 0 blocks. ==10810== Rerun with --leak-check=full to see details of leaked memory.
*** Bug 183785 has been marked as a duplicate of this bug. ***
As stated in bug 183785, this also happens on KDE4.2.0
Can you please confirm if this bug is still valid with 4.2.3 or 4.3beta1/trunk?
The bug is still valid with .tar.gz files. Steps to reproduce: 1a) create a .tar.gz file of a large folder (e.g. photoalbum) 1b) create a .tar.gz file of a large folder with small files. 2) open it in ark 3) close ark before the file is fully loaded. One time I got a crash, the other time ark kept running after the window was closed. I couldn't reproduce this problem with .zip files so far, but that's worth testing as well.
I'm running 4.2.3 btw.
I'm marking this as a duplicate of a newer bug (193908) because the newer one has a more accurate backtrace. *** This bug has been marked as a duplicate of bug 193908 ***