Bug 353786

Summary: Ark crash after viewing a html file in a .tar.xz archive
Product: [Applications] ark Reporter: fademind
Component: generalAssignee: Raphael Kubo da Costa <rakuco>
Status: RESOLVED FIXED    
Severity: crash CC: elvis.angelaccio, fademind
Priority: NOR    
Version: 15.08.1   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
URL: https://bugs.archlinux.org/task/46649
Latest Commit: Version Fixed In: 15.12.0
Sentry Crash Report:

Description fademind 2015-10-11 09:12:02 UTC
Steps:

Ark will close. In dmesg You will see similar:

[ 987.412772] ark[2827]: segfault at 18 ip 00007fec7f375223 sp 00007ffc5c6cb310 error 4 in libc-2.22.so[7fec7f2fd000+19b000]
==============================
[tomasz@arch Pobrane]$ export LANG=C
[tomasz@arch Pobrane]$ ark mesa-11.0.3.tar.xz 
Recreating ksycoca file ("/home/tomasz/.cache/ksycoca5_C_KDZ+jvDxT52n_huu6821QDq5XQs=", version 303)
kf5.kservice.sycoca: Parse error in "/home/tomasz/.config/menus/applications-merged/xdg-desktop-menu-dummy.menu" , line 1 , col 1 : "unexpected end of file"
kf5.kservice.sycoca: The menu spec file contains a Layout or DefaultLayout tag without the mandatory Merge tag inside. Please fix your file.
Saving
org.kde.knotifications: Audio notification requested, but sound file from notifyrc file was not found, aborting audio notification
Segmentation fault (core dumped)
==============================

Reproducible: Always

Steps to Reproduce:
1. Upgrade KDE Frameworks to 5.15.0 version.
2. Reboot. 
3. Open archive with HTML file inside in Ark. Click on this HTML file.
For example mesa-11.0.3.tar.xz 


Actual Results:  
Navigate to in mesa-11.0.3.tar.xz to ../docs/relnotes/11.0.3.html and click on this HTML file. Ark will close. In dmesg You will see similar:
==============================
[ 987.412772] ark[2827]: segfault at 18 ip 00007fec7f375223 sp 00007ffc5c6cb310 error 4 in libc-2.22.so[7fec7f2fd000+19b000]
==============================

Expected Results:  
Preview HTML file.

Packages versions:
glibc 2.22-3
ark 15.08.1
KDE Frameworks 5.15.0-1

Backtrace
==============================
tomasz@arch Pobrane]$ export $(dbus-launch)
[tomasz@arch Pobrane]$ gdb ark
GNU gdb (GDB) 7.10
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ark...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/ark 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fffe2abb700 (LWP 5592)]
klauncher not running... launching kdeinit
kdeinit5: Shutting down running client.
[New Thread 0x7fffd4def700 (LWP 5599)]
[Thread 0x7fffd4def700 (LWP 5599) exited]
[New Thread 0x7fffd4def700 (LWP 5600)]
[Thread 0x7fffd4def700 (LWP 5600) exited]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff40189b0 in _int_malloc () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff40189b0 in _int_malloc () from /usr/lib/libc.so.6
#1  0x00007ffff401a3d4 in malloc () from /usr/lib/libc.so.6
#2  0x00007ffff47810f8 in QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) () from /usr/lib/libQt5Core.so.5
#3  0x00007ffff515d78d in ?? () from /usr/lib/libQt5Gui.so.5
#4  0x00007ffff5152834 in ?? () from /usr/lib/libQt5Gui.so.5
#5  0x00007ffff5156cb0 in ?? () from /usr/lib/libQt5Gui.so.5
#6  0x00007ffff5157288 in QRegion::operator+=(QRegion const&) () from /usr/lib/libQt5Gui.so.5
#7  0x00007ffff56a67e3 in ?? () from /usr/lib/libQt5Widgets.so.5                              
#8  0x00007ffff56a7a9c in ?? () from /usr/lib/libQt5Widgets.so.5                              
#9  0x00007ffff56c5c4f in QWidgetPrivate::syncBackingStore() ()                               
   from /usr/lib/libQt5Widgets.so.5                                                           
#10 0x00007ffff56dcd08 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff57f2c9b in QMainWindow::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#12 0x00007ffff6feedfa in KMainWindow::event(QEvent*) () from /usr/lib/libKF5XmlGui.so.5
#13 0x00007ffff7039f45 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libKF5XmlGui.so.5
#14 0x00007ffff569a00c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#15 0x00007ffff569f4e6 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#16 0x00007ffff496089b in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/libQt5Core.so.5
#17 0x00007ffff4962c96 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#18 0x00007ffff49b6e33 in ?? () from /usr/lib/libQt5Core.so.5
#19 0x00007fffefeb0dc7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#20 0x00007fffefeb1020 in ?? () from /usr/lib/libglib-2.0.so.0
#21 0x00007fffefeb10cc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#22 0x00007ffff49b723f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#23 0x00007ffff495e26a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQt5Core.so.5
#24 0x00007ffff496620c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#25 0x000000000040dcf4 in main ()
(gdb) klauncher: Exiting on signal 15
==============================
Comment 1 Elvis Angelaccio 2015-10-11 17:56:56 UTC
It crashes on my system too. Actually it looks unrelated from the KF5 version, on my Arch I still have the 5.14 version.
Comment 2 Elvis Angelaccio 2015-10-18 17:08:36 UTC
I'm confirming the bug, but it looks like an issue with the KHTMLPart.
In particular, if I comment KHTMLPart::setOnlyLocalReferences(true) (line 255 of arkviewer.cpp), Ark stops crashing.
Comment 3 Elvis Angelaccio 2015-10-26 16:19:29 UTC
Git commit f2090934229ec25c16bdf84e808dfe7cee8a1cd1 by Elvis Angelaccio.
Committed on 26/10/2015 at 16:05.
Pushed by elvisangelaccio into branch 'master'.

Drop KHTML dependency and skip KHTMLPart when previewing

This drops the KHTML framework as dependency (which was actually needed only to
disable javascript and friends from the KHTMLPart) and drops the KHTMLPart as
well, when previewing an HTML or XML file. Now we always use the second available
service offer, which is the katepart by default, to preview those mimetypes.
The user can still render an HTML entry, by opening it in the browser with the
'Open File' action.
Related: bug 201162, bug 354182
FIXED-IN: 15.12.0

Differential Revision: D454

M  +1    -1    CMakeLists.txt
M  +1    -1    part/CMakeLists.txt
M  +13   -34   part/arkviewer.cpp
M  +0    -3    part/arkviewer.h

http://commits.kde.org/ark/f2090934229ec25c16bdf84e808dfe7cee8a1cd1