Bringing this from users@ to dev@.

Rolf Campbell discovered an assertion failure that I think might shed
some light on other assertion failures we've been hearing about from
time to time.

> ---------- Forwarded message ---------
> From: Rolf Campbell <rolf.campb...@solace.com>
> Date: Thu, Dec 2, 2021 at 3:29 PM
> Subject: Re: Can't create temporary file from template ... No such file or 
> directory
> To: Nathan Hartman <hartman.nat...@gmail.com>
> Cc: us...@subversion.apache.org <us...@subversion.apache.org>
>
>
> Hello Nathan,
>
> Thank you for the reply.
>
> I assure you that it was not related to disk space.  I tried it on 3 
> different computers using 2 different versions of SVN.
>
> I tried to create a reproduction script and instead I caused the svn client 
> to crash.
>
> Here is my script:
>
> svnadmin create test
> svn checkout file://$PWD/test test.1
> cd test.1
> svn mkdir ^/trunk -m ""
> svn mkdir ^/branches -m ""
> touch a
> svn add a
> svn commit -m ""
> svn cp ^/trunk ^/branches/b -m ""
> svn mkdir ^/trunk/c -m ""
> svn mkdir ^/trunk/c/d -m ""
> svn mkdir ^/branches/b/c -m ""
> svn mkdir ^/branches/b/c/e -m ""
> cd ..
> svn co file://$PWD/test/branches/b
> cd b
> svn merge ^/trunk .
>
> And here is the output when I try it (multiple times):
> --- Merging r4 through r8 into '.':
>    C c
>    A c/d
> --- Recording mergeinfo for merge of r4 through r8 into '.':
>  U   .
> Summary of conflicts:
>   Tree conflicts: 1
> Searching tree conflict details for 'c' in repository:
> Checking r5... done
> Tree conflict on 'c':
> A new directory appeared during merge of
> '^/trunk/c:4-8'.
> It was added by rcampbell in r5.
> A directory which already occupies this path was found in the working copy.
> Select: (p) Postpone, (r) Mark as resolved, (i) Ignore incoming addition,
>         (m) Merge the directories,
>         (R) Delete my directory and replace it with incoming directory,
>         (M) Replace and merge, (h) Help, (q) Quit resolution: m
> svn: E235000: In file 'subversion/libsvn_wc/adm_ops.c' line 384: assertion 
> failed (!copyfrom_url || (svn_uri_is_canonical(copyfrom_url, scratch_pool) && 
> SVN_IS_VALID_REVNUM(copyfrom_rev)))
> Aborted (core dumped)


It's not dumping core on mine. I would like to debug this properly but
am running into various nonsense. For example, I haven't figured out
how to run it under gdb since svn is being called through the libtool
script; if I configure with --disable-shared the build fails. Sorry,
I don't have the details atm. I'll have to rerun it later. Out of time
for today but I will try to resolve these issues soon.

What I do know so far is the reason that check_can_add_node() fails
the assertion check: copyfrom_url is not canonical. When I run the
above repro script at /home/nate/ramdrive, the non-canonical URL is
"file:///home/nate/ramdrive/test/".

Cheers,
Nathan

Reply via email to