subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Barry Scott <ba...@barrys-emacs.org>
Subject Segv in 1.8.0-rc2 used svn_client_status4 with a tree conflict
Date Sun, 02 Jun 2013 15:10:57 GMT
I found this while running the pysvn regression tests against svn 1.8.0-rc2.

I get the following segv back trace:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x0000000000000000
0x00007fff918076b0 in strlen ()
(gdb) bt
#0  0x00007fff918076b0 in strlen ()
#1  0x000000010144e1a2 in apr_pstrdup ()
#2  0x000000010065d5f9 in svn_wc__cd2_to_cd (conflict=0x100713f76, result_pool=0x1008e4428)
at subversion/libsvn_wc/util.c:354
#3  0x000000010065da47 in svn_wc__status2_from_3 (status=0x7fff5fbfe0f8, old_status=0x1008fb138,
wc_ctx=0x100890158, local_abspath=0x1008f5d10 "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test/file4.txt",
result_pool=0x1008e4428, scratch_pool=0x1008e4428) at subversion/libsvn_wc/util.c:453
#4  0x000000010050edb9 in status4_wrapper_func (baton=0x7fff5fbfec98, path=0x1008fb288 "file4.txt",
status=0x1008fb298, scratch_pool=0x1008e4428) at subversion/libsvn_client/deprecated.c:2208
#5  0x000000010055e286 in tweak_status (baton=0x7fff5fbfeb70, local_abspath=0x1008e44a0 "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test/file4.txt",
status=0x1008fb138, scratch_pool=0x1008e4428) at subversion/libsvn_client/status.c:109
#6  0x000000010064417d in send_status_structure (wb=0x7fff5fbfe7d0, local_abspath=0x1008e44a0
"/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test/file4.txt", parent_repos_root_url=0x1008b5160
"file:///Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/repos", parent_repos_relpath=0x1008b5150
"trunk/test", parent_repos_uuid=0x1008b51a8 "acfe58c3-85ae-4c76-95e8-1a27ba74d63a", info=0x1008b57f0,
dirent=0x1008b4f80, get_all=1, status_func=0x10055e120 <tweak_status>, status_baton=0x7fff5fbfeb70,
scratch_pool=0x1008e4428) at subversion/libsvn_wc/status.c:930
#7  0x0000000100643c52 in one_child_status (wb=0x7fff5fbfe7d0, local_abspath=0x1008e44a0 "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test/file4.txt",
parent_abspath=0x1008b4250 "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test",
info=0x1008b57f0, dirent=0x1008b4f80, dir_repos_root_url=0x1008b5160 "file:///Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/repos",
dir_repos_relpath=0x1008b5150 "trunk/test", dir_repos_uuid=0x1008b51a8 "acfe58c3-85ae-4c76-95e8-1a27ba74d63a",
unversioned_tree_conflicted=1, collected_ignore_patterns=0x7fff5fbfe5f8, ignore_patterns=0x1008b4298,
depth=svn_depth_infinity, get_all=1, no_ignore=1, status_func=0x10055e120 <tweak_status>,
status_baton=0x7fff5fbfeb70, cancel_func=0, cancel_baton=0x0, result_pool=0x1008b4028, scratch_pool=0x1008e4428)
at subversion/libsvn_wc/status.c:1206
#8  0x0000000100641c83 in get_dir_status (wb=0x7fff5fbfe7d0, local_abspath=0x1008b4250 "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test",
skip_this_dir=0, parent_repos_root_url=0x0, parent_repos_relpath=0x0, parent_repos_uuid=0x0,
dir_info=0x1008b4378, dirent=0x1008b4d60, ignore_patterns=0x1008b4298, depth=svn_depth_infinity,
get_all=1, no_ignore=1, status_func=0x10055e120 <tweak_status>, status_baton=0x7fff5fbfeb70,
cancel_func=0, cancel_baton=0x0, scratch_pool=0x1008b4028) at subversion/libsvn_wc/status.c:1441
#9  0x0000000100640997 in svn_wc__internal_walk_status (db=0x100890170, local_abspath=0x1008b4250
"/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test", depth=svn_depth_infinity,
get_all=1, no_ignore=1, ignore_text_mods=0, ignore_patterns=0x1008b4298, status_func=0x10055e120
<tweak_status>, status_baton=0x7fff5fbfeb70, cancel_func=0, cancel_baton=0x0, scratch_pool=0x1008b4028)
at subversion/libsvn_wc/status.c:2746
#10 0x0000000100642109 in svn_wc_walk_status (wc_ctx=0x100890158, local_abspath=0x1008b4250
"/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test", depth=svn_depth_infinity,
get_all=1, no_ignore=1, ignore_text_mods=0, ignore_patterns=0x1008b4298, status_func=0x10055e120
<tweak_status>, status_baton=0x7fff5fbfeb70, cancel_func=0, cancel_baton=0x0, scratch_pool=0x1008b4028)
at subversion/libsvn_wc/status.c:2805
#11 0x000000010055df47 in svn_client_status5 (result_rev=0x7fff5fbfee98, ctx=0x1008900a0,
path=0x7fff7d073588 "", revision=0x7fff5fbfee88, depth=svn_depth_infinity, get_all=1, update=0,
no_ignore=1, ignore_externals=0, depth_as_sticky=1, changelists=0x0, status_func=0x10050ed30
<status4_wrapper_func>, status_baton=0x7fff5fbfec98, pool=0x1008b4028) at subversion/libsvn_client/status.c:574
#12 0x000000010050ed1a in svn_client_status4 (result_rev=0x7fff5fbfee98, path=0x7fff7d073588
"", revision=0x7fff5fbfee88, status_func=0x1010faf60 <StatusEntriesFunc>, status_baton=0x7fff5fbfee78,
depth=svn_depth_infinity, get_all=1, update=0, no_ignore=1, ignore_externals=0, changelists=0x0,
ctx=0x1008900a0, pool=0x1008b4028) at subversion/libsvn_client/deprecated.c:2236
#13 0x00000001010fa37b in pysvn_client::cmd_status (this=0x10037a110, a_args=@0x7fff5fbff168,
a_kws=@0x7fff5fbff158) at pysvn_client_cmd_info.cpp:1321
#14 0x0000000101091846 in Py::PythonExtension<pysvn_client>::method_keyword_call_handler
(_self_and_name_tuple=0x100490830, _args=0x100485e10, _keywords=0x0)

The problem can be traced to a bug in svn_wc__get_tree_conflict failed to init tree_conflict
on
all error paths.

Index: /Users/barry/wc/svn/svn-1.8.x/subversion/libsvn_wc/tree_conflicts.c
===================================================================
--- /Users/barry/wc/svn/svn-1.8.x/subversion/libsvn_wc/tree_conflicts.c	(revision 1484244)
+++ /Users/barry/wc/svn/svn-1.8.x/subversion/libsvn_wc/tree_conflicts.c	(working copy)
@@ -506,6 +506,7 @@
           return SVN_NO_ERROR;
         }
     }
+  *tree_conflict = NULL;
   return SVN_NO_ERROR;
 }
 
Barry


Mime
View raw message