[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: Bert Huijben <bert_at_qqmail.nl>
Date: Tue, 6 Oct 2015 13:42:43 +0200

                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:42:57 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.