[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: assertion failed / segfault in svn_ra_do_diff3

From: Mikhail Veltishchev <dichlofos-mv_at_yandex.ru>
Date: Mon, 23 Jun 2014 14:17:37 +0400

Oops, my bad! You're absolutely right, that was 'svn diff' command. And this mistake was the reason of crash 'disappearing': after that I built svn 1.8.9 from sources and got the same crash again, so it is reproducible.

Here is a backtrace for `svn diff -r 1403046 ..` invocation:
http://pastebin.com/DkfRVZmP.

svn, version 1.8.9 (r1591380)
   compiled Jun 20 2014, 23:36:08 on x86_64-unknown-linux-gnu

Built using gcc 4.7.2:
gcc (Ubuntu/Linaro 4.7.2-2ubuntu2) 4.7.2

23.06.2014, 13:18, "Bert Huijben" <bert_at_qqmail.nl>:
>> š-----Original Message-----
>> šFrom: Mikhail Veltishchev [mailto:dichlofos-mv_at_yandex.ru]
>> šSent: vrijdag 20 juni 2014 20:41
>> šTo: users_at_subversion.apache.org
>> šSubject: assertion failed / segfault in svn_ra_do_diff3
>>
>> šI recently caught a segfault / assertion fail in svn client.
>>
>> šsvn, version 1.8.5 (r1542147)
>> ššššcompiled Dec š2 2013, 21:40:18 on x86_64-unknown-linux-gnu (built from
>> šsources on Ubuntu 12.04 LTS)
>>
>> šIt was a reproducible segfault at command something like that
>> šsvn up -r XXXXXXX ..
>>
>> šHere is a backtrace, all coredumps are saved for future analysis.
>>
>> š0x00007f58656ee425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
>> š#1 š0x00007f58656f1b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
>> š#2 š0x00007f5865efcabe in svn_error_abort_on_malfunction
>> š(can_return=<optimized out>, file=<optimized out>, line=<optimized out>,
>> šexpr=<optimized out>) at subversion/libsvn_subr/error.c:722
>> š#3 š0x00007f58665f6cdd in svn_ra_do_diff3 (session=0x1c83770,
>> šreporter=0x7fff6cc76f48, report_baton=0x7fff6cc76f98, revision=1403046,
>> šdiff_target=<optimized out>, depth=<optimized out>, ignore_ancestry=1,
>> štext_deltas=1, versus
>> š_url=0x1bf41e8
>> š"svn+ssh://arcadia.yandex.ru/arc/trunk/arcadia/yweb/robot/queuer",
>> šdiff_editor=0x1bf48c8, diff_baton=0x1bf4948, pool=0x1bf3228) at
>> šsubversion/libsvn_ra/ra_loader.c:870
>> š#4 š0x00007f5866ad0d73 in diff_repos_wc
>> š(path_or_url1=path_or_url1_at_entry=0x1c41b10 "..",
>> šrevision1=revision1_at_entry=0x7fff6cc77568,
>> špeg_revision=peg_revision_at_entry=0x7fff6cc773b0,
>> špath2=path2_at_entry=0x1c41b10 "..", reverse=rever
>> šse_at_entry=0, depth=depth_at_entry=svn_depth_unknown,
>> šignore_ancestry=ignore_ancestry_at_entry=1,
>> šshow_copies_as_adds=show_copies_as_adds_at_entry=0,
>> šuse_git_diff_format=use_git_diff_format_at_entry=0,
>> šchangelists=changelists_at_entry=0x1bed79
>> š0, callbacks=callbacks_at_entry=0x7f5866d0acc0 <diff_callbacks>,
>> šcallback_baton=callback_baton_at_entry=0x7fff6cc77190,
>> šcmd_baton=cmd_baton_at_entry=0x7fff6cc77190, ctx=ctx_at_entry=0x1bee980,
>> šscratch_pool=scratch_pool_at_entry=0x1bf3228, re
>> švision2=0x7fff6cc77578) at subversion/libsvn_client/diff.c:2027
>> š#5 š0x00007f5866ad22d5 in do_diff
>> š(callback_baton=callback_baton_at_entry=0x7fff6cc77190,
>> šctx=ctx_at_entry=0x1bee980, path_or_url1=path_or_url1_at_entry=0x1c41b10
>> š"..", path_or_url2=path_or_url2_at_entry=0x1c41b10 "..", revision1=revision
>> š1_at_entry=0x7fff6cc77568, revision2=revision2_at_entry=0x7fff6cc77578,
>> špeg_revision=peg_revision_at_entry=0x7fff6cc773b0,
>> šdepth=depth_at_entry=svn_depth_unknown,
>> šignore_ancestry=ignore_ancestry_at_entry=1,
>> šshow_copies_as_adds=show_copies_as
>> š_adds_at_entry=0, use_git_diff_format=use_git_diff_format_at_entry=0,
>> šchangelists=changelists_at_entry=0x1bed790, pool=pool_at_entry=0x1bf3228,
>> šcallbacks=0x7f5866d0acc0 <diff_callbacks>) at
>> šsubversion/libsvn_client/diff.c:2090
>> š#6 š0x00007f5866ad3b9a in svn_client_diff_peg6
>> š(options=options_at_entry=0x0, path_or_url=0x1c41b10 "..",
>> špeg_revision=peg_revision_at_entry=0x7fff6cc773b0,
>> šstart_revision=start_revision_at_entry=0x7fff6cc77568,
>> šend_revision=end_revisi
>> šon_at_entry=0x7fff6cc77578, relative_to_dir=relative_to_dir_at_entry=0x0,
>> šdepth=svn_depth_unknown, ignore_ancestry=1, no_diff_added=0,
>> šno_diff_deleted=0,
>> šshow_copies_as_adds=show_copies_as_adds_at_entry=0,
>> šignore_content_type=0, ignore
>> š_properties=ignore_properties_at_entry=0, properties_only=0,
>> šuse_git_diff_format=0, header_encoding=0x1 <error: Cannot access
>> šmemory at address 0x1>, outstream=outstream_at_entry=0x1c418d0,
>> šerrstream=errstream_at_entry=0x1c419a0, chang
>> šelists=0x1bed790, ctx=ctx_at_entry=0x1bee980, pool=pool_at_entry=0x1bf3228)
>> šat subversion/libsvn_client/diff.c:2677
>> š#7 š0x000000000040bc59 in svn_cl__diff (os=<optimized out>,
>> šbaton=<optimized out>, pool=0x1bed1f8) at subversion/svn/diff-cmd.c:441
>> š#8 š0x000000000041ad13 in sub_main (argc=argc_at_entry=5,
>> šargv=argv_at_entry=0x7fff6cc77878, pool=pool_at_entry=0x1bed1f8) at
>> šsubversion/svn/svn.c:2878
>> š#9 š0x0000000000406c5d in main (argc=5, argv=0x7fff6cc77878) at
>> šsubversion/svn/svn.c:2969
>
> This stacktrace is for some invocation of 'svn diff'. There is no way you
> can get this for an invocation of 'svn update'
> (Update doesn't use any of the UI level diff logic)
>
> So either you are using bad debug symbols, or you are mixing different
> problems.
>> šHere is an locals info for svn_ra_do_diff3 call:
>>
>> š#4 š0x00007f5866ad0d73 in diff_repos_wc
>> š(path_or_url1=path_or_url1_at_entry=0x1c41b10 "..",
>> šrevision1=revision1_at_entry=0x7fff6cc77568,
>> špeg_revision=peg_revision_at_entry=0x7fff6cc773b0,
>> špath2=path2_at_entry=0x1c41b10 "..", reverse=rever
>> šse_at_entry=0, depth=depth_at_entry=svn_depth_unknown,
>> šignore_ancestry=ignore_ancestry_at_entry=1,
>> šshow_copies_as_adds=show_copies_as_adds_at_entry=0,
>> šuse_git_diff_format=use_git_diff_format_at_entry=0,
>
> This is another reference to 'svn diff'
>
> Git diff format is a UI level diff support flag, which was also abused for
> the working copy walker in 1.8, but it is unrelated to svn update.
>> šchangelists=changelists_at_entry=0x1bed79
>> š0, callbacks=callbacks_at_entry=0x7f5866d0acc0 <diff_callbacks>,
>> šcallback_baton=callback_baton_at_entry=0x7fff6cc77190,
>> šcmd_baton=cmd_baton_at_entry=0x7fff6cc77190, ctx=ctx_at_entry=0x1bee980,
>> šscratch_pool=scratch_pool_at_entry=0x1bf3228, re
>> švision2=0x7fff6cc77578) at subversion/libsvn_client/diff.c:2027
>> š(gdb) info locals
>> šsvn_err__temp = <optimized out>
>> šurl1 = 0x1bf41e8
>> š"svn+ssh://arcadia.yandex.ru/arc/trunk/arcadia/yweb/robot/queuer"
>> šanchor = 0x1bf3cd8 ""
>> šanchor_url = 0x1bf40d8
>> š"svn+ssh://arcadia.yandex.ru/arc/trunk/arcadia/yweb/robot/queuer/dump
>> šdups"
>> štarget = 0x1bf3ce0 ".."
>> šrev = 1403046
>> šra_session = 0x1c83770
>> šdiff_depth = svn_depth_unknown
>> šreporter = <optimized out>
>> šreporter_baton = <optimized out>
>> šdiff_editor = 0x1bf48c8
>> šdiff_edit_baton = 0x1bf4948
>> šrev2_is_base = 0
>> šserver_supports_depth = 1
>> šabspath_or_url1 = 0x1bf3420
>> š"/fasthd/mvel/trunk/arcadia/yweb/robot/queuer"
>> šabspath2 = 0x1bf3ac8 "/fasthd/mvel/trunk/arcadia/yweb/robot/queuer"
>> šanchor_abspath = 0x1bf3e18
>> š"/fasthd/mvel/trunk/arcadia/yweb/robot/queuer/dumpdups"
>> škind1 = svn_node_dir
>> škind2 = svn_node_dir
>> šis_copy = 0
>> šcf_revision = <optimized out>
>> šcf_repos_relpath = <optimized out>
>> šcf_repos_root_url = <optimized out>
>> špool = 0x1bf3228
>>
>> š... and from next stack:
>> šsvn_err__temp = 0
>>
>> šothers are optimized out.
>>
>> šAfter repo updating this crash disappeared. Before that crash I updated
>> š'arcadia/yweb/robot/queuer' subtree to different revision (1403046) a
>> šcouple of times and rolled it back to 1403047.
>
> ššššššššBert
>> š--
>> šBest regards, Mikhail Veltishchev [Software Dev @ Yandex]
>> šmailto:dichlofos-mv_at_yandex.ru

-- 
Best regards, Mikhail Veltishchev [Software Dev @ Yandex]
J: dichlofosmv_at_jabber.ruš[home] mvel_at_jabber.ruš[work] ICQ: 7575717
Received on 2014-06-23 12:18:15 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.