git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Michael J Gruber <git@drmicha.warpmail.net>
To: Alex Riesen <raa.lkml@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: fatal: internal error in diff-resolve-rename-copy
Date: Tue, 06 Jul 2010 16:47:06 +0200	[thread overview]
Message-ID: <4C3341EA.7070901@drmicha.warpmail.net> (raw)
In-Reply-To: <AANLkTimyZnvIs9XCwxKLxisum5KllXwrPygkCidC1CnH@mail.gmail.com>

Alex Riesen venit, vidit, dixit 05.07.2010 20:20:
> On Mon, Jul 5, 2010 at 14:05, Michael J Gruber <git@drmicha.warpmail.net> wrote:
>> can someone help me with understanding or debugging the following? With
>> "log -p --stat" I get that strange fatal error. (With GIT_FLUSH=0 it
>> appears upfront.)
>>
>> Without "-p --stat" the log is displayed without a fatal error (same 3
>> commits), but with "-p" or "--stat" (or both) it's fatal.
> 
> Could you run the case under valgrind? (I suspect a corruption of diff
> data structures)

I have zero experience with valgrind. Running the reported command with
the same suppressions as the test suite does, but with full leak check,
I get the following report on stderr. Do you see anything suspicious in
there? Should I run valgrind with -v?

Michael

==3379== Memcheck, a memory error detector
==3379== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==3379== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
==3379== Command: git log --stat --follow LVVO/Formular\
Lehrverpflichtung\ SS\ 2009_FakIII.odt
==3379==
fatal: internal error in diff-resolve-rename-copy
==3379==
==3379== HEAP SUMMARY:
==3379==     in use at exit: 1,611,768 bytes in 148 blocks
==3379==   total heap usage: 12,842 allocs, 12,694 frees, 29,235,398
bytes allocated
==3379==
==3379== 4 bytes in 1 blocks are definitely lost in loss record 4 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x311087FE01: strdup (in /lib64/libc-2.12.so)
==3379==    by 0x4C3838: xstrdup (wrapper.c:22)
==3379==    by 0x46BBE0: git_config_string (config.c:406)
==3379==    by 0x46D082: git_config_from_file (config.c:185)
==3379==    by 0x46D4D5: git_config (config.c:802)
==3379==    by 0x491DAF: git_pager (pager.c:61)
==3379==    by 0x491DF4: setup_pager (pager.c:76)
==3379==    by 0x4041B8: handle_internal_command (git.c:262)
==3379==    by 0x4043C1: main (git.c:467)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:xstrdup
   fun:git_config_string
   fun:git_config_from_file
   fun:git_config
   fun:git_pager
   fun:setup_pager
   fun:handle_internal_command
   fun:main
}
==3379== 16 bytes in 1 blocks are possibly lost in loss record 13 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x4C36E5: xmalloc (wrapper.c:34)
==3379==    by 0x46A6CD: commit_list_insert (commit.c:320)
==3379==    by 0x46B031: parse_commit_buffer (commit.c:272)
==3379==    by 0x46B22F: parse_commit (commit.c:309)
==3379==    by 0x4A9A2A: add_parents_to_list (revision.c:517)
==3379==    by 0x4A9E40: get_revision_1 (revision.c:2016)
==3379==    by 0x4A9EEA: get_revision_internal (revision.c:2121)
==3379==    by 0x4AA150: get_revision (revision.c:2202)
==3379==    by 0x4315DD: cmd_log_walk (log.c:264)
==3379==    by 0x43172B: cmd_log (log.c:515)
==3379==    by 0x4041E0: handle_internal_command (git.c:269)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:xmalloc
   fun:commit_list_insert
   fun:parse_commit_buffer
   fun:parse_commit
   fun:add_parents_to_list
   fun:get_revision_1
   fun:get_revision_internal
   fun:get_revision
   fun:cmd_log_walk
   fun:cmd_log
   fun:handle_internal_command
}
==3379== 27 bytes in 1 blocks are definitely lost in loss record 25 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x4A051D7: realloc (vg_replace_malloc.c:476)
==3379==    by 0x4C364D: xrealloc (wrapper.c:80)
==3379==    by 0x4B53C7: strbuf_grow (strbuf.c:70)
==3379==    by 0x4B5733: strbuf_add (strbuf.c:183)
==3379==    by 0x49406F: expand_user_path (path.c:328)
==3379==    by 0x46C0C0: git_config_pathname (config.c:414)
==3379==    by 0x46D082: git_config_from_file (config.c:185)
==3379==    by 0x46D4D5: git_config (config.c:802)
==3379==    by 0x491DAF: git_pager (pager.c:61)
==3379==    by 0x491DF4: setup_pager (pager.c:76)
==3379==    by 0x4041B8: handle_internal_command (git.c:262)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:xrealloc
   fun:strbuf_grow
   fun:strbuf_add
   fun:expand_user_path
   fun:git_config_pathname
   fun:git_config_from_file
   fun:git_config
   fun:git_pager
   fun:setup_pager
   fun:handle_internal_command
}
==3379== 46 bytes in 1 blocks are definitely lost in loss record 33 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x311087FE01: strdup (in /lib64/libc-2.12.so)
==3379==    by 0x4C3838: xstrdup (wrapper.c:22)
==3379==    by 0x4BD99F: diff_tree_sha1 (tree-diff.c:377)
==3379==    by 0x4897EA: log_tree_commit (log-tree.c:542)
==3379==    by 0x4315BA: cmd_log_walk (log.c:265)
==3379==    by 0x43172B: cmd_log (log.c:515)
==3379==    by 0x4041E0: handle_internal_command (git.c:269)
==3379==    by 0x4043C1: main (git.c:467)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:xstrdup
   fun:diff_tree_sha1
   fun:log_tree_commit
   fun:cmd_log_walk
   fun:cmd_log
   fun:handle_internal_command
   fun:main
}
==3379== 51 bytes in 1 blocks are definitely lost in loss record 37 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x4C36E5: xmalloc (wrapper.c:34)
==3379==    by 0x4AD45F: prefix_path (setup.c:10)
==3379==    by 0x4AD5EA: get_pathspec (setup.c:147)
==3379==    by 0x4A8BD0: setup_revisions (revision.c:1594)
==3379==    by 0x431113: cmd_log_init (log.c:78)
==3379==    by 0x431723: cmd_log (log.c:514)
==3379==    by 0x4041E0: handle_internal_command (git.c:269)
==3379==    by 0x4043C1: main (git.c:467)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:xmalloc
   fun:prefix_path
   fun:get_pathspec
   fun:setup_revisions
   fun:cmd_log_init
   fun:cmd_log
   fun:handle_internal_command
   fun:main
}
==3379== 65 bytes in 1 blocks are definitely lost in loss record 40 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x4A051D7: realloc (vg_replace_malloc.c:476)
==3379==    by 0x4C364D: xrealloc (wrapper.c:80)
==3379==    by 0x4B53C7: strbuf_grow (strbuf.c:70)
==3379==    by 0x4B5B5A: strbuf_addf (strbuf.c:201)
==3379==    by 0x4816DF: system_path (exec_cmd.c:37)
==3379==    by 0x481801: setup_path (exec_cmd.c:104)
==3379==    by 0x4043B0: main (git.c:533)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:xrealloc
   fun:strbuf_grow
   fun:strbuf_addf
   fun:system_path
   fun:setup_path
   fun:main
}
==3379== 192 bytes in 1 blocks are definitely lost in loss record 56 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x4A051D7: realloc (vg_replace_malloc.c:476)
==3379==    by 0x4C364D: xrealloc (wrapper.c:80)
==3379==    by 0x476812: diff_q (diff.c:3297)
==3379==    by 0x476869: diff_queue (diff.c:3311)
==3379==    by 0x477125: diff_addremove (diff.c:4150)
==3379==    by 0x4BD082: show_entry (tree-diff.c:255)
==3379==    by 0x4BD168: show_entry (tree-diff.c:217)
==3379==    by 0x4BD4A5: diff_tree (tree-diff.c:299)
==3379==    by 0x4BD79A: diff_tree_sha1 (tree-diff.c:414)
==3379==    by 0x4897EA: log_tree_commit (log-tree.c:542)
==3379==    by 0x4315BA: cmd_log_walk (log.c:265)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:xrealloc
   fun:diff_q
   fun:diff_queue
   fun:diff_addremove
   fun:show_entry
   fun:show_entry
   fun:diff_tree
   fun:diff_tree_sha1
   fun:log_tree_commit
   fun:cmd_log_walk
}
==3379== 384 bytes in 2 blocks are definitely lost in loss record 58 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x4A051D7: realloc (vg_replace_malloc.c:476)
==3379==    by 0x4C364D: xrealloc (wrapper.c:80)
==3379==    by 0x476812: diff_q (diff.c:3297)
==3379==    by 0x476869: diff_queue (diff.c:3311)
==3379==    by 0x477125: diff_addremove (diff.c:4150)
==3379==    by 0x4BD082: show_entry (tree-diff.c:255)
==3379==    by 0x4BD4A5: diff_tree (tree-diff.c:299)
==3379==    by 0x4BD79A: diff_tree_sha1 (tree-diff.c:414)
==3379==    by 0x4897EA: log_tree_commit (log-tree.c:542)
==3379==    by 0x4315BA: cmd_log_walk (log.c:265)
==3379==    by 0x43172B: cmd_log (log.c:515)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:realloc
   fun:xrealloc
   fun:diff_q
   fun:diff_queue
   fun:diff_addremove
   fun:show_entry
   fun:diff_tree
   fun:diff_tree_sha1
   fun:log_tree_commit
   fun:cmd_log_walk
   fun:cmd_log
}
==3379== 545 bytes in 2 blocks are possibly lost in loss record 60 of 76
==3379==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
==3379==    by 0x4C36E5: xmalloc (wrapper.c:34)
==3379==    by 0x4C377E: xmallocz (wrapper.c:56)
==3379==    by 0x4AE627: unpack_sha1_file (sha1_file.c:1170)
==3379==    by 0x4B2200: read_object (sha1_file.c:2074)
==3379==    by 0x4B226E: read_sha1_file_repl (sha1_file.c:2088)
==3379==    by 0x46B1E7: parse_commit (cache.h:721)
==3379==    by 0x4A9A2A: add_parents_to_list (revision.c:517)
==3379==    by 0x4A9E40: get_revision_1 (revision.c:2016)
==3379==    by 0x4A9EEA: get_revision_internal (revision.c:2121)
==3379==    by 0x4AA150: get_revision (revision.c:2202)
==3379==    by 0x4315DD: cmd_log_walk (log.c:264)
==3379==
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   fun:malloc
   fun:xmalloc
   fun:xmallocz
   fun:unpack_sha1_file
   fun:read_object
   fun:read_sha1_file_repl
   fun:parse_commit
   fun:add_parents_to_list
   fun:get_revision_1
   fun:get_revision_internal
   fun:get_revision
   fun:cmd_log_walk
}
==3379== LEAK SUMMARY:
==3379==    definitely lost: 769 bytes in 8 blocks
==3379==    indirectly lost: 0 bytes in 0 blocks
==3379==      possibly lost: 561 bytes in 3 blocks
==3379==    still reachable: 1,610,438 bytes in 137 blocks
==3379==         suppressed: 0 bytes in 0 blocks
==3379== Reachable blocks (those to which a pointer was found) are not
shown.
==3379== To see them, rerun with: --leak-check=full --show-reachable=yes
==3379==
==3379== For counts of detected and suppressed errors, rerun with: -v
==3379== ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 6 from 6)

  reply	other threads:[~2010-07-06 14:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-05 12:05 fatal: internal error in diff-resolve-rename-copy Michael J Gruber
2010-07-05 18:20 ` Alex Riesen
2010-07-06 14:47   ` Michael J Gruber [this message]
2010-07-07  8:13     ` Alex Riesen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C3341EA.7070901@drmicha.warpmail.net \
    --to=git@drmicha.warpmail.net \
    --cc=git@vger.kernel.org \
    --cc=raa.lkml@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).