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

Re: svn segfaults on relocate when having a not checked out external

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

Thanks, in that case forget this report. Its no real issue for me anyway,
and yes I was too lazy to compile/install the latest subversion that
doesn't yet come with my distribution to double check.

Kind regards, Axel

On Tue, Oct 6, 2015 at 1:42 PM, Bert Huijben <bert_at_qqmail.nl> wrote:

> Hi,
>
>
>
> It looks like this issue was already fixed since 1.9.0.
>
>
>
> Backporting the fix to 1.8 is not trivial (but not that hard either). The
> relevant revision is r1627338.
>
>
>
> The old code just assumes that svn:externals describes exactly what is in
> the working copy, while the new code checks what is really there. (Will
> even relocate working copies that are still there, but already removed from
> svn:externals)
>
>
>
> Bert
>
>
>
> *From:* Axel Kittenberger [mailto:axkibe_at_gmail.com]
> *Sent:* dinsdag 6 oktober 2015 13:25
> *To:* users_at_subversion.apache.org
> *Subject:* svn segfaults on relocate when having a not checked out
> external
>
>
>
> 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,
> Axel
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> ~$ 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
> serf.
>
> - 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$
>
> 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
>
> bar
>
> 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
>
> rep1$
>
>
>
>
>
>
>
>
>
> This is easily tough circumvented with this. Which once again works as
> expected:
>
>
>
> 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:46:30 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.