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

Re: [BUG] svn diff segfault

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Mon, 26 Jul 2010 23:34:04 +0300

Ramkumar Ramachandra wrote on Tue, Jul 27, 2010 at 00:02:07 +0530:
> Hi,
>
> It's a little late here, and I don't have the patience the debug this
> segmentation fault right now. Here's the backtrace from a simple `svn
> diff`: if it helps, revision-0.dump had just been `svn mv`ed from
> revision0.dump. I think it has something to do with the file's
> svn:mime-type being application/octet-stream?
>

I can't reproduce it using trunk@{yesterday}:

[[[
1:sandbox/wc1% $svn ps svn:mime-type application/octet-stream iota
svn: warning: '/tmp/daniel/sandbox/wc1/iota' is not under version control
0:sandbox/wc1% ls
branches tags trunk
0:sandbox/wc1% cd trunk
0:wc1/trunk% $svn ps svn:mime-type application/octet-stream iota
property 'svn:mime-type' set on 'iota'
0:wc1/trunk% $svn ci iota -mfoo
Sending iota

Committed revision 2.
0:wc1/trunk% $svn mv iota iota2
A iota2
D iota
0:wc1/trunk% $svn di
Index: iota
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
0:wc1/trunk%
]]]

Can you give a reproduction script?

Daniel
(or add a regression test...)

> -- Ram
>
> #0 0x00007ffff6bd93d4 in find_entry (ht=0x0, key=0x7ffff7951a7c, klen=13, val=0x0)
> at /home/artagnon/svn/src/apr-1.4.2/tables/apr_hash.c:260
> hep = 0x0
> he = 0x649d20
> hash = 0
> #1 0x00007ffff6bd9712 in apr_hash_get (ht=0x0, key=0x7ffff7951a7c, klen=13) at /home/artagnon/svn/src/apr-1.4.2/tables/apr_hash.c:330
> he = 0x7fffffffd890
> #2 0x00007ffff78e3fec in get_prop_mimetype (props=0x0) at subversion/libsvn_wc/diff.c:506
> mimetype_val = 0x649d20
> #3 0x00007ffff78e4d00 in file_diff (db=0x6db4f8, path=0x713368 "svnrdump_tests_data/revision-0.dump", pool=0x713148)
> at subversion/libsvn_wc/diff.c:754
> translated = 0x0
> baseprops = 0x0
> working_mimetype = 0x7131c0 "/home/artagnon/svn/svn-trunk/subversion/tests/cmdline/svnrdump_tests_data/revision-0.dump"
> modified = 0
> base_mimetype = 0x649d20 "\002"
> workingprops = 0x0
> propchanges = 0x0
> eb = 0x6cff20
> textbase = 0x713f48 "/home/artagnon/svn/svn-trunk/subversion/tests/cmdline/svnrdump_tests_data/.svn/pristine/335a6306b5bf1fc799b
> 6f4976513b7b3c1189bd5"
> empty_file = 0x6e1bf8 "/tmp/svn-64lEba"
> replaced = 0
> status = svn_wc__db_status_copied
> original_repos_relpath = 0x7137d8 "subversion/trunk/subversion/tests/cmdline/svnrdump_tests_data/revision0.dump"
> revision = -1
> revert_base_revnum = 0
> have_base = 0
> base_status = 4153677978
> local_abspath = 0x7134e8 "/home/artagnon/svn/svn-trunk/subversion/tests/cmdline/svnrdump_tests_data/revision-0.dump"
> #4 0x00007ffff78e54c2 in directory_elements_diff (db=0x6db4f8) at subversion/libsvn_wc/diff.c:893
> svn_err__temp = 0x6cff20
> subdir_baton = 0x100000000
> hidden = 0
> kind = svn_wc__db_kind_file
> name = 0x6db8a8 "revision-0.dump"
> child_abspath = 0x7131c0 "/home/artagnon/svn/svn-trunk/subversion/tests/cmdline/svnrdump_tests_data/revision-0.dump"
> path = 0x713368 "svnrdump_tests_data/revision-0.dump"
> children = 0x6db8d0
> i = 0
> in_anchor_not_target = 0
> iterpool = 0x713148
> eb = 0x6cff20
> #5 0x00007ffff78e5585 in directory_elements_diff (db=0x6d0110) at subversion/libsvn_wc/diff.c:921
> svn_err__temp = 0x0
> depth_below_here = svn_depth_unknown
> subdir_baton = 0x6db4f8
> hidden = 0
> kind = svn_wc__db_kind_dir
> name = 0x6d0b68 "svnrdump_tests_data"
> child_abspath = 0x6da4f0 "/home/artagnon/svn/svn-trunk/subversion/tests/cmdline/svnrdump_tests_data"
> path = 0x6db4e0 "svnrdump_tests_data"
> children = 0x6d0488
> i = 59
> in_anchor_not_target = 0
> iterpool = 0x6da478
> eb = 0x6cff20
> #6 0x00007ffff78e86d4 in svn_wc_diff6 (wc_ctx=0x649d08, target_path=0x677860 "", callbacks=0x7fffffffdeb0,
> callback_baton=0x7fffffffdef0, depth=svn_depth_unknown, ignore_ancestry=1, show_copies_as_adds=0, changelists=0x649518,
> cancel_func=0x41294f <svn_cl__check_cancel>, cancel_baton=0x0, pool=0x6777e8) at subversion/libsvn_wc/diff.c:1925
> svn_err__temp = 0xfffffffe
> eb = 0x6cff20
> db = 0x6d0110
> target = 0x7ffff7951b05 ""
> target_abspath = 0x6cfee8 "/home/artagnon/svn/svn-trunk/subversion/tests/cmdline"
> anchor_path = 0x677860 ""
> kind = svn_wc__db_kind_dir
> #7 0x00007ffff7b968dc in diff_wc_wc (path1=0x677860 "", revision1=0x7fffffffe378, path2=0x677868 "", revision2=0x7fffffffe388,
> depth=svn_depth_unknown, ignore_ancestry=1, show_copies_as_adds=0, changelists=0x649518, callbacks=0x7fffffffdeb0,
> callback_baton=0x7fffffffdef0, ctx=0x649c50, pool=0x6777e8) at subversion/libsvn_client/diff.c:1543
> svn_err__temp = 0x7fffffffdf70
> abspath1 = 0x677b50 "/home/artagnon/svn/svn-trunk/subversion/tests/cmdline"
> err = 0x0
> #8 0x00007ffff7b977f2 in do_diff (diff_param=0x7fffffffdf70, callbacks=0x7fffffffdeb0, callback_baton=0x7fffffffdef0, ctx=0x649c50,
> pool=0x6777e8) at subversion/libsvn_client/diff.c:1818
> svn_err__temp = 0x6777e8
> diff_paths = {is_repos1 = 0, is_repos2 = 0}
> #9 0x00007ffff7b980a1 in svn_client_diff5 (options=0x0, path1=0x677860 "", revision1=0x7fffffffe378, path2=0x677868 "",
> revision2=0x7fffffffe388, relative_to_dir=0x0, depth=svn_depth_unknown, ignore_ancestry=1, no_diff_deleted=0,
> show_copies_as_adds=0, ignore_content_type=0, use_git_diff_format=0, header_encoding=0x1 <Address 0x1 out of bounds>,
> outfile=0x67f878, errfile=0x67f8e8, changelists=0x649518, ctx=0x649c50, pool=0x6777e8) at subversion/libsvn_client/diff.c:2073
> diff_params = {path1 = 0x677860 "", revision1 = 0x7fffffffe378, path2 = 0x677868 "", revision2 = 0x7fffffffe388,
> peg_revision = 0x7fffffffdea0, depth = svn_depth_unknown, ignore_ancestry = 1, no_diff_deleted = 0, show_copies_as_adds = 0,
> changelists = 0x649518}
> diff_cmd_baton = {diff_cmd = 0x0, options = {for_internal = 0x6778c0, for_external = {argv = 0x6778c0, argc = 8}},
> pool = 0x6777e8, outfile = 0x67f878, errfile = 0x67f8e8, header_encoding = 0x1 <Address 0x1 out of bounds>,
> orig_path_1 = 0x677860 "", orig_path_2 = 0x677868 "", revnum1 = 979365, revnum2 = -1, force_binary = 0, force_empty = 0,
> relative_to_dir = 0x0, use_git_diff_format = 0, wc_ctx = 0x649d08, visited_paths = 0x677958}
> diff_callbacks = {file_changed = 0x7ffff7b9527a <diff_file_changed>, file_added = 0x7ffff7b953dd <diff_file_added>,
> file_deleted = 0x7ffff7b9574f <diff_file_deleted_with_diff>, dir_added = 0x7ffff7b958b9 <diff_dir_added>,
> dir_deleted = 0x7ffff7b958fe <diff_dir_deleted>, dir_props_changed = 0x7ffff7b94333 <diff_props_changed>,
> dir_opened = 0x7ffff7b95943 <diff_dir_opened>, dir_closed = 0x7ffff7b95988 <diff_dir_closed>}
> peg_revision = {kind = svn_opt_revision_unspecified, value = {number = 0, date = 0}}
> #10 0x000000000040c8ba in svn_cl__diff (os=0x6494b8, baton=0x7fffffffe350, pool=0x649268) at subversion/svn/diff-cmd.c:340
> svn_err__temp = 0x28
> path = 0x67f9e8 ""
> target1 = 0x677860 ""
> target2 = 0x677868 ""
> opt_state = 0x7fffffffe370
> ctx = 0x649c50
> options = 0x0
> targets = 0x67f9a0
> outfile = 0x67f878
> errfile = 0x67f8e8
> status = 0
> old_target = 0x424b9c ""
> new_target = 0x424b9c ""
> iterpool = 0x6777e8
> pegged_diff = 0
> i = 0
> summarize_func = 0x40bac5 <summarize_regular>
> #11 0x000000000041569b in main (argc=2, argv=0x7fffffffe6d8) at subversion/svn/main.c:2331
> err = 0x0
> allocator = 0x649180
> pool = 0x649268
> opt_id = 32767
> os = 0x6494b8
> opt_state = {revision_ranges = 0x649490, start_revision = {kind = svn_opt_revision_base, value = {number = 0, date = 0}},
> end_revision = {kind = svn_opt_revision_working, value = {number = 0, date = 0}}, used_change_arg = 0,
> used_revision_arg = 0, limit = 0, depth = svn_depth_unknown, no_unlock = 0, message = 0x0, ancestor_path = 0x0, force = 0,
> force_log = 0, incremental = 0, quiet = 0, non_interactive = 0, version = 0, verbose = 0, update = 0, strict = 0,
> filedata = 0x0, encoding = 0x0, help = 0, auth_username = 0x0, auth_password = 0x0, extensions = 0x0, targets = 0x0,
> xml = 0, no_ignore = 0, no_auth_cache = 0, no_diff_deleted = 0, show_copies_as_adds = 0, notice_ancestry = 0,
> ignore_ancestry = 0, ignore_externals = 0, stop_on_copy = 0, dry_run = 0, revprop = 0, diff_cmd = 0x0, merge_cmd = 0x0,
> editor_cmd = 0x0, record_only = 0, old_target = 0x0, new_target = 0x0, relocate = 0, config_dir = 0x0, config_options = 0x0,
> autoprops = 0, no_autoprops = 0, native_eol = 0x0, summarize = 0, remove = 0, changelists = 0x649518, changelist = 0x0,
> keep_changelists = 0, keep_local = 0, all_revprops = 0, no_revprops = 0, revprop_table = 0x0, parents = 0,
> use_merge_history = 0, accept_which = svn_cl__accept_unspecified, show_revs = svn_cl__show_revs_merged,
> set_depth = svn_depth_unknown, reintegrate = 0, trust_server_cert = 0, strip_count = 0, ignore_keywords = 0,
> reverse_diff = 0, ignore_whitespace = 0, show_diff = 0, internal_diff
Received on 2010-07-26 22:35:52 CEST

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