You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Arthur Shipkowski <ar...@videon-central.com> on 2009/04/24 19:22:18 UTC

Another merge segfault

I've been observing a segfault during an "svn merge" operation under
1.6.1 (running x86_64 Linux, though I've also reproduced it under 32-bit
Linux; the repository in question is has not friendly to Windows for a
third comparison).

It appears that in find_nearest_ancestor at line 2205, child is getting
 a NULL pointer out of children_with_mergeinfo even though i is less
than nelts. Two lines later it's dereferenced, and the segfault occurs.

Here's the backtrace from gdb:

#0  0x00007f68cbe824f9 in find_nearest_ancestor (
    children_with_mergeinfo=0x1d87588, path_is_own_ancestor=0,
    path=0x1d89268 "AltiBDJ-linux-x86")
    at subversion/libsvn_client/merge.c:2207
#1  0x00007f68cbe84f25 in drive_merge_report_editor (
    target_wcpath=0x42f598 "",
    url1=0x29ff518
"http://svn.videon-central.com/software/trunk/vdvd/zambezi",
revision1=1684,
    url2=0x29ff518
"http://svn.videon-central.com/software/trunk/vdvd/zambezi",
revision2=1695, children_with_mergeinfo=0x1d87588,
depth=svn_depth_infinity,
    notify_b=0x7fffd42bd900, adm_access=0x1d89a68,
callbacks=0x7f68cc0a3ca0,
    merge_b=0x7fffd42bd960, pool=0x7a330d8)
    at subversion/libsvn_client/merge.c:3816
#2  0x00007f68cbe89824 in do_directory_merge (
    url1=0x29ff480
"http://svn.videon-central.com/software/vendor/intel/canmore/current",
revision1=6,
    url2=0x29ff518
"http://svn.videon-central.com/software/trunk/vdvd/zambezi",
revision2=2354, target_entry=0x1d89b80, adm_access=0x1d89a68,
    depth=svn_depth_infinity, notify_b=0x7fffd42bd900,
merge_b=0x7fffd42bd960,
    pool=0x1d87508) at subversion/libsvn_client/merge.c:6131
#3  0x00007f68cbe8ac46 in do_merge (merge_sources=0x73755a8,
    target=0x42f598 "", target_entry=0x1d89b80, adm_access=0x1d89a68,
    sources_ancestral=1, sources_related=1, same_repos=1,
ignore_ancestry=0,
    force=0, dry_run=0, record_only=0, depth=svn_depth_infinity,
    merge_options=0x0, use_sleep=0x7fffd42bdb34, ctx=0x1d6ab80,
pool=0x1d6a228)
    at subversion/libsvn_client/merge.c:6687
#4  0x00007f68cbe8e0fc in svn_client_merge_peg3 (
    source=0x1d89828
"http://svn.videon-central.com/software/trunk/vdvd/zambezi",
ranges_to_merge=0x1d89938, peg_revision=0x7fffd42bdc90,
    target_wcpath=0x42f598 "", depth=svn_depth_unknown, ignore_ancestry=0,
    force=0, record_only=0, dry_run=0, merge_options=0x0, ctx=0x1d6ab80,
    pool=0x1d6a228) at subversion/libsvn_client/merge.c:8056
#5  0x0000000000411dd8 in svn_cl__merge (os=0x1d6a480,
baton=0x7fffd42bdee0,
    pool=0x1d6a228) at subversion/svn/merge-cmd.c:307
#6  0x0000000000411314 in main (argc=3, argv=0x7fffd42be238)
    at subversion/svn/main.c:2123

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1896861

Re: Another merge segfault

Posted by Paul Burba <pt...@gmail.com>.
On Mon, Apr 27, 2009 at 3:32 PM, Russell
Yanofsky<ru...@videon-central.com> wrote:
> Arthur Shipkowski wrote:
>> I've been observing a segfault during an "svn merge" operation under
>> 1.6.1 (running x86_64 Linux, though I've also reproduced it under 32-bit
>> Linux; the repository in question is has not friendly to Windows for a
>> third comparison).
>>
>> It appears that in find_nearest_ancestor at line 2205, child is getting
>>  a NULL pointer out of children_with_mergeinfo even though i is less
>> than nelts. Two lines later it's dereferenced, and the segfault occurs.
>
> Attaching fix for svn 1.6.1. Looks like this is already fixed a
> different way in the trunk.

As Russ said this was fixed another way on trunk, see r36613, r36615,
and r36631.  These fixes are included in the recent 1.6.2 release of
Subversion.

Paul

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2360991


Re: Another merge segfault

Posted by Russell Yanofsky <ru...@videon-central.com>.
Arthur Shipkowski wrote:
> I've been observing a segfault during an "svn merge" operation under
> 1.6.1 (running x86_64 Linux, though I've also reproduced it under 32-bit
> Linux; the repository in question is has not friendly to Windows for a
> third comparison).
> 
> It appears that in find_nearest_ancestor at line 2205, child is getting
>  a NULL pointer out of children_with_mergeinfo even though i is less
> than nelts. Two lines later it's dereferenced, and the segfault occurs. 

Attaching fix for svn 1.6.1. Looks like this is already fixed a
different way in the trunk.

- Russ

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1951038