Bug 309159 - Crash in video files preview on F3
Summary: Crash in video files preview on F3
Status: RESOLVED FIXED
Alias: None
Product: krusader
Classification: Applications
Component: general (show other bugs)
Version: 2.4.0-beta3 "Single Step"
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Krusader Bugs Distribution List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-28 17:52 UTC by nucleo
Modified: 2018-05-06 00:15 UTC (History)
3 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 nucleo 2012-10-28 17:52:16 UTC
Krusader 2.4.0-beta2 and beta3 crashes in video files preview on F3.

Reproducible: Always

Steps to Reproduce:
1. Select video file
2. Press F3
3.
Actual Results:  
GNU gdb (GDB) Fedora (7.5.0.20120926-25.fc18)
Copyright (C) 2012 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 "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/krusader...Reading symbols from /usr/lib/debug/usr/bin/krusader.debug...done.
done.
(gdb) r
Starting program: /usr/bin/krusader 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated.
[New Thread 0xb29bab40 (LWP 1383)]
Detaching after fork from child process 1384.
Detaching after fork from child process 1385.
Detaching after fork from child process 1386.
Detaching after fork from child process 1387.
[[32;1m0x8c7f120[0m] main services discovery error: [31;1mno suitable services discovery module[0m
[New Thread 0xb0420b40 (LWP 1388)]
Detaching after fork from child process 1389.
Object::connect: No such signal Phonon::VLC::MediaObject::angleChanged(int) in /builddir/build/BUILD/phonon-4.6.0/phonon/mediacontroller.cpp:64
Object::connect: No such signal Phonon::VLC::MediaObject::availableAnglesChanged(int) in /builddir/build/BUILD/phonon-4.6.0/phonon/mediacontroller.cpp:65
Object::connect: No such signal Phonon::VLC::MediaObject::angleChanged(int) in /builddir/build/BUILD/phonon-4.6.0/phonon/mediacontroller.cpp:64
Object::connect: No such signal Phonon::VLC::MediaObject::availableAnglesChanged(int) in /builddir/build/BUILD/phonon-4.6.0/phonon/mediacontroller.cpp:65
Object::connect: No such signal Dragon::VideoWindow::stateChanged(Phonon::State)
Object::connect:  (sender name:   'VideoWindow')
Object::connect: No such signal Dragon::VideoWindow::customContextMenuRequested()
Object::connect:  (sender name:   'VideoWindow')
[New Thread 0xb039fb40 (LWP 1390)]
krusader(1378)/kparts KParts::PartManager::addPart: Part ' "" ' has a widget  ""  with a focus policy of NoFocus. It should have at least a ClickFocus policy, for part activation to work well. 


Program received signal SIGSEGV, Segmentation fault.
KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
    at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cpp:538
538	    if (!pvb->part()->url().equals(pvb->url(), KUrl::CompareWithoutTrailingSlash)) {
Missing separate debuginfos, use: debuginfo-install OpenEXR-libs-1.7.1-3.fc19.i686 alsa-lib-1.0.26-1.fc19.i686 attica-0.4.0-2.fc18.i686 bzip2-libs-1.0.6-7.fc19.i686 dbus-libs-1.6.8-2.fc18.i686 dbusmenu-qt-0.9.2-2.fc18.i686 dragon-4.9.2-1.fc19.i686 expat-2.1.0-4.fc18.i686 flac-1.2.1-10.fc18.i686 fontconfig-2.10.1-2.fc19.i686 freetype-freeworld-2.4.10-1.fc18.i686 gamin-0.1.10-13.fc18.i686 glib2-2.34.1-1.fc19.i686 glibc-2.16.90-24.fc19.i686 gsm-1.0.13-7.fc18.i686 herqq-1.0.0-4.fc18.i686 ilmbase-1.0.3-4.fc19.i686 jasper-libs-1.900.1-20.fc18.i686 jbigkit-libs-2.0-7.fc18.i686 json-c-0.9-5.fc18.i686 kde-baseapps-libs-4.9.2-2.fc19.i686 kde-runtime-libs-4.9.2-4.fc19.i686 kde-workspace-libs-4.9.2-7.fc19.i686 kdelibs-4.9.2-8.fc19.i686 keyutils-libs-1.5.5-3.fc18.i686 krb5-libs-1.10.3-7.fc19.i686 lcms-libs-1.19-6.fc18.i686 libICE-1.0.8-2.fc18.i686 libSM-1.2.1-2.fc18.i686 libX11-1.5.0-3.fc18.i686 libXau-1.0.6-4.fc18.i686 libXcursor-1.1.13-2.fc18.i686 libXdmcp-1.1.1-2.fc18.i686 libXext-1.3.1-2.fc18.i686 libXfixes-5.0-3.fc18.i686 libXft-2.3.1-2.fc18.i686 libXi-1.6.1-2.fc18.i686 libXinerama-1.1.2-2.fc18.i686 libXpm-3.5.10-2.fc18.i686 libXrandr-1.4.0-1.fc18.i686 libXrender-0.9.7-2.fc18.i686 libXtst-1.2.1-2.fc18.i686 libacl-2.2.51-8.fc19.i686 libasyncns-0.8-4.fc18.i686 libattr-2.4.46-8.fc19.i686 libbluray-0.2.3-1.fc19.i686 libcom_err-1.42.6-2.fc19.i686 libdvdnav-4.2.0-3.fc18.i686 libdvdread-4.2.0-3.fc18.i686 libffi-3.0.10-3.fc19.i686 libgcc-4.7.2-6.fc19.i686 libgcrypt-1.5.0-6.fc18.i686 libgpg-error-1.10-3.fc18.i686 libicu-49.1.1-7.fc19.i686 libjpeg-turbo-1.2.1-4.fc19.i686 libjpeg-turbo-compat-1.2.1-5.fc19.i686 libmng-1.0.10-8.fc18.i686 libogg-1.3.0-2.fc18.i686 libpng-1.5.13-1.fc19.i686 libqzeitgeist-0.8.0-8.fc18.i686 libselinux-2.1.12-1.fc19.i686 libsndfile-1.0.25-4.fc18.i686 libstdc++-4.7.2-6.fc19.i686 libtiff-4.0.3-1.fc19.i686 libuuid-2.22.1-1.fc19.i686 libvorbis-1.3.3-3.fc18.i686 libxcb-1.9-1.fc19.i686 libxml2-2.9.0-2.fc19.i686 minizip-1.2.7-9.fc19.i686 openssl-libs-1.0.1c-7.fc19.i686 pcre-8.31-2.fc19.i686 phonon-4.6.0-5.fc18.i686 phonon-backend-vlc-0.6.0-3.fc19.i686 pulseaudio-libs-2.1-4.fc19.i686 pulseaudio-libs-glib2-2.1-4.fc19.i686 qca2-2.0.3-4.fc18.i686 qt-4.8.3-7.fc19.i686 qt-x11-4.8.3-7.fc19.i686 qtsoap-2.7-4.fc18.i686 soprano-2.8.0-4.fc18.i686 strigi-libs-0.7.7-7.20120626.fc18.i686 systemd-libs-194-1.fc18.i686 tcp_wrappers-libs-7.6-70.fc18.i686 vlc-core-2.0.3-2.fc19.i686 xz-libs-5.1.2-2alpha.fc18.i686 zlib-1.2.7-9.fc19.i686
(gdb) bt
#0  KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
    at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cpp:538
#1  0xb64cb6de in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/libQtCore.so.4
#2  0x08187ff0 in PanelViewerBase::urlChanged (this=0x8aeeea8, _t1=0x8aeeea8, _t2=...)
    at /usr/src/debug/krusader-2.4.0-beta3/i686-redhat-linux-gnu/krusader/KViewer/panelviewer.moc:132
#3  0x08181c6b in setUrl (url=..., this=0x8aeeea8) at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/panelviewer.h:46
#4  KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
    at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cpp:539
#5  0xb64cb6de in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/libQtCore.so.4
#6  0x08187ff0 in PanelViewerBase::urlChanged (this=0x8aeeea8, _t1=0x8aeeea8, _t2=...)
    at /usr/src/debug/krusader-2.4.0-beta3/i686-redhat-linux-gnu/krusader/KViewer/panelviewer.moc:132
#7  0x08181c6b in setUrl (url=..., this=0x8aeeea8) at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/panelviewer.h:46
#8  KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
    at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cpp:539
#9  0xb64cb6de in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/libQtCore.so.4
#10 0x08187ff0 in PanelViewerBase::urlChanged (this=0x8aeeea8, _t1=0x8aeeea8, _t2=...)
    at /usr/src/debug/krusader-2.4.0-beta3/i686-redhat-linux-gnu/krusader/KViewer/panelviewer.moc:132
#11 0x08181c6b in setUrl (url=..., this=0x8aeeea8) at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/panelviewer.h:46
#12 KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
    at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cpp:539
#13 0xb64cb6de in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/libQtCore.so.4
#14 0x08187ff0 in PanelViewerBase::urlChanged (this=0x8aeeea8, _t1=0x8aeeea8, _t2=...)
    at /usr/src/debug/krusader-2.4.0-beta3/i686-redhat-linux-gnu/krusader/KViewer/panelviewer.moc:132
#15 0x08181c6b in setUrl (url=..., this=0x8aeeea8) at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/panelviewer.h:46
#16 KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
    at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cpp:539
#17 0xb64cb6de in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/libQtCore.so.4
#18 0x08187ff0 in PanelViewerBase::urlChanged (this=0x8aeeea8, _t1=0x8aeeea8, _t2=...)
    at /usr/src/debug/krusader-2.4.0-beta3/i686-redhat-linux-gnu/krusader/KViewer/panelviewer.moc:132
#19 0x08181c6b in setUrl (url=..., this=0x8aeeea8) at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/panelviewer.h:46
#20 KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
    at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cpp:539
#21 0xb64cb6de in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/libQtCore.so.4
#22 0x08187ff0 in PanelViewerBase::urlChanged (this=0x8aeeea8, _t1=0x8aeeea8, _t2=...)
    at /usr/src/debug/krusader-2.4.0-beta3/i686-redhat-linux-gnu/krusader/KViewer/panelviewer.moc:132
#23 0x08181c6b in setUrl (url=..., this=0x8aeeea8) at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/panelviewer.h:46
#24 KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
    at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cpp:539
#25 0xb64cb6de in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/libQtCore.so.4
#26 0x08187ff0 in PanelViewerBase::urlChanged (this=0x8aeeea8, _t1=0x8aeeea8, _t2=...)
    at /usr/src/debug/krusader-2.4.0-beta3/i686-redhat-linux-gnu/krusader/KViewer/panelviewer.moc:132
#27 0x08181c6b in setUrl (url=..., this=0x8aeeea8) at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/panelviewer.h:46
#28 KrViewer::refreshTab (this=0x863e090, pvb=0x8aeeea8)
---Type <return> to continue, or q <return> to quit---q
 at /usr/src/debug/krusader-2.4.0-beta3/krusader/KViewer/krviewer.cppQuit
(gdb) q
A debugging session is active.

Expected Results:  
No crash.

No crash in 2.4.0-beta1.
Comment 1 Kevin Kofler 2012-10-28 18:25:39 UTC
The problem there is an infinite recursion: refreshTab uses setUrl, setUrl triggers urlChanged which triggers refreshTab, oops…
Comment 2 Jekyll Wu 2012-10-29 02:49:15 UTC
http://commits.kde.org/krusader/723445ed13cf05d6b7f556e24b7a51f09b7feffd is where the problem is introduced
Comment 3 Jan Lepper 2012-10-30 21:22:05 UTC
Git commit 770fa41c1f8e76d91eb981ee56d972efe10dc667 by Jan Lepper.
Committed on 30/10/2012 at 22:15.
Pushed by janlepper into branch 'master'.

FIXED: [ 309159 ] Crash in video files preview on F3
remove unnecessary code that possibly
 - causes infinite recursion
 - uses an invalid KUrl object

M  +3    -0    ChangeLog
M  +0    -5    krusader/KViewer/krviewer.cpp
M  +2    -2    krusader/KViewer/panelviewer.cpp
M  +0    -3    krusader/KViewer/panelviewer.h

http://commits.kde.org/krusader/770fa41c1f8e76d91eb981ee56d972efe10dc667