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

Re: svn relocate fails due to bad char at end of url_uuid->uuid

From: David Glasser <glasser_at_davidglasser.net>
Date: 2007-11-13 00:40:55 CET

On Nov 9, 2007 1:32 PM, John McNelly <john@mcnelly.org> wrote:
> I am using SVN 1.4.5.25188 (client and server). I have mirrored a
> repository, being sure to set the UUIDs to match. In order, I:
>
> svnadmin create {mirror}
> {install hooks to discourage user checkins to mirror}
> svnadmin load --force-uuid {mirror}
> svnsync init {mirror} {original}
> svnsync synchronize {mirror}
> svnadmin verify {mirror}
>
> Then I set up the mirror with svnserve, went to another machine, and
> tried to switch my trunk from the master repository to the mirror.
>
> But no matter what I try, "svn switch --relocate" gives me an error:
>
> -------
> C:\chrystal\trunk>c:\svn-win32-1.4.5\bin\svn.exe switch --relocate
> svn://delmar/trunk svn://elvis/trunk
> 'vn: The repository at 'svn://elvis' has uuid
> 'd75c9f23-f8df-ea4e-b07c-7fd4dbb7d0ff', but the WC has
> 'd75c9f23-f8df-ea4e-b07c-7fd4dbb7d0ff
> -------
>
> To digress, there's a formatting issue with the error message, both
> the first and last character are wrong:
> - first char should be "s" not "'"
> - last char should be "'"
> But BoundsChecker doesn't report any memory smashes, so I guess it's cosmetic.
>
> The main point is that the error message shows the UUIDs are the same.
>
> So I downloaded the symbols/etc, and set a breakpoint at
> libsvn_client\relocate.c (lines 104-108):
>
> /* Make sure the UUIDs match. */
> if (uuid && strcmp(uuid, url_uuid->uuid) != 0)
> return svn_error_createf
> (SVN_ERR_CLIENT_INVALID_RELOCATION, NULL,
> _("The repository at '%s' has uuid '%s', but the WC has '%s'"),
> url, uuid, url_uuid->uuid);
>
> The debugger says that uuid and url_uuid->uuid are the same, except
> that url_uuid->uuid has a trailing 0x0d (line ending). See attached
> JPG.
>
> Working backwards:
> url_uuid->uuid comes from ra_uuid (relocate.c line 93)
> ra_uuid comes from svn_ra_get_uuid (relocate.c line 93)
> at which point I got a symbols issue and stopped
>
> Is this a known issue?

Well, there's a known issues (fixed on trunk but not backported to
1.4.x; should we?) that the error message is wrong: the UUIDs are
backwards. The one reported as the server's is actually the wc's and
vice versa. So contrary to what the message looks like, what's going
on is that the *server*'s UUID is being sent with a spurious 0x0d.

Hmm. Which of the above operations were done on Windows and which on Unix?

I'm suspecting maybe this is a bug in svnadmin load --force-uuid in
some cross-platformy setup...

--dave

-- 
David Glasser | glasser_at_davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Nov 13 00:41:05 2007

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