Summary: | Crash closing embedded ark [in Ark::Part::~Part] | ||
---|---|---|---|
Product: | [Applications] ark | Reporter: | Raúl <rasasi78> |
Component: | general | Assignee: | Raphael Kubo da Costa <rakuco> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | 406143p, aiacovitti, am.marconi, anders, aquiles011, arjunak234, bitlord0xff, bubuskinforum, bugzzzz, cfanmaoli, cheapiephp, d.anielhejduk, elvis.angelaccio, esigra, frolovkirill7, jake.bahr, jpdiez, kde, kollix, lomov, martin, mattmill30, nighttarlis, rdieter, sami.gag14, samuel_lee_1991, shopkeeper88-linux, stupor_scurvy343, teknik, totoxahcp, vamp898, vinsect |
Priority: | NOR | Keywords: | drkonqi |
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Debian unstable | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/ark/9c30f30b38c36a31e6fcb3aa047a0247ac5a22fb | Version Fixed In: | 14.12 |
Sentry Crash Report: | |||
Attachments: |
backport crashfix for 4.14 branch
New crash information added by DrKonqi New crash information added by DrKonqi New crash information added by DrKonqi |
Description
Raúl
2014-11-22 23:12:16 UTC
This is an issue in ark's KPart. +Elvis Contrary to the Fedora crash we'd been tracking in bug 340991, this one looks like a true regression and I'm able to reproduce it on Debian and FreeBSD. There's something fishy when Ark is being used as an embedded KPart (for example, when previewing an archive in Konqueror or when previewing an embedded archive in a Debian package). What Valgrind and the backtrace above tell us is that we're accessing an invalid factory() in the cases I mentioned above, and an if (factory()) before the removeClient() call does fix the issue. I'd just like to know what the interactions here are before committing this fix. Git commit 9c30f30b38c36a31e6fcb3aa047a0247ac5a22fb by Raphael Kubo da Costa. Committed on 23/11/2014 at 23:37. Pushed by rkcosta into branch 'Applications/14.12'. Stop crashing on exit when being used solely as a KPart. This change fixes a crash introduced by commit 3b981ca ("Remove Part from KXMLGUIFactory on exit"). Part::~Part() is the wrong place to call KXMLGUIFactory::removeClient(), as it assumes addClient() had been called in the first place. This is only true if Ark is called as a standalone program, since that is done in MainWindow::loadPart()'s call to KXMLGuiWindow::createGUI(). Conversely, if the Ark KPart is being used as an embedded viewer in, say, Konqueror or to preview an archive inside an archive (ie. Ark inside Ark) that does not hold true and we try to access a KXMLGUIFactory that does not exist. Instead, call KXMLGuiWindow::removeClient() in MainWindow's destructor, since in this case we are certain that addClient() was been called before. FIXED-IN: 14.12 M +3 -0 app/mainwindow.cpp M +0 -2 part/part.cpp http://commits.kde.org/ark/9c30f30b38c36a31e6fcb3aa047a0247ac5a22fb Created attachment 89715 [details]
backport crashfix for 4.14 branch
Here's a quick-n-dirty patch that applies to 4.14 branch if anyone's interested. (Any objection to committing this to 4.14 branch for posterity?)
Well the original patch should apply to KDE/4.14 without any changes, since there had been no commits to Applications/14.12 before this one and therefore both branches were at the same commit. I don't see much point in committing it to 4.14 simply because that branch is dead -- there will be no more 4.14 releases so I don't see how this change is different from any other that did not make it into other dead branches. the patch didn't apply as-is, the Part::~Part() code was a little different I was only going to commit it for the convenience of distros still shipping 4.14 Sorry, I forgot Applications/14.12 was branched from master, not KDE/4.14. I'm not terribly opposed to committing to dead branches; I'll commit a version solving the conflict(s). Git commit cd8ad2761d41d1ec0a18cff7f4d166b53c899fc2 by Raphael Kubo da Costa. Committed on 23/11/2014 at 23:37. Pushed by rkcosta into branch 'KDE/4.14'. Stop crashing on exit when being used solely as a KPart. This change fixes a crash introduced by commit 3b981ca ("Remove Part from KXMLGUIFactory on exit"). Part::~Part() is the wrong place to call KXMLGUIFactory::removeClient(), as it assumes addClient() had been called in the first place. This is only true if Ark is called as a standalone program, since that is done in MainWindow::loadPart()'s call to KXMLGuiWindow::createGUI(). Conversely, if the Ark KPart is being used as an embedded viewer in, say, Konqueror or to preview an archive inside an archive (ie. Ark inside Ark) that does not hold true and we try to access a KXMLGUIFactory that does not exist. Instead, call KXMLGuiWindow::removeClient() in MainWindow's destructor, since in this case we are certain that addClient() was been called before. (cherry picked from commit 9c30f30b38c36a31e6fcb3aa047a0247ac5a22fb) This was committed for completeness, as there will be no additional releases from the KDE/4.14 branch. Conflicts: part/part.cpp M +3 -0 app/mainwindow.cpp M +0 -3 part/part.cpp http://commits.kde.org/ark/cd8ad2761d41d1ec0a18cff7f4d166b53c899fc2 Thanks! *** Bug 341273 has been marked as a duplicate of this bug. *** *** Bug 341287 has been marked as a duplicate of this bug. *** *** Bug 341606 has been marked as a duplicate of this bug. *** *** Bug 341743 has been marked as a duplicate of this bug. *** *** Bug 342018 has been marked as a duplicate of this bug. *** *** Bug 342019 has been marked as a duplicate of this bug. *** *** Bug 343309 has been marked as a duplicate of this bug. *** *** Bug 343311 has been marked as a duplicate of this bug. *** *** Bug 343647 has been marked as a duplicate of this bug. *** *** Bug 346288 has been marked as a duplicate of this bug. *** *** Bug 349487 has been marked as a duplicate of this bug. *** *** Bug 349777 has been marked as a duplicate of this bug. *** *** Bug 350245 has been marked as a duplicate of this bug. *** *** Bug 350981 has been marked as a duplicate of this bug. *** Created attachment 94180 [details]
New crash information added by DrKonqi
konqueror (4.14.1) on KDE Platform 4.14.2 using Qt 4.8.6
- What I was doing when the application crashed:
I was browsing a web which had an link pointing to a compressed file. I click on the link, and took a look at the files in that archive. I pressed the back button in konqueror to go back to the web and konqueror crashed with the attached backtrace.
Regards,
-- Backtrace (Reduced):
#6 KXMLGUIFactory::removeClient (this=0x0, client=0x8cda1ec) at ../../kdeui/xmlgui/kxmlguifactory.cpp:419
#7 0xad83ddfc in Ark::Part::~Part (this=0x8cda1a0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../../part/part.cpp:141
#8 0xad83deaa in Ark::Part::~Part (this=0x8cda1a0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../../part/part.cpp:146
#9 0xb75fe176 in KonqView::~KonqView (this=0x8cd9f10, __in_chrg=<optimized out>) at ../../../konqueror/src/konqview.cpp:130
#10 0xb75fe48a in KonqView::~KonqView (this=0x8cd9f10, __in_chrg=<optimized out>) at ../../../konqueror/src/konqview.cpp:138
*** Bug 349149 has been marked as a duplicate of this bug. *** Created attachment 95216 [details]
New crash information added by DrKonqi
konqueror (4.14.3) on KDE Platform 4.14.5 using Qt 4.8.6
- Unusual behavior I noticed:
Systematic crash when i close Konqueror main window, wherin are 2 windows, one with a compress file opened.
-- Backtrace (Reduced):
#6 0xffffffff in KXMLGUIFactory::removeClient(KXMLGUIClient*) () at /lib/libkdeui.so.5
#7 0xffffffff in Ark::Part::~Part() () at /usr/lib/kde4/arkpart.so
#8 0xffffffff in Ark::Part::~Part() () at /usr/lib/kde4/arkpart.so
#9 0xffffffff in KonqView::~KonqView() () at /usr/lib/libkdeinit4_konqueror.so
#10 0xffffffff in KonqView::~KonqView() () at /usr/lib/libkdeinit4_konqueror.so
*** Bug 356912 has been marked as a duplicate of this bug. *** *** Bug 356958 has been marked as a duplicate of this bug. *** *** Bug 346667 has been marked as a duplicate of this bug. *** *** Bug 358810 has been marked as a duplicate of this bug. *** *** Bug 361028 has been marked as a duplicate of this bug. *** *** Bug 370386 has been marked as a duplicate of this bug. *** *** Bug 375603 has been marked as a duplicate of this bug. *** *** Bug 349291 has been marked as a duplicate of this bug. *** *** Bug 345237 has been marked as a duplicate of this bug. *** *** Bug 377021 has been marked as a duplicate of this bug. *** Created attachment 107342 [details] New crash information added by DrKonqi ark (2.19) on KDE Platform 4.14.30 using Qt 4.8.6 - What I was doing when the application crashed: opening a rpm file in ftp://ftp.free.fr/mirrors/mageia.org/distrib/5/SRPMS/core/release displayed in konqueror --profile webbrowsing with ark opening a tar.bz2 file clising the tar.bz2 file closing the ark window -- Backtrace (Reduced): #5 0x00007fe6dc1ef070 in KXMLGUIFactory::removeClient(KXMLGUIClient*) () at /lib64/libkdeui.so.5 #6 0x00007fe6ca7e1914 in Ark::Part::~Part() () at /usr/lib64/kde4/arkpart.so #7 0x00007fe6ca7e1999 in Ark::Part::~Part() () at /usr/lib64/kde4/arkpart.so #8 0x00007fe6dca1c781 in KParts::Part::slotWidgetDestroyed() () at /lib64/libkparts.so.4 [...] #10 0x00007fe6da9cc29f in QObject::destroyed(QObject*) () at /lib64/libQtCore.so.4 *** Bug 386273 has been marked as a duplicate of this bug. *** |