Bug 325074

Summary: kdesvn crashed when getting logs.
Product: [Applications] kdesvn Reporter: smalcom <smal.root>
Component: GeneralAssignee: KDESvn default assignee <kdesvn-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: Ch.Ehrlicher, mmarinchenko, ral, reavertm
Priority: NOR Keywords: drkonqi
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Do not add a second '/' between _base and _name to make svn happy

Description smalcom 2013-09-18 21:36:13 UTC
Application: kdesvn (1.6.40 (rev: ea91baf))
KDE Platform Version: 4.11.00 (Compiled from sources)
Qt Version: 4.8.5
Operating System: Linux 3.2.29 x86_64
Distribution (Platform): Slackware Packages

-- Information about the crash:
- What I was doing when the application crashed:
1. Select "history" in context menu.
2. In new window press button "Get logs".

Application crashed

-- Backtrace:
Application: kdesvn (kdesvn), signal: Aborted
Using host libthread_db library "/lib/libthread_db.so.1".
[KCrash Handler]
#6  0x00007f3c998c3a25 in raise () from /lib/libc.so.6
#7  0x00007f3c998c51d8 in abort () from /lib/libc.so.6
#8  0x00007f3c998bc7b2 in __assert_fail_base () from /lib/libc.so.6
#9  0x00007f3c998bc862 in __assert_fail () from /lib/libc.so.6
#10 0x00007f3c89b446aa in ?? () from /usr/lib/libsvn_subr-1.so.0
#11 0x00007f3c89b446b9 in svn_uri__is_ancestor () from /usr/lib/libsvn_subr-1.so.0
#12 0x00007f3c89fb823d in svn_ra_reparent () from /usr/lib/libsvn_ra-1.so.0
#13 0x00007f3c8a61a4d9 in svn_client__ra_session_from_path () from /usr/lib/libsvn_client-1.so.0
#14 0x00007f3c8a6088ed in svn_client_log5 () from /usr/lib/libsvn_client-1.so.0
#15 0x00007f3c8b90e999 in svn::Client_impl::log (this=<optimized out>, params=..., log_target=...) at /mnt/soft/software/x86/develop/vcs/kdesvn/src/svnqt/client_status.cpp:424
#16 0x00007f3c8bbeea4f in SvnActions::getLog (this=0x226aec0, start=..., end=..., peg=..., which=..., list_files=true, limit=0, follow=false, parent=0x26ee7d0) at /mnt/soft/software/x86/develop/vcs/kdesvn/src/svnfrontend/svnactions.cpp:313
#17 0x00007f3c8bc06bda in SvnLogDlgImp::slotGetLogs (this=0x26ee7d0) at /mnt/soft/software/x86/develop/vcs/kdesvn/src/svnfrontend/svnlogdlgimp.cpp:328
#18 0x00007f3c9d195cef in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /opt/qt/lib/libQtCore.so.4
#19 0x00007f3c9c95d7e2 in QAbstractButton::clicked(bool) () from /opt/qt/lib/libQtGui.so.4
#20 0x00007f3c9c6b1f5e in ?? () from /opt/qt/lib/libQtGui.so.4
#21 0x00007f3c9c6b2790 in ?? () from /opt/qt/lib/libQtGui.so.4
#22 0x00007f3c9c6b29fc in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /opt/qt/lib/libQtGui.so.4
#23 0x00007f3c9c348e09 in QWidget::event(QEvent*) () from /opt/qt/lib/libQtGui.so.4
#24 0x00007f3c9c2f92bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/qt/lib/libQtGui.so.4
#25 0x00007f3c9c2fdf9b in QApplication::notify(QObject*, QEvent*) () from /opt/qt/lib/libQtGui.so.4
#26 0x00007f3c9b7ff086 in KApplication::notify (this=0x7fff1265a600, receiver=0x2706840, event=0x7fff12659840) at /usr/src/kdelibs-4.11.0/kdeui/kernel/kapplication.cpp:311
#27 0x00007f3c9d1808ee in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /opt/qt/lib/libQtCore.so.4
#28 0x00007f3c9c2fa0fb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /opt/qt/lib/libQtGui.so.4
#29 0x00007f3c9c3751b4 in ?? () from /opt/qt/lib/libQtGui.so.4
#30 0x00007f3c9c373ab1 in QApplication::x11ProcessEvent(_XEvent*) () from /opt/qt/lib/libQtGui.so.4
#31 0x00007f3c9c399792 in ?? () from /opt/qt/lib/libQtGui.so.4
#32 0x00007f3c98d93c35 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#33 0x00007f3c98d93f68 in ?? () from /usr/lib/libglib-2.0.so.0
#34 0x00007f3c98d94024 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#35 0x00007f3c9d1aed96 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/qt/lib/libQtCore.so.4
#36 0x00007f3c9c39941e in ?? () from /opt/qt/lib/libQtGui.so.4
#37 0x00007f3c9d17f59f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/qt/lib/libQtCore.so.4
#38 0x00007f3c9d17f828 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/qt/lib/libQtCore.so.4
#39 0x00007f3c9d184568 in QCoreApplication::exec() () from /opt/qt/lib/libQtCore.so.4
#40 0x000000000040a1d7 in main (argc=1, argv=0x7fff1265a758) at /mnt/soft/software/x86/develop/vcs/kdesvn/src/main.cpp:90

Reported using DrKonqi
Comment 1 Jekyll Wu 2013-09-19 05:49:50 UTC
looks like a problem within svn libraries.
Comment 2 Rajko Albrecht 2013-12-18 13:02:33 UTC
I think so, it looks like a problem with some libraries. I can not confirm this (debian testing & fedora 19, original binaries and self built)

Are you using the @ sign in any of your path- or filenames?
Comment 3 Christian Ehrlicher 2014-01-24 19:49:16 UTC
After a short search I found a similar bug reported for a subversion app in fedora. The reasons seems to be that svn_uri_is_canonical() (which is called from svn_uri__is_ancestor()) checks if the uri is canonical enough which isn't the case for the paths provided by kdesvn because they do *not* end with '/'. See also https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_subr/dirent_uri.c :
  /* URI is canonical if it has:
   *  - lowercase URL scheme
   *  - lowercase URL hostname
   *  - no '.' segments
   *  - no closing '/'
   *  - no '//'
   *  - uppercase hex-encoded pair digits ("%AB", not "%ab")
   */
Comment 4 Christian Ehrlicher 2014-01-24 20:11:07 UTC
Ok, I found the reason why it crashes for me. my url looks like this:
svn://myserver/project/branches//branch1
The problem is the double '/' between branches and branch1. And this only occurs when I use 'get logs' inside the svn log window. I think this may be the reason for the crash above too.
Comment 5 Christian Ehrlicher 2014-01-24 20:43:05 UTC
Created attachment 84832 [details]
Do not add a second '/' between _base and _name to make svn happy

This patch fixes the problem that the uri contains '//' instead of one which is no longer allowed with subversion 1.8 (and 1.7?)
Comment 6 Christian Ehrlicher 2014-06-04 17:54:26 UTC
Any news here? What can I do more than providing a proper patch for this bug??
Comment 7 Maciej Mrozowski 2014-10-02 14:12:42 UTC
I confirm attached patch fixes the problem.
++
Comment 8 Christian Ehrlicher 2014-12-28 16:31:07 UTC
Fixed with

commit c1adde451dfac202ef63aded5b2a7adfa9e26f9b
Author: Christian Ehrlicher <Ch.Ehrlicher@gmx.de>
Date:   Wed Dec 24 14:44:59 2014 +0100

    REVIEW: 121670
    Patch for Bug 325074 and 330624 - kdesvn crashed when getting logs