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

RE: Access Violation with 'svn status -u'

From: Bert Huijben <bert_at_qqmail.nl>
Date: Tue, 10 Jan 2012 19:07:32 +0100

> -----Original Message-----
> From: Philip Martin [mailto:philip.martin_at_wandisco.com]
> Sent: dinsdag 10 januari 2012 17:34
> To: Manfred Klug
> Cc: dev_at_subversion.apache.org
> Subject: Re: Access Violation with 'svn status -u'
>
> "Manfred Klug" <manklu_at_web.de> writes:
>
> > svn st -u
> > ==> Access Violation
>
> Simplified recipe:
>
> svnadmin create repo
> svn import -mm repo/format file://$PWD/repo/A/f
> svn co -r0 file://$PWD/repo wc
> svn mkdir wc/A
> svn st -u wc
>
> That's obviously a bug. It's crashing in make_file_baton:
>
> f->repos_relpath = svn_relpath_join(find_dir_repos_relpath(pb, pool),
> f->name, pool);
>
> when find_dir_repos_relpath returns NULL. We could set f->repos_relpath
> to NULL, which matched what happens for the directory baton for A, but
> is that correct? find_dir_repos_relpath is returning NULL because the
> "obstructing" A is not versioned, although there is an A in the
> repository. I'm not sure what repos_relpath is supposed to represent
> here. Is it the repository path associated with the name in the
> repository, or the repository path associated with the node in wc.db?

It should be the repository root relative path of the node, which is not
used by svn, but *is* used by several other clients. Subclipse was the first
client to notice this problem as seen in the log message you mailed.

The same crash (or a related one) was reported about a week ago in the
'crash fetching status' thread.

        Bert
>
> This is related to:
>
> r1181609 | rhuijben | 2011-10-11 03:32:16 +0100 (Tue, 11 Oct 2011) | 14
lines
>
> Revert the removal of the calculations of repository paths of remotely
added
> nodes in r953751, by reintroducing similar code using repository relative
> paths.
>
> This should fix the javahl test failure recently introduced by markphip.
>
> * subversion/libsvn_wc/status.c
> (dir_baton, file_baton): Add repos_relpath field.
> (tweak_statushash): Fill repos_relpath from baton if not already read
from
> the working copy.
> (make_dir_baton, make_file_baton): Calculate and store repos_relpath.
>
> Found by: markphip
> philip
>
>
> --
> uberSVN: Apache Subversion Made Easy
> http://www.uberSVN.com
Received on 2012-01-10 19:08:46 CET

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