Return-Path: X-Original-To: apmail-subversion-dev-archive@minotaur.apache.org Delivered-To: apmail-subversion-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 900589D83 for ; Sun, 2 Jun 2013 15:11:14 +0000 (UTC) Received: (qmail 22475 invoked by uid 500); 2 Jun 2013 15:11:13 -0000 Delivered-To: apmail-subversion-dev-archive@subversion.apache.org Received: (qmail 22441 invoked by uid 500); 2 Jun 2013 15:11:13 -0000 Mailing-List: contact dev-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@subversion.apache.org Received: (qmail 22434 invoked by uid 99); 2 Jun 2013 15:11:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Jun 2013 15:11:12 +0000 X-ASF-Spam-Status: No, hits=0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE X-Spam-Check-By: apache.org Received-SPF: error (nike.apache.org: local policy) Received: from [195.8.89.38] (HELO claranet-outbound-smtp05.uk.clara.net) (195.8.89.38) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 02 Jun 2013 15:11:05 +0000 Received: from cpc22-rdng20-2-0-cust18.15-3.cable.virginmedia.com ([81.99.251.19]:14908 helo=shell-3.chelsea.private) by relay05.mail.eu.clara.net (relay.clara.net [213.253.3.45]:1025) with esmtpsa (authdaemon_plain:barry@barrys-emacs.org) (TLS-1.0:RSA_AES_128_CBC_SHA1:16) id 1Uj9vL-0000lc-Gx for dev@subversion.apache.org (return-path ); Sun, 02 Jun 2013 15:10:23 +0000 From: Barry Scott Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Subject: Segv in 1.8.0-rc2 used svn_client_status4 with a tree conflict Message-Id: <8192C18D-7355-4464-B004-5B5DFD8DCADE@barrys-emacs.org> Date: Sun, 2 Jun 2013 16:10:57 +0100 To: Subversion Development Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\)) X-Mailer: Apple Mail (2.1503) X-Virus-Checked: Checked by ClamAV on apache.org 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=3D0x100713f76, = result_pool=3D0x1008e4428) at subversion/libsvn_wc/util.c:354 #3 0x000000010065da47 in svn_wc__status2_from_3 (status=3D0x7fff5fbfe0f8,= old_status=3D0x1008fb138, wc_ctx=3D0x100890158, = local_abspath=3D0x1008f5d10 = "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test/file4= .txt", result_pool=3D0x1008e4428, scratch_pool=3D0x1008e4428) at = subversion/libsvn_wc/util.c:453 #4 0x000000010050edb9 in status4_wrapper_func (baton=3D0x7fff5fbfec98, = path=3D0x1008fb288 "file4.txt", status=3D0x1008fb298, = scratch_pool=3D0x1008e4428) at = subversion/libsvn_client/deprecated.c:2208 #5 0x000000010055e286 in tweak_status (baton=3D0x7fff5fbfeb70, = local_abspath=3D0x1008e44a0 = "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test/file4= .txt", status=3D0x1008fb138, scratch_pool=3D0x1008e4428) at = subversion/libsvn_client/status.c:109 #6 0x000000010064417d in send_status_structure (wb=3D0x7fff5fbfe7d0, = local_abspath=3D0x1008e44a0 = "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test/file4= .txt", parent_repos_root_url=3D0x1008b5160 = "file:///Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/repos",= parent_repos_relpath=3D0x1008b5150 "trunk/test", = parent_repos_uuid=3D0x1008b51a8 "acfe58c3-85ae-4c76-95e8-1a27ba74d63a", = info=3D0x1008b57f0, dirent=3D0x1008b4f80, get_all=3D1, = status_func=3D0x10055e120 , status_baton=3D0x7fff5fbfeb70, = scratch_pool=3D0x1008e4428) at subversion/libsvn_wc/status.c:930 #7 0x0000000100643c52 in one_child_status (wb=3D0x7fff5fbfe7d0, = local_abspath=3D0x1008e44a0 = "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test/file4= .txt", parent_abspath=3D0x1008b4250 = "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test", = info=3D0x1008b57f0, dirent=3D0x1008b4f80, dir_repos_root_url=3D0x1008b5160= = "file:///Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/repos",= dir_repos_relpath=3D0x1008b5150 "trunk/test", = dir_repos_uuid=3D0x1008b51a8 "acfe58c3-85ae-4c76-95e8-1a27ba74d63a", = unversioned_tree_conflicted=3D1, = collected_ignore_patterns=3D0x7fff5fbfe5f8, ignore_patterns=3D0x1008b4298,= depth=3Dsvn_depth_infinity, get_all=3D1, no_ignore=3D1, = status_func=3D0x10055e120 , status_baton=3D0x7fff5fbfeb70, = cancel_func=3D0, cancel_baton=3D0x0, result_pool=3D0x1008b4028, = scratch_pool=3D0x1008e4428) at subversion/libsvn_wc/status.c:1206 #8 0x0000000100641c83 in get_dir_status (wb=3D0x7fff5fbfe7d0, = local_abspath=3D0x1008b4250 = "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test", = skip_this_dir=3D0, parent_repos_root_url=3D0x0, = parent_repos_relpath=3D0x0, parent_repos_uuid=3D0x0, = dir_info=3D0x1008b4378, dirent=3D0x1008b4d60, = ignore_patterns=3D0x1008b4298, depth=3Dsvn_depth_infinity, get_all=3D1, = no_ignore=3D1, status_func=3D0x10055e120 , = status_baton=3D0x7fff5fbfeb70, cancel_func=3D0, cancel_baton=3D0x0, = scratch_pool=3D0x1008b4028) at subversion/libsvn_wc/status.c:1441 #9 0x0000000100640997 in svn_wc__internal_walk_status (db=3D0x100890170, = local_abspath=3D0x1008b4250 = "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test", = depth=3Dsvn_depth_infinity, get_all=3D1, no_ignore=3D1, = ignore_text_mods=3D0, ignore_patterns=3D0x1008b4298, = status_func=3D0x10055e120 , status_baton=3D0x7fff5fbfeb70, = cancel_func=3D0, cancel_baton=3D0x0, scratch_pool=3D0x1008b4028) at = subversion/libsvn_wc/status.c:2746 #10 0x0000000100642109 in svn_wc_walk_status (wc_ctx=3D0x100890158, = local_abspath=3D0x1008b4250 = "/Users/barry/wc/svn/pysvn-next/Extension/Tests/testroot-01/wc2/test", = depth=3Dsvn_depth_infinity, get_all=3D1, no_ignore=3D1, = ignore_text_mods=3D0, ignore_patterns=3D0x1008b4298, = status_func=3D0x10055e120 , status_baton=3D0x7fff5fbfeb70, = cancel_func=3D0, cancel_baton=3D0x0, scratch_pool=3D0x1008b4028) at = subversion/libsvn_wc/status.c:2805 #11 0x000000010055df47 in svn_client_status5 (result_rev=3D0x7fff5fbfee98,= ctx=3D0x1008900a0, path=3D0x7fff7d073588 "", revision=3D0x7fff5fbfee88, = depth=3Dsvn_depth_infinity, get_all=3D1, update=3D0, no_ignore=3D1, = ignore_externals=3D0, depth_as_sticky=3D1, changelists=3D0x0, = status_func=3D0x10050ed30 , = status_baton=3D0x7fff5fbfec98, pool=3D0x1008b4028) at = subversion/libsvn_client/status.c:574 #12 0x000000010050ed1a in svn_client_status4 (result_rev=3D0x7fff5fbfee98,= path=3D0x7fff7d073588 "", revision=3D0x7fff5fbfee88, = status_func=3D0x1010faf60 , = status_baton=3D0x7fff5fbfee78, depth=3Dsvn_depth_infinity, get_all=3D1, = update=3D0, no_ignore=3D1, ignore_externals=3D0, changelists=3D0x0, = ctx=3D0x1008900a0, pool=3D0x1008b4028) at = subversion/libsvn_client/deprecated.c:2236 #13 0x00000001010fa37b in pysvn_client::cmd_status (this=3D0x10037a110, = a_args=3D@0x7fff5fbff168, a_kws=3D@0x7fff5fbff158) at = pysvn_client_cmd_info.cpp:1321 #14 0x0000000101091846 in = Py::PythonExtension::method_keyword_call_handler = (_self_and_name_tuple=3D0x100490830, _args=3D0x100485e10, _keywords=3D0x0)= 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 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- /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 =3D NULL; return SVN_NO_ERROR; } =20 Barry