[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

svn segfaults on relocate when having a not checked out external

From: Axel Kittenberger <axkibe_at_gmail.com>
Date: Tue, 6 Oct 2015 13:25:15 +0200

Hello, below is my shell script that raises the svn segfault for me.

The issue is, doing a relocate while having an external that is not in the
working copy. It raised for me, since I got one automated instance that
automatically sets externals for a repository, but does not need to check
it out itself, so it updates with "--ignore-externals", now I tried to
relocate that daemons working copy, svn segfaulted. Its no big issue for
me, since I can always revert to do a full checkout instead, or update
without --ignore-externals, relocate and delete the externals in the
working copy.

Still I guess, a segfault never should be not a bug, so I report it.

Operating System is Debian Jessie, if you no need any more info just ask.

Kind regards,
~$ svn --version
svn, version 1.8.10 (r1615264)
   compiled Aug 9 2015, 13:48:39 on x86_64-pc-linux-gnu

Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using
  - using serf 1.3.8
  - handles 'http' scheme
  - handles 'https' scheme
~$ mkdir atest
~$ cd atest/
atest$ svnadmin create repository1
atest$ svnadmin create repository2
atest$ svn checkout file:///home/axel/atest/repository1 rep1
Checked out revision 0.
atest$ svn checkout file:///home/axel/atest/repository2 rep2
Checked out revision 0.
atest$ cd rep2/
rep2$ echo "bar" > foo
rep2$ svn add foo
A foo
rep2$ svn commit -m foobar
Adding foo
Transmitting file data .
Committed revision 1.
rep2$ cd ..
atest$ cd rep1/
rep1$ echo "^/../repository2 extrep2" > externals
rep1$ svn propset svn:externals . -F externals
property 'svn:externals' set on '.'
rep1$ svn up
Updating '.':

Fetching external item into 'extrep2':
A extrep2/foo
Updated external to revision 1.

At revision 0.
rep1$ cat extrep2/foo
rep1$ ### everything working as expected so far ###
rep1$ rm -rf extrep2/
rep1$ cd ..
atest$ mv repository1/ namechange1
atest$ cd rep1/
rep1$ svn relocate file:///home/axel/atest/namechange1
Segmentation fault

This is easily tough circumvented with this. Which once again works as

rep1$ svn up
Updating '.':

Fetching external item into 'extrep2':
A extrep2/foo
Updated external to revision 1.

At revision 0.
rep1$ svn relocate file:///home/axel/atest/namechange1
Received on 2015-10-06 13:25:45 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.