You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Mikhail Veltishchev <di...@yandex.ru> on 2014/06/20 20:40:57 UTC

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@entry=0x1c41b10 "..", revision1=revision1@entry=0x7fff6cc77568, peg_revision=peg_revision@entry=0x7fff6cc773b0, path2=path2@entry=0x1c41b10 "..", reverse=rever
se@entry=0, depth=depth@entry=svn_depth_unknown, ignore_ancestry=ignore_ancestry@entry=1, show_copies_as_adds=show_copies_as_adds@entry=0, use_git_diff_format=use_git_diff_format@entry=0, changelists=changelists@entry=0x1bed79
0, callbacks=callbacks@entry=0x7f5866d0acc0 <diff_callbacks>, callback_baton=callback_baton@entry=0x7fff6cc77190, cmd_baton=cmd_baton@entry=0x7fff6cc77190, ctx=ctx@entry=0x1bee980, scratch_pool=scratch_pool@entry=0x1bf3228, re
vision2=0x7fff6cc77578) at subversion/libsvn_client/diff.c:2027
#5  0x00007f5866ad22d5 in do_diff (callback_baton=callback_baton@entry=0x7fff6cc77190, ctx=ctx@entry=0x1bee980, path_or_url1=path_or_url1@entry=0x1c41b10 "..", path_or_url2=path_or_url2@entry=0x1c41b10 "..", revision1=revision
1@entry=0x7fff6cc77568, revision2=revision2@entry=0x7fff6cc77578, peg_revision=peg_revision@entry=0x7fff6cc773b0, depth=depth@entry=svn_depth_unknown, ignore_ancestry=ignore_ancestry@entry=1, show_copies_as_adds=show_copies_as
_adds@entry=0, use_git_diff_format=use_git_diff_format@entry=0, changelists=changelists@entry=0x1bed790, pool=pool@entry=0x1bf3228, callbacks=0x7f5866d0acc0 <diff_callbacks>) at subversion/libsvn_client/diff.c:2090
#6  0x00007f5866ad3b9a in svn_client_diff_peg6 (options=options@entry=0x0, path_or_url=0x1c41b10 "..", peg_revision=peg_revision@entry=0x7fff6cc773b0, start_revision=start_revision@entry=0x7fff6cc77568, end_revision=end_revisi
on@entry=0x7fff6cc77578, relative_to_dir=relative_to_dir@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@entry=0, ignore_content_type=0, ignore
_properties=ignore_properties@entry=0, properties_only=0, use_git_diff_format=0, header_encoding=0x1 <error: Cannot access memory at address 0x1>, outstream=outstream@entry=0x1c418d0, errstream=errstream@entry=0x1c419a0, chang
elists=0x1bed790, ctx=ctx@entry=0x1bee980, pool=pool@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@entry=5, argv=argv@entry=0x7fff6cc77878, pool=pool@entry=0x1bed1f8) at subversion/svn/svn.c:2878
#9  0x0000000000406c5d in main (argc=5, argv=0x7fff6cc77878) at subversion/svn/svn.c:2969


Here is an locals info for svn_ra_do_diff3 call:

#4  0x00007f5866ad0d73 in diff_repos_wc (path_or_url1=path_or_url1@entry=0x1c41b10 "..", revision1=revision1@entry=0x7fff6cc77568, peg_revision=peg_revision@entry=0x7fff6cc773b0, path2=path2@entry=0x1c41b10 "..", reverse=rever
se@entry=0, depth=depth@entry=svn_depth_unknown, ignore_ancestry=ignore_ancestry@entry=1, show_copies_as_adds=show_copies_as_adds@entry=0, use_git_diff_format=use_git_diff_format@entry=0, changelists=changelists@entry=0x1bed79
0, callbacks=callbacks@entry=0x7f5866d0acc0 <diff_callbacks>, callback_baton=callback_baton@entry=0x7fff6cc77190, cmd_baton=cmd_baton@entry=0x7fff6cc77190, ctx=ctx@entry=0x1bee980, scratch_pool=scratch_pool@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/dumpdups"
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.
-- 
Best regards, Mikhail Veltishchev [Software Dev @ Yandex]
mailto:dichlofos-mv@yandex.ru

RE: assertion failed / segfault in svn_ra_do_diff3

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Mikhail Veltishchev [mailto:dichlofos-mv@yandex.ru]
> Sent: maandag 23 juni 2014 12:18
> To: Bert Huijben; users@subversion.apache.org
> Subject: Re: assertion failed / segfault in svn_ra_do_diff3
> 
> 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

I just reproduced this issue on Subversion trunk and added a regression test
for it in r1604736.

The problem is most likely in the literal '..', which is accidentally passed
on as invalid file or directory name in this diff variant.

I'll see if I can fix this issue later today. (And then what it will take to
backport the fix to 1.8.x)

	Bert


Re: assertion failed / segfault in svn_ra_do_diff3

Posted by Mikhail Veltishchev <di...@yandex.ru>.
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" <be...@qqmail.nl>:
>>  -----Original Message-----
>>  From: Mikhail Veltishchev [mailto:dichlofos-mv@yandex.ru]
>>  Sent: vrijdag 20 juni 2014 20:41
>>  To: users@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@entry=0x1c41b10 "..",
>>  revision1=revision1@entry=0x7fff6cc77568,
>>  peg_revision=peg_revision@entry=0x7fff6cc773b0,
>>  path2=path2@entry=0x1c41b10 "..", reverse=rever
>>  se@entry=0, depth=depth@entry=svn_depth_unknown,
>>  ignore_ancestry=ignore_ancestry@entry=1,
>>  show_copies_as_adds=show_copies_as_adds@entry=0,
>>  use_git_diff_format=use_git_diff_format@entry=0,
>>  changelists=changelists@entry=0x1bed79
>>  0, callbacks=callbacks@entry=0x7f5866d0acc0 <diff_callbacks>,
>>  callback_baton=callback_baton@entry=0x7fff6cc77190,
>>  cmd_baton=cmd_baton@entry=0x7fff6cc77190, ctx=ctx@entry=0x1bee980,
>>  scratch_pool=scratch_pool@entry=0x1bf3228, re
>>  vision2=0x7fff6cc77578) at subversion/libsvn_client/diff.c:2027
>>  #5  0x00007f5866ad22d5 in do_diff
>>  (callback_baton=callback_baton@entry=0x7fff6cc77190,
>>  ctx=ctx@entry=0x1bee980, path_or_url1=path_or_url1@entry=0x1c41b10
>>  "..", path_or_url2=path_or_url2@entry=0x1c41b10 "..", revision1=revision
>>  1@entry=0x7fff6cc77568, revision2=revision2@entry=0x7fff6cc77578,
>>  peg_revision=peg_revision@entry=0x7fff6cc773b0,
>>  depth=depth@entry=svn_depth_unknown,
>>  ignore_ancestry=ignore_ancestry@entry=1,
>>  show_copies_as_adds=show_copies_as
>>  _adds@entry=0, use_git_diff_format=use_git_diff_format@entry=0,
>>  changelists=changelists@entry=0x1bed790, pool=pool@entry=0x1bf3228,
>>  callbacks=0x7f5866d0acc0 <diff_callbacks>) at
>>  subversion/libsvn_client/diff.c:2090
>>  #6  0x00007f5866ad3b9a in svn_client_diff_peg6
>>  (options=options@entry=0x0, path_or_url=0x1c41b10 "..",
>>  peg_revision=peg_revision@entry=0x7fff6cc773b0,
>>  start_revision=start_revision@entry=0x7fff6cc77568,
>>  end_revision=end_revisi
>>  on@entry=0x7fff6cc77578, relative_to_dir=relative_to_dir@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@entry=0,
>>  ignore_content_type=0, ignore
>>  _properties=ignore_properties@entry=0, properties_only=0,
>>  use_git_diff_format=0, header_encoding=0x1 <error: Cannot access
>>  memory at address 0x1>, outstream=outstream@entry=0x1c418d0,
>>  errstream=errstream@entry=0x1c419a0, chang
>>  elists=0x1bed790, ctx=ctx@entry=0x1bee980, pool=pool@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@entry=5,
>>  argv=argv@entry=0x7fff6cc77878, pool=pool@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@entry=0x1c41b10 "..",
>>  revision1=revision1@entry=0x7fff6cc77568,
>>  peg_revision=peg_revision@entry=0x7fff6cc773b0,
>>  path2=path2@entry=0x1c41b10 "..", reverse=rever
>>  se@entry=0, depth=depth@entry=svn_depth_unknown,
>>  ignore_ancestry=ignore_ancestry@entry=1,
>>  show_copies_as_adds=show_copies_as_adds@entry=0,
>>  use_git_diff_format=use_git_diff_format@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@entry=0x1bed79
>>  0, callbacks=callbacks@entry=0x7f5866d0acc0 <diff_callbacks>,
>>  callback_baton=callback_baton@entry=0x7fff6cc77190,
>>  cmd_baton=cmd_baton@entry=0x7fff6cc77190, ctx=ctx@entry=0x1bee980,
>>  scratch_pool=scratch_pool@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@yandex.ru

-- 
Best regards, Mikhail Veltishchev [Software Dev @ Yandex]
J: dichlofosmv@jabber.ru [home] mvel@jabber.ru [work] ICQ: 7575717

RE: assertion failed / segfault in svn_ra_do_diff3

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Mikhail Veltishchev [mailto:dichlofos-mv@yandex.ru]
> Sent: vrijdag 20 juni 2014 20:41
> To: users@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@entry=0x1c41b10 "..",
> revision1=revision1@entry=0x7fff6cc77568,
> peg_revision=peg_revision@entry=0x7fff6cc773b0,
> path2=path2@entry=0x1c41b10 "..", reverse=rever
> se@entry=0, depth=depth@entry=svn_depth_unknown,
> ignore_ancestry=ignore_ancestry@entry=1,
> show_copies_as_adds=show_copies_as_adds@entry=0,
> use_git_diff_format=use_git_diff_format@entry=0,
> changelists=changelists@entry=0x1bed79
> 0, callbacks=callbacks@entry=0x7f5866d0acc0 <diff_callbacks>,
> callback_baton=callback_baton@entry=0x7fff6cc77190,
> cmd_baton=cmd_baton@entry=0x7fff6cc77190, ctx=ctx@entry=0x1bee980,
> scratch_pool=scratch_pool@entry=0x1bf3228, re
> vision2=0x7fff6cc77578) at subversion/libsvn_client/diff.c:2027
> #5  0x00007f5866ad22d5 in do_diff
> (callback_baton=callback_baton@entry=0x7fff6cc77190,
> ctx=ctx@entry=0x1bee980, path_or_url1=path_or_url1@entry=0x1c41b10
> "..", path_or_url2=path_or_url2@entry=0x1c41b10 "..", revision1=revision
> 1@entry=0x7fff6cc77568, revision2=revision2@entry=0x7fff6cc77578,
> peg_revision=peg_revision@entry=0x7fff6cc773b0,
> depth=depth@entry=svn_depth_unknown,
> ignore_ancestry=ignore_ancestry@entry=1,
> show_copies_as_adds=show_copies_as
> _adds@entry=0, use_git_diff_format=use_git_diff_format@entry=0,
> changelists=changelists@entry=0x1bed790, pool=pool@entry=0x1bf3228,
> callbacks=0x7f5866d0acc0 <diff_callbacks>) at
> subversion/libsvn_client/diff.c:2090
> #6  0x00007f5866ad3b9a in svn_client_diff_peg6
> (options=options@entry=0x0, path_or_url=0x1c41b10 "..",
> peg_revision=peg_revision@entry=0x7fff6cc773b0,
> start_revision=start_revision@entry=0x7fff6cc77568,
> end_revision=end_revisi
> on@entry=0x7fff6cc77578, relative_to_dir=relative_to_dir@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@entry=0,
> ignore_content_type=0, ignore
> _properties=ignore_properties@entry=0, properties_only=0,
> use_git_diff_format=0, header_encoding=0x1 <error: Cannot access
> memory at address 0x1>, outstream=outstream@entry=0x1c418d0,
> errstream=errstream@entry=0x1c419a0, chang
> elists=0x1bed790, ctx=ctx@entry=0x1bee980, pool=pool@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@entry=5,
> argv=argv@entry=0x7fff6cc77878, pool=pool@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@entry=0x1c41b10 "..",
> revision1=revision1@entry=0x7fff6cc77568,
> peg_revision=peg_revision@entry=0x7fff6cc773b0,
> path2=path2@entry=0x1c41b10 "..", reverse=rever
> se@entry=0, depth=depth@entry=svn_depth_unknown,
> ignore_ancestry=ignore_ancestry@entry=1,
> show_copies_as_adds=show_copies_as_adds@entry=0,
> use_git_diff_format=use_git_diff_format@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@entry=0x1bed79
> 0, callbacks=callbacks@entry=0x7f5866d0acc0 <diff_callbacks>,
> callback_baton=callback_baton@entry=0x7fff6cc77190,
> cmd_baton=cmd_baton@entry=0x7fff6cc77190, ctx=ctx@entry=0x1bee980,
> scratch_pool=scratch_pool@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@yandex.ru