You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "C. Michael Pilato" <cm...@collab.net> on 2009/08/05 14:40:59 UTC
trunk and 1.6.x leaking errors
I noticed today that my 1.6.x client (built from the tip-o-the-branch) was
leaking errors. (The tell-tale "Aborted" message at the end of an operation
was a dead giveaway.) I tracked the leak to the function
subversion/libsvn_client/commit_util.c:bail_on_tree_conflicted_ancestor(),
which totally drops errors from both svn_wc__strictly_is_wc_root() and
svn_wc_conflicted_p2(). (In this case, it was the former function that was
returning the leaked error.) And I confirmed that the trunk code has the
same problems.
The naive fix, however (just wrapping these calls in SVN_ERR()) makes me
think that doing this correctly requires more than mere naivety. A simple
commit with said fix results in:
subversion/libsvn_wc/update_editor.c:5147: (apr_err=150004)
svn: '/home/cmpilato/tests' has no ancestry information
Does this mean anything to anyone? Is it an acceptable error to ignore?
The recipe is easy enough:
$ svnadmin create repos
$ svn co file://`pwd`/repos wc
Checked out revision 0.
$ touch wc/file
$ svn add wc/file
A wc/file
$ svn ci -m "" wc
subversion/libsvn_wc/update_editor.c:5147: (apr_err=150004)
svn: '/home/cmpilato/tests' has no ancestry information
$
Thoughts?
--
C. Michael Pilato <cm...@collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2380483
Re: trunk and 1.6.x leaking errors
Posted by "C. Michael Pilato" <cm...@collab.net>.
C. Michael Pilato wrote:
> I noticed today that my 1.6.x client (built from the tip-o-the-branch) was
> leaking errors. (The tell-tale "Aborted" message at the end of an operation
> was a dead giveaway.) I tracked the leak to the function
> subversion/libsvn_client/commit_util.c:bail_on_tree_conflicted_ancestor(),
> which totally drops errors from both svn_wc__strictly_is_wc_root() and
> svn_wc_conflicted_p2(). (In this case, it was the former function that was
> returning the leaked error.) And I confirmed that the trunk code has the
> same problems.
>
> The naive fix, however (just wrapping these calls in SVN_ERR()) makes me
> think that doing this correctly requires more than mere naivety. A simple
> commit with said fix results in:
>
> subversion/libsvn_wc/update_editor.c:5147: (apr_err=150004)
> svn: '/home/cmpilato/tests' has no ancestry information
This turned out to be due to some weirdness in my directories.
I have /home/cmpilato under version control. I had /home/cmpilato/tests
scheduled for addition as a file. But /home/cmpilato/tests was a
*directory*. This was causing all kinds of confusing to the code in
Subversion which crawls upwards trying to identify working copy roots.
With that situation resolved, my testing shows no problems. Both trunk and
the 1.6.x branch pass 'make check' with the naive SVN_ERR()-wrapping fix in
place.
--
C. Michael Pilato <cm...@collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2380946