Bug 367996 - KDESVN crash after removing directory
Summary: KDESVN crash after removing directory
Status: RESOLVED FIXED
Alias: None
Product: kdesvn
Classification: Applications
Component: General (other bugs)
Version First Reported In: unspecified
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: KDESvn default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-08-30 09:37 UTC by opensuse.lietuviu.kalba
Modified: 2016-08-30 17:35 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description opensuse.lietuviu.kalba 2016-08-30 09:37:59 UTC
Application: kdesvn (1.7.0)
KDE Platform Version: 4.14.9
Qt Version: 4.8.6
Operating System: Linux 3.16.7-42-desktop x86_64
Distribution: "openSUSE 13.2 (Harlequin) (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:

I opened directory in KDESVN. Then I removed that directory in external program (Dolphin). KDESVN crashed.

-- Backtrace:
Application: kdesvn (kdesvn), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[KCrash Handler]
#5  0x00007ff3b56cd360 in svn::Status::path() const () at /usr/lib64/libsvnqt_private.so
#6  0x00007ff3b599c49c in SvnItem_p::init() () at /usr/lib64/kde4/kdesvnpart.so
#7  0x00007ff3b599d222 in SvnItem_p::SvnItem_p(QSharedPointer<svn::Status> const&) () at /usr/lib64/kde4/kdesvnpart.so
#8  0x00007ff3b599daea in SvnItem::setStat(QSharedPointer<svn::Status> const&) () at /usr/lib64/kde4/kdesvnpart.so
#9  0x00007ff3b596d1c5 in SvnItemModel::refreshItem(SvnItemModelNode*) () at /usr/lib64/kde4/kdesvnpart.so
#10 0x00007ff3b596d2a5 in SvnItemModel::refreshIndex(QModelIndex const&, bool) () at /usr/lib64/kde4/kdesvnpart.so
#11 0x00007ff3b596d5c0 in SvnItemModel::slotDeleted(QString const&) () at /usr/lib64/kde4/kdesvnpart.so
#12 0x00007ff3b59ab609 in SvnItemModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) [clone .part.18] () at /usr/lib64/kde4/kdesvnpart.so
#13 0x00007ff3c6f521fa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /usr/lib64/libQtCore.so.4
#14 0x00007ff3c5d3d6e5 in KDirWatch::deleted(QString const&) (this=this@entry=0x28c7be0, _t1=...) at /usr/src/debug/kdelibs-4.14.9/build/kdecore/kdirwatch.moc:126
#15 0x00007ff3c5d402a2 in KDirWatch::setDeleted(QString const&) (this=0x28c7be0, _file=...) at /usr/src/debug/kdelibs-4.14.9/kdecore/io/kdirwatch.cpp:1924
#16 0x00007ff3c6f5659e in QObject::event(QEvent*) () at /usr/lib64/libQtCore.so.4
#17 0x00007ff3c62d776c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#18 0x00007ff3c62ddcad in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQtGui.so.4
#19 0x00007ff3c580be0a in KApplication::notify(QObject*, QEvent*) () at /usr/lib64/libkdeui.so.5
#20 0x00007ff3c6f3e2ad in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQtCore.so.4
#21 0x00007ff3c6f4157d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQtCore.so.4
#22 0x00007ff3c6f6b8fe in  () at /usr/lib64/libQtCore.so.4
#23 0x00007ff3c3ac9a04 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#24 0x00007ff3c3ac9c48 in  () at /usr/lib64/libglib-2.0.so.0
#25 0x00007ff3c3ac9cec in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#26 0x00007ff3c6f6b0be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#27 0x00007ff3c6374676 in  () at /usr/lib64/libQtGui.so.4
#28 0x00007ff3c6f3ce6f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#29 0x00007ff3c6f3d165 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQtCore.so.4
#30 0x00007ff3c6f425b9 in QCoreApplication::exec() () at /usr/lib64/libQtCore.so.4
#31 0x000000000040a86f in main ()

Reported using DrKonqi
Comment 1 Christian Ehrlicher 2016-08-30 17:35:11 UTC
Git commit abbb41bd4331cca3177a0cb9b5112783c062ea52 by Christian Ehrlicher.
Committed on 30/08/2016 at 17:34.
Pushed by chehrlic into branch 'qt4'.

Avoid crash on refreshing an item - the root model item must not be checked, otherwise an exception is thrown. This lead to a nullptr derefernce (introduced in fe1a7a3d8d627fcda34ee8b82aa37a7443e90cf1 and sadly also in kdesvn 1.7.0 ...)
Also avoid the nullptr when an exception is thrown by creating an empty svn::Status.

M  +3    -3    src/svnfrontend/models/svnitemmodel.cpp

http://commits.kde.org/kdesvn/abbb41bd4331cca3177a0cb9b5112783c062ea52