Quantcast

Error reading spooled REPORT request response

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Error reading spooled REPORT request response

Wilfredo Sánchez Vega
I'm running into this error while trying to do a merge:

        --- Merging r4130 through r4318 into '.':
        U lib-patches/Twisted/twisted.python.util.patch
        svn: Attempt to add tree conflict that already exists
        svn: Error reading spooled REPORT request response

   The client and server are both running svn version 1.6.2.

   This merge completes without errors if I use svn 1.4.4 client (had  
that on another machine; didn't try anything in between), which  
suggests that this is a regression.

   The script below will reproduce this on my system.

        -wsv


#!/usr/bin/env bash

# Create a temporary directory
tmp="$(mktemp -d -t foo)";
cd "${tmp}";

# Check out CalendarServer
svn co -r4315 http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk 
  CalendarServer;
cd CalendarServer;

# Merge all changes on the update-twisted-3816-3 since it's creation  
(r4129)
svn merge -r4129:HEAD http://svn.calendarserver.org/repository/calendarserver/CalendarServer/branches/exarkun/update-twisted-3816-3 
;

# Print the WC path
echo "WC is: $(pwd)";

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359252
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Error reading spooled REPORT request response

Neels Hofmeyr
Wilfredo Sánchez Vega wrote:
> I'm running into this error while trying to do a merge:
>
> --- Merging r4130 through r4318 into '.':
> U lib-patches/Twisted/twisted.python.util.patch
> svn: Attempt to add tree conflict that already exists
> svn: Error reading spooled REPORT request response

Hmm, looks like a solid bug. Investigating...

Thanks for the report! So you got my message on IRC ;)
I'll be back later, hopefully with a fix.

~Neels

>
>    The client and server are both running svn version 1.6.2.
>
>    This merge completes without errors if I use svn 1.4.4 client (had  
> that on another machine; didn't try anything in between), which  
> suggests that this is a regression.
>
>    The script below will reproduce this on my system.
>
> -wsv
>
>
> #!/usr/bin/env bash
>
> # Create a temporary directory
> tmp="$(mktemp -d -t foo)";
> cd "${tmp}";
>
> # Check out CalendarServer
> svn co -r4315 http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk 
>   CalendarServer;
> cd CalendarServer;
>
> # Merge all changes on the update-twisted-3816-3 since it's creation  
> (r4129)
> svn merge -r4129:HEAD http://svn.calendarserver.org/repository/calendarserver/CalendarServer/branches/exarkun/update-twisted-3816-3 
> ;
>
> # Print the WC path
> echo "WC is: $(pwd)";
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359252
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359433

signature.asc (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

multiple tree-conflicts during merge -- was: Re: Error reading spooled REPORT request response

Neels Hofmeyr
Neels Janosch Hofmeyr wrote:
> Wilfredo Sánchez Vega wrote:
>> I'm running into this error while trying to do a merge:
>>
>> --- Merging r4130 through r4318 into '.':
>> U lib-patches/Twisted/twisted.python.util.patch
>> svn: Attempt to add tree conflict that already exists
>> svn: Error reading spooled REPORT request response
>
> Hmm, looks like a solid bug. Investigating...

BTW, I successfully reproduced this issue.
In case you're interested, it's because a deletion and addition happen in
one merge range, onto a file that was also modified in the target branch. To
work around it, you could merge selected ranges and resolve tree-conflicts
after each range.

But to find out which files and ranges are involved is not that simple. I've
also been thinking about that one and might come up with a little tool soon.

Anyway. I'm still struggling to find the proper fix for this issue, in *theory*.

How to handle multiple tree-conflicts within a given merge range? i.e. in
a given range, file alpha was removed, later added, later removed again. I'm
merging that onto another branch that has modified file alpha. For further
argument, make the "later added" an "added-with-history", so that it is
again the "exact same" file with history and all.

What do I want to see -- The first delete? The last delete? Only the "arch"
over all consecutive delete/add/delete/add operations? (As in, if the last
one was an add, process an edit, if the last one was a delete, process a
delete?)

What should `svn info' show -- the merge range given on the command line?
The revision number that tried to delete the file (whih one)?

I'm still pretty uncertain about that stuff.


My reproduction script is attached.
In the script, also note that passing the file in question as an explicit
target (instead of recursing on the parent dir) totally fails to see a
tree-conflict in the first place. It's as if the merge lost its voice.

If I don't come up with an idea soon, I'll make this a new issue.

~Neels


> Thanks for the report! So you got my message on IRC ;)
> I'll be back later, hopefully with a fix.
>
> ~Neels
>
>>    The client and server are both running svn version 1.6.2.
>>
>>    This merge completes without errors if I use svn 1.4.4 client (had  
>> that on another machine; didn't try anything in between), which  
>> suggests that this is a regression.
>>
>>    The script below will reproduce this on my system.
>>
>> -wsv
>>
>>
>> #!/usr/bin/env bash
>>
>> # Create a temporary directory
>> tmp="$(mktemp -d -t foo)";
>> cd "${tmp}";
>>
>> # Check out CalendarServer
>> svn co -r4315 http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk 
>>   CalendarServer;
>> cd CalendarServer;
>>
>> # Merge all changes on the update-twisted-3816-3 since it's creation  
>> (r4129)
>> svn merge -r4129:HEAD http://svn.calendarserver.org/repository/calendarserver/CalendarServer/branches/exarkun/update-twisted-3816-3 
>> ;
>>
>> # Print the WC path
>> echo "WC is: $(pwd)";
>>
>> ------------------------------------------------------
>> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359252
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359433
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359772
#!/bin/bash

## GENERIC PREPARATIONS

if [ -f /usr/local/bin/superpower ]; then
  # use my local way if my script is there (neels).
  echo "##### REMEMBER TO SETUP YOUR ENVIRONMENT #####"
else
  # the rest of the world:

 
  # The next line is the only line you should need to adjust.
  SVNDIR=/my/svn/trunk
 
  alias svn=${SVNDIR}/subversion/svn/svn
  alias svnserve=${SVNDIR}/subversion/svnserve/svnserve
  alias svnadmin=${SVNDIR}/subversion/svnadmin/svnadmin
fi

svn --version

# Select an access method.  If svn://, the svnserve setup is
# handled automagically by this script; but if http://, then
# you'll have to configure it yourself first.
#
# URL=http://localhost/neels/repos
URL=svn://localhost/repos
#URL=file:///`pwd`/repos

rm -rf repos wc
rm -rf wc2

svnadmin create repos

# These are for svnserve only.
echo "[general]" > repos/conf/svnserve.conf
echo "anon-access = write" >> repos/conf/svnserve.conf
echo "auth-access = write" >> repos/conf/svnserve.conf

if [ -x ./k ]; then
  ./k
fi

# The server will only be contacted if $URL is svn://foo, of course.
svnserve --pid-file svnserve-pid -d -r `pwd`
# And put the kill command in a file, in case need to run it manually.
echo "kill -9 `cat svnserve-pid`" > k
chmod a+rwx k

svn co -q ${URL} wc

set -x

## ACTUAL TEST

cd wc

mkdir trunk
echo "A" > trunk/file
svn add trunk
svn ci -m "r1"

echo "B" > trunk/file
svn ci -m "r2"

svn cp -m "r3" ^/trunk ^/branch

svn up .

echo "C" > branch/file
svn ci -m "r4"

svn rm branch/file
svn ci -m "r5"

echo "D" > branch/file
svn add branch/file
svn ci -m "r5"

echo "E" > branch/file
svn ci -m "r6"

echo "F" > trunk/file
svn ci -m "r7"

svn up .

cd trunk
range=-r3:6
svn merge $range $URL/branch .
svn diff
svn st
svn revert -R .
svn merge $range $URL/branch/file file
svn diff
svn st
svn revert -R .
svn merge --ignore-ancestry $range $URL/branch/file file
svn diff
svn st
cd ..

cd ..

## ACTUAL TEST ENDS
echo "====="



signature.asc (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: multiple tree-conflicts during merge -- was: Re: Error reading spooled REPORT request response

Neels Hofmeyr
Fix committed in r38000 and r38006.

Thanks, Wilfredo Sánchez Vega, for the report!
~Neels

Neels Janosch Hofmeyr wrote:

> Neels Janosch Hofmeyr wrote:
>> Wilfredo Sánchez Vega wrote:
>>> I'm running into this error while trying to do a merge:
>>>
>>> --- Merging r4130 through r4318 into '.':
>>> U lib-patches/Twisted/twisted.python.util.patch
>>> svn: Attempt to add tree conflict that already exists
>>> svn: Error reading spooled REPORT request response
>> Hmm, looks like a solid bug. Investigating...
>
> BTW, I successfully reproduced this issue.
> In case you're interested, it's because a deletion and addition happen in
> one merge range, onto a file that was also modified in the target branch. To
> work around it, you could merge selected ranges and resolve tree-conflicts
> after each range.
>
> But to find out which files and ranges are involved is not that simple. I've
> also been thinking about that one and might come up with a little tool soon.
>
> Anyway. I'm still struggling to find the proper fix for this issue, in *theory*.
>
> How to handle multiple tree-conflicts within a given merge range? i.e. in
> a given range, file alpha was removed, later added, later removed again. I'm
> merging that onto another branch that has modified file alpha. For further
> argument, make the "later added" an "added-with-history", so that it is
> again the "exact same" file with history and all.
>
> What do I want to see -- The first delete? The last delete? Only the "arch"
> over all consecutive delete/add/delete/add operations? (As in, if the last
> one was an add, process an edit, if the last one was a delete, process a
> delete?)
>
> What should `svn info' show -- the merge range given on the command line?
> The revision number that tried to delete the file (whih one)?
>
> I'm still pretty uncertain about that stuff.
>
>
> My reproduction script is attached.
> In the script, also note that passing the file in question as an explicit
> target (instead of recursing on the parent dir) totally fails to see a
> tree-conflict in the first place. It's as if the merge lost its voice.
>
> If I don't come up with an idea soon, I'll make this a new issue.
>
> ~Neels
>
>
>> Thanks for the report! So you got my message on IRC ;)
>> I'll be back later, hopefully with a fix.
>>
>> ~Neels
>>
>>>    The client and server are both running svn version 1.6.2.
>>>
>>>    This merge completes without errors if I use svn 1.4.4 client (had  
>>> that on another machine; didn't try anything in between), which  
>>> suggests that this is a regression.
>>>
>>>    The script below will reproduce this on my system.
>>>
>>> -wsv
>>>
>>>
>>> #!/usr/bin/env bash
>>>
>>> # Create a temporary directory
>>> tmp="$(mktemp -d -t foo)";
>>> cd "${tmp}";
>>>
>>> # Check out CalendarServer
>>> svn co -r4315 http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk 
>>>   CalendarServer;
>>> cd CalendarServer;
>>>
>>> # Merge all changes on the update-twisted-3816-3 since it's creation  
>>> (r4129)
>>> svn merge -r4129:HEAD http://svn.calendarserver.org/repository/calendarserver/CalendarServer/branches/exarkun/update-twisted-3816-3 
>>> ;
>>>
>>> # Print the WC path
>>> echo "WC is: $(pwd)";
>>>
>>> ------------------------------------------------------
>>> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359252
>> ------------------------------------------------------
>> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359433
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2359772
>
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2361473

signature.asc (204 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Re: multiple tree-conflicts during merge -- was: Re: Error reading spooled REPORT request response

jcobbers
Is this still a known issue? We observed the same behavior in:

svn, version 1.6.4 (r38063)
   compiled Aug  7 2009, 03:47:20

Error message:
svn: Attempt to add tree conflict that already exists
svn: Error reading spooled REPORT request response

Thanks

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2390249
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Re: multiple tree-conflicts during merge -- was: Re: Error reading spooled REPORT request response

Stefan Sperling
On Wed, Sep 02, 2009 at 08:07:42AM -0700, Jonathan wrote:
> Is this still a known issue? We observed the same behavior in:
>
> svn, version 1.6.4 (r38063)
>    compiled Aug  7 2009, 03:47:20
>
> Error message:
> svn: Attempt to add tree conflict that already exists
> svn: Error reading spooled REPORT request response

A fix for this is pending for 1.6.6.

If you need it now, you can get the patch like this:

svn diff http://svn.collab.net/repos/svn/branches/1.6.x@39009 \
  http://svn.collab.net/repos/svn/branches/1.6.x-r38000 > double-tc.patch

Please report any issues which remain even with this fix in place.

Stefan

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2390275
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Re: multiple tree-conflicts during merge -- was: Re: Error reading spooled REPORT request response

Thomas Peter-2
In reply to this post by Neels Hofmeyr
Hi,

I hope the reply makes it to the thread. Since I'm not subscribed and
haven't found any way (e.g. gmane) to reply to an old post...

On 2009-09-02 08:37:34 PDT, Stefan Sperling wrote:
> A fix for this is pending for 1.6.6.
>
> If you need it now, you can get the patch like this:
>
> svn diff http://svn.collab.ne?t/repos/svn/branches?/1.6.x@39009 \
>   http://svn.collab.ne?t/repos/svn/branches?/1.6.x-r38000 > double-tc.patch
>
> Please report any issues which remain even with this fix in place.

I just patched the 1.6.5 sources (official tarball):

svn, version 1.6.5 (r38866)
   compiled Sep  7 2009, 10:26:27

and got the same error:
svn: Attempt to add tree conflict that already exists
svn: Error reading spooled REPORT request response

This occures when I want to merge two branches (that hasn't been
branched from the same ancestor).

Thanks in advance
Thomas

PS: please CC: me as I'm not subscribed to the list - thnx

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2391774
Loading...