Summary: | Ark creash on Kerfuffle::LoadJob::onFinished | ||
---|---|---|---|
Product: | [Applications] ark | Reporter: | Tony <jodr666> |
Component: | general | Assignee: | Elvis Angelaccio <elvis.angelaccio> |
Status: | CONFIRMED --- | ||
Severity: | crash | CC: | aacid, rthomsen6 |
Priority: | NOR | Keywords: | drkonqi |
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
valgrind log
video demostration |
Description
Tony
2021-02-24 18:24:30 UTC
Are you running an unreleased version of ark on purpose? Does running ark under valgrind crash/give you any output log? Can you please turn " Get xanmod kernel sources or the vanilla kernel sources. Pack/compress them in a zip file. Open the zip file with ark and while is loading close ark. " into a series of command lines so we don't have to guess what you did? (In reply to Albert Astals Cid from comment #1) > Are you running an unreleased version of ark on purpose? > > Does running ark under valgrind crash/give you any output log? > > Can you please turn > " > Get xanmod kernel sources or the vanilla kernel sources. > Pack/compress them in a zip file. > Open the zip file with ark and while is loading close ark. > " > into a series of command lines so we don't have to guess what you did? 1) mkdir test && cd test 2) Get the sources with : wget https://github.com/xanmod/linux/archive/5.10.18-xanmod1.zip 3) ark 5.10.18-xanmod1.zip 4) While ark is loading the file close its window, either by hitting "X" on the top right corner or ALT+F4. Created attachment 136127 [details]
valgrind log
valgrind --log-file=arkcrash ark "zip file"
It does crashes if you fallow the same steps BUT is waaaaaaaaaaay less frequent.
Created attachment 136128 [details]
video demostration
I can confirm the crash, valgrind says ==3546== Thread 13 Kerfuffle::Job::: ==3546== Invalid read of size 8 ==3546== at 0x2330F6BC: std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<QTypedArrayData<unsigned short>*> >, std::is_move_constructible<QTypedArrayData<unsigned short>*>, std::is_move_assignable<QTypedArrayData<unsigned short>*> >::value, void>::type std::swap<QTypedArrayData<unsigned short>*>(QTypedArrayData<unsigned short>*&, QTypedArrayData<unsigned short>*&) (move.h:197) ==3546== by 0x2330E8CD: void qSwap<QTypedArrayData<unsigned short>*>(QTypedArrayData<unsigned short>*&, QTypedArrayData<unsigned short>*&) (qglobal.h:969) ==3546== by 0x2330DC80: QString::operator=(QString&&) (qstring.h:275) ==3546== by 0x2330531D: LibzipPlugin::list() (libzipplugin.cpp:88) ==3546== by 0x489615B: Kerfuffle::LoadJob::doWork() (jobs.cpp:271) ==3546== by 0x4894D41: Kerfuffle::Job::Private::run() (jobs.cpp:64) ==3546== by 0x6577EFE: ??? (in /usr/lib/libQt5Core.so.5.15.2) ==3546== by 0x7291298: start_thread (in /usr/lib/libpthread-2.33.so) ==3546== by 0x6E3C052: clone (in /usr/lib/libc-2.33.so) ==3546== Address 0xad1a130 is 16 bytes inside a block of size 112 free'd ==3546== at 0x483FEAB: operator delete(void*) (vg_replace_malloc.c:584) ==3546== by 0x23305017: LibzipPlugin::~LibzipPlugin() (libzipplugin.cpp:68) ==3546== by 0x678A0BD: QObjectPrivate::deleteChildren() (in /usr/lib/libQt5Core.so.5.15.2) ==3546== by 0x6794F24: QObject::~QObject() (in /usr/lib/libQt5Core.so.5.15.2) ==3546== by 0x488C4B7: Kerfuffle::Archive::~Archive() (archive_kerfuffle.cpp:202) ==3546== by 0x488C4D3: Kerfuffle::Archive::~Archive() (archive_kerfuffle.cpp:204) ==3546== by 0x678A0BD: QObjectPrivate::deleteChildren() (in /usr/lib/libQt5Core.so.5.15.2) ==3546== by 0x6794F24: QObject::~QObject() (in /usr/lib/libQt5Core.so.5.15.2) ==3546== by 0x14D670EF: ??? (in /home/tsdgeos/devel/kde/install/lib/plugins/arkpart.so) ==3546== by 0x14D6710B: ??? (in /home/tsdgeos/devel/kde/install/lib/plugins/arkpart.so) ==3546== by 0x678A0BD: QObjectPrivate::deleteChildren() (in /usr/lib/libQt5Core.so.5.15.2) ==3546== by 0x6794F24: QObject::~QObject() (in /usr/lib/libQt5Core.so.5.15.2) ==3546== Block was alloc'd at ==3546== at 0x483EDEF: operator new(unsigned long) (vg_replace_malloc.c:342) ==3546== by 0x23310049: QObject* KPluginFactory::createInstance<LibzipPlugin, QObject>(QWidget*, QObject*, QList<QVariant> const&) (kpluginfactory.h:700) ==3546== by 0x56CAB84: KPluginFactory::create(char const*, QWidget*, QObject*, QList<QVariant> const&, QString const&) (in /usr/lib/libKF5CoreAddons.so.5.79.0) ==3546== by 0x488EAF7: Kerfuffle::ReadOnlyArchiveInterface* KPluginFactory::create<Kerfuffle::ReadOnlyArchiveInterface>(QObject*, QList<QVariant> const&) (kpluginfactory.h:745) ==3546== by 0x488B76A: Kerfuffle::Archive::create(QString const&, Kerfuffle::Plugin*, QObject*) (archive_kerfuffle.cpp:90) ==3546== by 0x488B1F8: Kerfuffle::Archive::create(QString const&, QString const&, QObject*) (archive_kerfuffle.cpp:65) ==3546== by 0x488BDC5: Kerfuffle::Archive::load(QString const&, QString const&, QObject*) (archive_kerfuffle.cpp:136) ==3546== by 0x14D6A88B: ??? (in /home/tsdgeos/devel/kde/install/lib/plugins/arkpart.so) ==3546== by 0x14D47A1C: ??? (in /home/tsdgeos/devel/kde/install/lib/plugins/arkpart.so) ==3546== by 0x14D4959E: ??? (in /home/tsdgeos/devel/kde/install/lib/plugins/arkpart.so) ==3546== by 0x4A71314: ??? (in /usr/lib/libKF5Parts.so.5.79.0) ==3546== by 0x4A720E3: KParts::ReadOnlyPart::openUrl(QUrl const&) (in /usr/lib/libKF5Parts.so.5.79.0) @Alber: are you on Wayland? I can reproduce the crash from a wayland session, but not if I run `ark --platform xcb`. Also, my backtrace is somewhat different: ==26376== Invalid read of size 4 ==26376== at 0x4891CD4: Kerfuffle::Archive::isValid() const (archive_kerfuffle.cpp:376) ==26376== by 0x489D7AC: Kerfuffle::Job::onFinished(bool) (jobs.cpp:212) ==26376== by 0x489E305: Kerfuffle::LoadJob::onFinished(bool) (jobs.cpp:294) ==26376== by 0x48A2AB7: Kerfuffle::LoadJob::doWork()::$_1::operator()() const (jobs.cpp:277) ==26376== by 0x48A2A55: QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Kerfuffle::LoadJob::doWork()::$_1>::call(Kerfuffle::LoadJob::doWork()::$_1&, void**) (qobjectdefs_impl.h:146) ==26376== by 0x48A2A20: void QtPrivate::Functor<Kerfuffle::LoadJob::doWork()::$_1, 0>::call<QtPrivate::List<>, void>(Kerfuffle::LoadJob::doWork()::$_1&, void*, void**) (qobjectdefs_impl.h:256) ==26376== by 0x48A29CB: QtPrivate::QFunctorSlotObject<Kerfuffle::LoadJob::doWork()::$_1, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443) ==26376== by 0x674B531: QObject::event(QEvent*) (in /usr/lib/libQt5Core.so.5.15.2) ==26376== by 0x5861751: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQt5Widgets.so.5.15.2) ==26376== by 0x671EA29: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/libQt5Core.so.5.15.2) ==26376== by 0x6721522: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/libQt5Core.so.5.15.2) ==26376== by 0x6778053: ??? (in /usr/lib/libQt5Core.so.5.15.2) ==26376== Address 0x220bb800 is 48 bytes inside a block of size 80 free'd ==26376== at 0x483FEAB: operator delete(void*) (vg_replace_malloc.c:584) ==26376== by 0x4892697: Kerfuffle::Archive::~Archive() (archive_kerfuffle.cpp:203) ==26376== by 0x67490BD: QObjectPrivate::deleteChildren() (in /usr/lib/libQt5Core.so.5.15.2) ==26376== by 0x6753F24: QObject::~QObject() (in /usr/lib/libQt5Core.so.5.15.2) ==26376== by 0x21465FEE: ??? (in /home/elvis/install/lib/plugins/arkpart.so) ==26376== by 0x2146601B: ??? (in /home/elvis/install/lib/plugins/arkpart.so) ==26376== by 0x67490BD: QObjectPrivate::deleteChildren() (in /usr/lib/libQt5Core.so.5.15.2) ==26376== by 0x6753F24: QObject::~QObject() (in /usr/lib/libQt5Core.so.5.15.2) ==26376== by 0x2143E817: ??? (in /home/elvis/install/lib/plugins/arkpart.so) ==26376== by 0x2143E862: ??? (in /home/elvis/install/lib/plugins/arkpart.so) ==26376== by 0x2143E8FB: ??? (in /home/elvis/install/lib/plugins/arkpart.so) ==26376== by 0x124E27: MainWindow::~MainWindow() (mainwindow.cpp:76) ==26376== Block was alloc'd at ==26376== at 0x483EDEF: operator new(unsigned long) (vg_replace_malloc.c:342) ==26376== by 0x4891C0A: Kerfuffle::Archive::create(QString const&, Kerfuffle::Plugin*, QObject*) (archive_kerfuffle.cpp:102) ==26376== by 0x4891266: Kerfuffle::Archive::create(QString const&, QString const&, QObject*) (archive_kerfuffle.cpp:65) ==26376== by 0x4891F24: Kerfuffle::Archive::load(QString const&, QString const&, QObject*) (archive_kerfuffle.cpp:136) ==26376== by 0x21469CBB: ??? (in /home/elvis/install/lib/plugins/arkpart.so) ==26376== by 0x21443C58: ??? (in /home/elvis/install/lib/plugins/arkpart.so) ==26376== by 0x21445B99: ??? (in /home/elvis/install/lib/plugins/arkpart.so) ==26376== by 0x4A4F314: ??? (in /usr/lib/libKF5Parts.so.5.80.0) ==26376== by 0x4A500E3: KParts::ReadOnlyPart::openUrl(QUrl const&) (in /usr/lib/libKF5Parts.so.5.80.0) ==26376== by 0x125446: MainWindow::openUrl(QUrl const&) (mainwindow.cpp:232) ==26376== by 0x12B0C8: QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QUrl const&>, void, void (MainWindow::*)(QUrl const&)>::call(void (MainWindow::*)(QUrl const&), MainWindow*, void**) (qobjectdefs_impl.h:152) ==26376== by 0x12B027: void QtPrivate::FunctionPointer<void (MainWindow::*)(QUrl const&)>::call<QtPrivate::List<QUrl const&>, void>(void (MainWindow::*)(QUrl const&), MainWindow*, void**) (qobjectdefs_impl.h:185) no, no wayland, try again and still get a very similar crash to comment #5 |