Re: [PATCH 0/5] Revamping "git status"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano wrote:
> 
> Junio C Hamano (5):
>   diff-index: report unmerged new entries
>   diff-index: keep the original index intact
>   wt-status.c: rework the way changes to the index and work tree are
>     summarized
>   status: show worktree status of conflicted paths separately
>   shortstatus: a new command

I was quite eager to try this, mainly for 4/5, and I still had the
testing repository from the last thread around:

  $ git ls-files -s
  100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 1       foo
  100644 d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 2       foo

Here we go!

  $ git status
  # On branch master                            
  Segmentation fault

Uh oh.  So gdb it is then...

# On branch master                                                           

  Program received signal SIGSEGV, Segmentation fault.
  0x00007ffff7353844 in strcmp () from /lib64/libc.so.6
  (gdb) bt                                             
  #0  0x00007ffff7353844 in strcmp () from /lib64/libc.so.6
  #1  0x00000000004cc577 in unmerged_mask (path=Cannot access memory at address 0xfffff070                                                                        
  ) at wt-status.c:241                                                            
  Backtrace stopped: previous frame inner to this frame (corrupt stack?)

... or maybe not.  valgrind is slightly more helpful:

  ==29421== Invalid read of size 1
  ==29421==    at 0x4C26101: strcmp (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
  ==29421==    by 0x4CC576: unmerged_mask (wt-status.c:241)
  ==29421==    by 0x4CC6AA: wt_status_collect_updated_cb (wt-status.c:275)
  ==29421==    by 0x484172: diff_flush (diff.c:3337)
  ==29421==    by 0x47A0E5: run_diff_index (diff-lib.c:445)
  ==29421==    by 0x4CC804: wt_status_collect_changes_index (wt-status.c:306)
  ==29421==    by 0x4CC922: wt_status_collect_changes (wt-status.c:340)
  ==29421==    by 0x4CD1A0: wt_status_print (wt-status.c:561)
  ==29421==    by 0x41BFBD: run_status (builtin-commit.c:369)
  ==29421==    by 0x41D97F: cmd_status (builtin-commit.c:927)
  ==29421==    by 0x4048C2: run_builtin (git.c:246)
  ==29421==    by 0x404A4D: handle_internal_command (git.c:394)
  ==29421==  Address 0x48 is not stack'd, malloc'd or (recently) free'd
  ==29421==
  ==29421== Process terminating with default action of signal 11 (SIGSEGV)
  ==29421==  Access not within mapped region at address 0x48
  ==29421==    at 0x4C26101: strcmp (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
  ==29421==    by 0x4CC576: unmerged_mask (wt-status.c:241)
  ==29421==    by 0x4CC6AA: wt_status_collect_updated_cb (wt-status.c:275)
  ==29421==    by 0x484172: diff_flush (diff.c:3337)
  ==29421==    by 0x47A0E5: run_diff_index (diff-lib.c:445)
  ==29421==    by 0x4CC804: wt_status_collect_changes_index (wt-status.c:306)
  ==29421==    by 0x4CC922: wt_status_collect_changes (wt-status.c:340)
  ==29421==    by 0x4CD1A0: wt_status_print (wt-status.c:561)
  ==29421==    by 0x41BFBD: run_status (builtin-commit.c:369)
  ==29421==    by 0x41D97F: cmd_status (builtin-commit.c:927)
  ==29421==    by 0x4048C2: run_builtin (git.c:246)
  ==29421==    by 0x404A4D: handle_internal_command (git.c:394)

I also tried finding out which exact commit was causing this, but 4/5
still segfaults and 1-3 don't even compile:

  builtin-commit.c: In function ‘show_unmerged’:                                  
  builtin-commit.c:827: error: dereferencing pointer to incomplete type           
  builtin-commit.c: In function ‘show_status’:                                    
  builtin-commit.c:854: error: dereferencing pointer to incomplete type
  [etc]

These are referring to use of a 'struct wt_status_change_data *', but
the struct declaration is only in 4/5.  Am I missing something?

-- 
Thomas Rast
trast@{inf,student}.ethz.ch

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]