You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Blair Zajac <bl...@orcaware.com> on 2002/06/27 15:52:31 UTC
Re: svn commit: rev 2346 - trunk/subversion/include
trunk/subversion/libsvn_wc trunk/subversion/libsvn_client
trunk/subversion/tests/clients/cmdline
Ben Collins-Sussman wrote:
>
> Blair Zajac <bl...@orcaware.com> writes:
>
> > sussman@tigris.org wrote:
> > >
> > > Author: sussman
> > > Date: Wed, 26 Jun 2002 23:34:31 -0500
> > > New Revision: 2346
> > >
> > > Issue #742: fix commits of replaced files that have props.
> > > Really, this a collection of logic fixes for property-handling when
> > > replacing files.
> >
> > This appears to break trans_tests.py. Backing down to revision 2345
> > passes trans_tests.py.
>
> Weird... I ran 'make check' before committing!
>
> And indeed, I'm running r2346 now, and all trans_tests pass for me.
>
> > % python2 ./trans_tests.py
> > * Node name: __SVN_ROOT_NODE
> > Path: __SVN_ROOT_NODE
> > Contents: None
> > Properties: {}
> > Attributes: {}
> > Children: is a file.
> > * Node name: __SVN_ROOT_NODE
> > Path: __SVN_ROOT_NODE
> > Contents: None
> > Properties: {}
> > Attributes: {}
> > Children: 1
>
> This is a "classic" output that almost always happens when svn
> segfaults in the middle of the test. Do you see a segfault message
> anywhere? Can anyone else reproduce?
Yes, there was a core file in the directory. Below is the stack trace.
Shouldn't the test suite check for core dumps and non-zero exit status
from svn commands? Or can this not be done in a OS portable way?
Blair
--
Blair Zajac <bl...@orcaware.com>
Web and OS performance plots - http://www.orcaware.com/orca/
#0 svn_io_check_path (path=0x13 <Address 0x13 out of bounds>, kind=0x80574e0,
pool=0x80574e0) at subversion/libsvn_subr/io.c:59
59 if (path[0] == '\0')
(gdb) bt
#0 svn_io_check_path (path=0x13 <Address 0x13 out of bounds>, kind=0x80574e0,
pool=0x80574e0) at subversion/libsvn_subr/io.c:59
#1 0x400320a3 in svn_wc__load_prop_file (propfile_path=0x13 <Address 0x13 out
of bounds>, hash=0x8081028, pool=0x80574e0) at subversion/libsvn_wc/props.c:234
#2 0x40028ba1 in svn_wc_transmit_prop_deltas (path=0x8062510
"/export/amanda/blair/s/subversion/tests/clients/cmdline/working_copies/trans_tests-1/embd_author_rev_exp",
entry=0x8080388, editor=0x80636b0, baton=0x8083980, tempfile=0xbfffee50,
pool=0x80574e0) at subversion/libsvn_wc/adm_crawler.c:648
#3 0x4001b2d3 in do_item_commit (url=0x8062fa0 "embd_author_rev_exp",
item=0x80624f8, editor=0x80636b0, db_stack=0x80638e0, stack_ptr=0xbfffeef8,
file_mods=0x8063808, tempfiles=0x8063868, notify_func=0x804ae24 <notify>,
notify_baton=0x80590d0, notify_path_offset=-1073746504, pool=0x80574e0)
at subversion/libsvn_client/commit_util.c:863
#4 0x4001b6d1 in svn_client__do_commit (base_url=0x8062f08
"file:///export/amanda/blair/s/subversion/tests/clients/cmdline/repositories/current-repo",
commit_items=0x80624c0, editor=0x80636b0, edit_baton=0x805e5d8,
notify_func=0x804ae24 <notify>, notify_baton=0x80590d0,
notify_path_offset=56, tempfiles=0xbfffef6c, pool=0x80574e0)
at subversion/libsvn_client/commit_util.c:1025
#5 0x4001a089 in svn_client_commit (commit_info=0x0, notify_func=0x804ae24
<notify>, notify_baton=0x80590d0, auth_baton=0x80577d0, targets=0x80624c0,
log_msg_func=0x804e644 <svn_cl__get_log_message>, log_msg_baton=0x80590e8,
xml_dst=0x0, revision=-1, nonrecursive=0, pool=0x80574e0)
at subversion/libsvn_client/commit.c:895
#6 0x0804a7c9 in svn_cl__commit (os=0x8057640, opt_state=0xbffff140,
pool=0x80574e0) at subversion/clients/cmdline/commit-cmd.c:100
#7 0x0804c87c in main (argc=0, argv=0xbffff234) at
subversion/clients/cmdline/main.c:1152
#8 0x42017589 in __libc_start_main () from /lib/i686/libc.so.6
(gdb)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: svn commit: rev 2346 - trunk/subversion/include trunk/subversion/libsvn_wc trunk/subversion/libsvn_client trunk/subversion/tests/clients/cmdline
Posted by Ben Collins-Sussman <su...@collab.net>.
Ben Collins-Sussman <su...@collab.net> writes:
> Oop, yeah, I see the bug. My fault, thanks. I'm possibly using an
> uninitialized variable... I'm just lucky that it hasn't yet segfaulted
> on my box. One patch coming right up.
Blair, since I can't reproduce the bug, will you try this patch for
me? If it works, please commit it.
Index: subversion/libsvn_wc/adm_crawler.c
===================================================================
--- subversion/libsvn_wc/adm_crawler.c
+++ subversion/libsvn_wc/adm_crawler.c Thu Jun 27 11:03:21 2002
@@ -629,6 +629,7 @@
/* do nothing: baseprop hash should be -empty- for comparison
purposes. if they already exist on disk, they're "leftover"
from the old file that was replaced. */
+ props_base = NULL;
}
else
/* the real prop-base hash */
@@ -645,7 +646,8 @@
/* Load all properties into hashes */
SVN_ERR (svn_wc__load_prop_file (props_tmp, localprops, pool));
- SVN_ERR (svn_wc__load_prop_file (props_base, baseprops, pool));
+ if (props_base)
+ SVN_ERR (svn_wc__load_prop_file (props_base, baseprops, pool));
/* Get an array of local changes by comparing the hashes. */
SVN_ERR (svn_wc_get_local_propchanges (&propmods, localprops,
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: svn commit: rev 2346 - trunk/subversion/include trunk/subversion/libsvn_wc trunk/subversion/libsvn_client trunk/subversion/tests/clients/cmdline
Posted by Ben Collins-Sussman <su...@collab.net>.
Blair Zajac <bl...@orcaware.com> writes:
> Yes, there was a core file in the directory. Below is the stack trace.
>
> Shouldn't the test suite check for core dumps and non-zero exit status
> from svn commands? Or can this not be done in a OS portable way?
Well, when our tests run 'svntest.main.run_svn()', we normally invoke
it like this:
outlines, errlines = svntest.main.run_svn(.....)
if errlines:
return 1
But not all our tests do this all the time. But looking at trans_test
#1, I see even bigger bugs... like the fact that it's calling
run_and_verify_status without checking *any* return value at all!
Ugh.
> #0 svn_io_check_path (path=0x13 <Address 0x13 out of bounds>, kind=0x80574e0,
> pool=0x80574e0) at subversion/libsvn_subr/io.c:59
> 59 if (path[0] == '\0')
> (gdb) bt
> #0 svn_io_check_path (path=0x13 <Address 0x13 out of bounds>, kind=0x80574e0,
> pool=0x80574e0) at subversion/libsvn_subr/io.c:59
> #1 0x400320a3 in svn_wc__load_prop_file (propfile_path=0x13 <Address 0x13 out
> of bounds>, hash=0x8081028, pool=0x80574e0) at subversion/libsvn_wc/props.c:234
> #2 0x40028ba1 in svn_wc_transmit_prop_deltas (path=0x8062510
> "/export/amanda/blair/s/subversion/tests/clients/cmdline/working_copies/trans_tests-1/embd_author_rev_exp",
Oop, yeah, I see the bug. My fault, thanks. I'm possibly using an
uninitialized variable... I'm just lucky that it hasn't yet segfaulted
on my box. One patch coming right up.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org