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

Re: Access violation in 1.6.0

From: Stephen Butler <sbutler_at_elego.de>
Date: Tue, 24 Mar 2009 14:46:06 +0100

Quoting Mark Phippard <markphip_at_gmail.com>:

> On Mon, Mar 23, 2009 at 12:38 PM, Stefan Küng <tortoisesvn_at_gmail.com> wrote:
>
>> The first crash reports for TSVN 1.6.0 are coming in. There's one that's
>> already reported more than once:
>>
>> in libsvn_wc\update_editor.c, line 2315
>> (function add_directory())
>>
>>  /* What to do with a versioned or schedule-add dir:
>>
>>         If the UUID doesn't match the parent's, or the URL isn't a
>>         child of the parent dir's URL, or the dir is unversioned in
>>         the parent entry, it's an error.
>>
>>         A dir already added without history is OK.  Set add_existed
>>         so that user notification is delayed until after any prop
>>         conflicts have been found.
>>
>>         An existing versioned dir is an error.  In the future we may
>>         relax this restriction and simply update such dirs.
>>
>>         A dir added with history is a tree conflict. */
>>
>>  if (strcmp(entry->uuid, parent_entry->uuid) != 0)
>>        return svn_error_createf
>>          (SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
>>           _("UUID mismatch: existing directory '%s' was checked out "
>>                 "from a different repository"),
>>           svn_path_local_style(db->path, pool));
>>
>>
>>
>> The string comparison results in an access violation, because
>> parent_entry->uuid is NULL (parent_entry points to a valid object, but
>> the uuid string is NULL)
>>
>>
>> I don't know *why* the uuid for the parent entry is NULL though...
>
> I run into nulls occasionally. Not sure if they are older WC's that
> have been upgraded to new formats but I've hard to guard against it in
> Subclipse. Same with the repository root URL.
>
> I cannot recreate this, but I swear in the past I've seen this with
> in-place imports. Basically checkout project root, add
> trunk/tags/branches and commit. Then add stuff to trunk and commit
> etc. None of the stuff has the UUID set in the WC. Like I said, I do
> not think I can recreate it now though.

Ooops, I should have read the fine manual (subversion/libsvn_wc/README)
more closely when I added the UUID sanity check. For backward
compatibility, we shouldn't assume that the UUID has been recorded
in any directory's entries.

Fixed on trunk in r36751, nominated for backport to 1.6.x.

Steve

-- 
Stephen Butler | Software Developer
elego Software Solutions GmbH
Gustav-Meyer-Allee 25 | 13355 Berlin | Germany
fon: +49 30 2345 8696 | mobile: +49 163 25 45 015
fax: +49 30 2345 8695 | http://www.elegosoft.com
Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
Received on 2009-03-24 14:46:23 CET

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

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