[Bug] Segfault in git status

7 messages, 4 authors, 2016-06-15 · open the first message on its own page

[Bug] Segfault in git status

From: Dane Jensen <hidden>
Date: 2016-06-15 22:44:14

Hi all-

Somehow I've managed to create a repository that causes git status to  
segfault. To be honest, I'm not entirely sure how just yet. This comes  
after a weekend of splitting a repository into two separate  
repositories, filtering out a directory from one, and then creating  
grafts in those repositories to skip commits that now change nothing.

This was in OS X 10.5.2 with git compiled from cf5c51e. Falling back  
to 1.5.4.2 cleared it up, so with the help of git bisect I've narrowed  
the bug down to cf55870.

I'll spend some time this week trying to find the exact point in my  
filtering that git status went south and report back if I can  
replicate it in a more-controlled test.

-Dane

Re: [Bug] Segfault in git status

From: Jay Soffian <hidden>
Date: 2016-06-15 22:44:15

On Mon, Feb 18, 2008 at 3:36 AM, Dane Jensen [off-list ref] wrote:
Hi all-

 Somehow I've managed to create a repository that causes git status to
 segfault. To be honest, I'm not entirely sure how just yet. This comes
 after a weekend of splitting a repository into two separate
 repositories, filtering out a directory from one, and then creating
 grafts in those repositories to skip commits that now change nothing.

 This was in OS X 10.5.2 with git compiled from cf5c51e. Falling back
 to 1.5.4.2 cleared it up, so with the help of git bisect I've narrowed
 the bug down to cf55870.

 I'll spend some time this week trying to find the exact point in my
 filtering that git status went south and report back if I can
 replicate it in a more-controlled test.
BTW - you should have a crash log in ~/Library/Logs/CrashReporter and
that should list the function in which the crash occurred.

j.

Re: [Bug] Segfault in git status

From: Pieter de Bie <hidden>
Date: 2016-06-15 22:44:15

On Feb 18, 2008, at 9:36 AM, Dane Jensen wrote:
Hi all-

Somehow I've managed to create a repository that causes git status  
to segfault. To be honest, I'm not entirely sure how just yet. This  
comes after a weekend of splitting a repository into two separate  
repositories, filtering out a directory from one, and then creating  
grafts in those repositories to skip commits that now change nothing.
I have the same problem, also on OS X.

Vienna:Project pieter$ git --version
git version 1.5.4.2.263.g5729

which is 'next' + 2 patches

Vienna:Project pieter$ gdb --args git status
GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct  2 04:07:49  
UTC 2007)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and  
you are
welcome to change it and/or distribute copies of it under certain  
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for  
details.
This GDB was configured as "i386-apple-darwin"...Reading symbols for  
shared libraries ........ done

(gdb) r
Starting program: /opt/pieter/bin/git status
Reading symbols for shared libraries +++++++. done
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#	modified:   Data/Metadata/redirects.xml
#	modified:   protege/ontologie.owl
#	modified:   protege/ontologie.pprj
#	modified:   protege/ontologie.repository
#	modified:   protege/swirl_data.owl
#	modified:   test-po2s.db
#	modified:   test-so2p.db
#	modified:   test-sp2o.db
#

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x004a2010
index_name_exists (istate=0xeba80, name=0xbfffdc27 "Data/Cache/ 
Template/Peter_II_of_Yugoslavia.html", namelen=47) at read-cache.c:101
101			if (!(ce->ce_flags & CE_UNHASHED)) {
(gdb) print *ce
Cannot access memory at address 0x4a1fec

This happens in at least one repository, most others are just fine.

- Pieter

Re: [Bug] Segfault in git status

From: Jeff King <hidden>
Date: 2016-06-15 22:44:15

On Thu, Feb 21, 2008 at 05:01:10PM +0100, Pieter de Bie wrote:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x004a2010
index_name_exists (istate=0xeba80, name=0xbfffdc27 "Data/Cache/ 
Template/Peter_II_of_Yugoslavia.html", namelen=47) at read-cache.c:101
101			if (!(ce->ce_flags & CE_UNHASHED)) {
(gdb) print *ce
Cannot access memory at address 0x4a1fec
This shows up using valgrind under Linux, too. I haven't had time to
track it down yet, though.

-Peff

Re: [Bug] Segfault in git status

From: Jay Soffian <hidden>
Date: 2016-06-15 22:44:15

On Thu, Feb 21, 2008 at 11:01 AM, Pieter de Bie [off-list ref] wrote:
 Vienna:Project pieter$ gdb --args git status
 (gdb) r
 Program received signal EXC_BAD_ACCESS, Could not access memory.
 Reason: KERN_INVALID_ADDRESS at address: 0x004a2010
 index_name_exists (istate=0xeba80, name=0xbfffdc27 "Data/Cache/
 Template/Peter_II_of_Yugoslavia.html", namelen=47) at read-cache.c:101
 101                     if (!(ce->ce_flags & CE_UNHASHED)) {
 (gdb) print *ce
 Cannot access memory at address 0x4a1fec
Do that again, but type "bt" at the gdb prompt after the crash please. :-)

j.

Re: [Bug] Segfault in git status

From: Pieter de Bie <hidden>
Date: 2016-06-15 22:44:15

On Feb 21, 2008, at 5:53 PM, Jay Soffian wrote:
quoted
Do that again, but type "bt" at the gdb prompt after the crash  
please. :-)

j.
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x004a2010
index_name_exists (istate=0xeba80, name=0xbfffdc27 "Data/Cache/ 
Template/Peter_II_of_Yugoslavia.html", namelen=47) at read-cache.c:101
101			if (!(ce->ce_flags & CE_UNHASHED)) {
(gdb) backtrace
#0  index_name_exists (istate=0xeba80, name=0xbfffdc27 "Data/Cache/ 
Template/Peter_II_of_Yugoslavia.html", namelen=47) at read-cache.c:101
#1  0x0006fc04 in dir_add_name (dir=0xbfffef68, pathname=0xbfffdc27  
"Data/Cache/Template/Peter_II_of_Yugoslavia.html", len=47) at dir.c:374
#2  0x00070d11 in read_directory_recursive (dir=0xbfffef68,  
path=<value temporarily unavailable, due to optimizations>,  
base=<value temporarily unavailable, due to optimizations>,  
baselen=20, check_only=0, simplify=0x8072cc) at dir.c:642
#3  0x00070baf in read_directory_recursive (dir=0xbfffef68,  
path=<value temporarily unavailable, due to optimizations>,  
base=<value temporarily unavailable, due to optimizations>,  
baselen=11, check_only=0, simplify=<value temporarily unavailable, due  
to optimizations>) at dir.c:627
#4  0x00070baf in read_directory_recursive (dir=0xbfffef68,  
path=<value temporarily unavailable, due to optimizations>,  
base=<value temporarily unavailable, due to optimizations>, baselen=5,  
check_only=0, simplify=<value temporarily unavailable, due to  
optimizations>) at dir.c:627
#5  0x00070baf in read_directory_recursive (dir=0xbfffef68,  
path=<value temporarily unavailable, due to optimizations>,  
base=<value temporarily unavailable, due to optimizations>, baselen=0,  
check_only=0, simplify=<value temporarily unavailable, due to  
optimizations>) at dir.c:627
#6  0x00070ed3 in read_directory (dir=0xbfffef68, path=0xc446c ".",  
base=0xbb080 "", baselen=4857836, pathspec=0x0) at dir.c:715
#7  0x0009d4d6 in wt_status_print (s=0xbffff5ac) at wt-status.c:282
#8  0x000167c3 in run_status (fp=0xa015f5f8, index_file=0x500300 "/ 
Users/pieter/Documents/Studie/2007-2008/AWT/Project/.git/index",  
prefix=0x0, nowarn=4857836) at builtin-commit.c:347
#9  0x000171af in cmd_status (argc=1, argv=0x0, prefix=0x500300 "/ 
Users/pieter/Documents/Studie/2007-2008/AWT/Project/.git/index") at  
builtin-commit.c:783
#10 0x00002260 in handle_internal_command (argc=1, argv=0xbffff7b8) at  
git.c:259
#11 0x0000246f in main (argc=1, argv=0xbffff7b8) at git.c:451


There ya go

- Pieter

Re: [Bug] Segfault in git status

From: Dane Jensen <hidden>
Date: 2016-06-15 22:44:15

On Feb 21, 2008, at 8:53 AM, Jay Soffian wrote:
On Thu, Feb 21, 2008 at 11:01 AM, Pieter de Bie [off-list ref]  
wrote:
quoted
Vienna:Project pieter$ gdb --args git status
(gdb) r
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x004a2010
index_name_exists (istate=0xeba80, name=0xbfffdc27 "Data/Cache/
Template/Peter_II_of_Yugoslavia.html", namelen=47) at read-cache.c: 
101
101                     if (!(ce->ce_flags & CE_UNHASHED)) {
(gdb) print *ce
Cannot access memory at address 0x4a1fec
Do that again, but type "bt" at the gdb prompt after the crash  
please. :-)

Same error as mine. Here's the result against my repository. This is  
with master, git --version => 1.5.4.2.184.gb23b,

(gdb) r
Starting program: /Users/djensen/bin/git status
Reading symbols for shared libraries +++++++. done
# On branch remote/device-emulator

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x00431018
index_name_exists (istate=0xe04a0, name=0xbfffdc87 "shared/models/spec/ 
device_spec.rb", namelen=33) at read-cache.c:101
101			if (!(ce->ce_flags & CE_UNHASHED)) {
(gdb) bt
#0  index_name_exists (istate=0xe04a0, name=0xbfffdc87 "shared/models/ 
spec/device_spec.rb", namelen=33) at read-cache.c:101
#1  0x00068624 in dir_add_name (dir=0xbfffefc0, pathname=0xbfffdc87  
"shared/models/spec/device_spec.rb", len=33) at dir.c:374
#2  0x00069731 in read_directory_recursive (dir=0xbfffefc0,  
path=<value temporarily unavailable, due to optimizations>,  
base=<value temporarily unavailable, due to optimizations>,  
baselen=19, check_only=0, simplify=0x81de38) at dir.c:642
#3  0x000695cf in read_directory_recursive (dir=0xbfffefc0,  
path=<value temporarily unavailable, due to optimizations>,  
base=<value temporarily unavailable, due to optimizations>,  
baselen=14, check_only=0, simplify=<value temporarily unavailable, due  
to optimizations>) at dir.c:627
#4  0x000695cf in read_directory_recursive (dir=0xbfffefc0,  
path=<value temporarily unavailable, due to optimizations>,  
base=<value temporarily unavailable, due to optimizations>, baselen=7,  
check_only=0, simplify=<value temporarily unavailable, due to  
optimizations>) at dir.c:627
#5  0x000695cf in read_directory_recursive (dir=0xbfffefc0,  
path=<value temporarily unavailable, due to optimizations>,  
base=<value temporarily unavailable, due to optimizations>, baselen=0,  
check_only=0, simplify=<value temporarily unavailable, due to  
optimizations>) at dir.c:627
#6  0x000698f3 in read_directory (dir=0xbfffefc0, path=0xae8a0 ".",  
base=0xae19c "", baselen=4394996, pathspec=0x0) at dir.c:715
#7  0x00094746 in wt_status_print (s=0xbffff5ec) at wt-status.c:282
#8  0x00014423 in run_status (fp=0xa01a65f8, index_file=0x5003b0 "/ 
Users/djensen/Projects/Soocial/source/.git/index", prefix=0x0,  
nowarn=4394996) at builtin-commit.c:346
#9  0x00014e0f in cmd_status (argc=1, argv=0x0, prefix=0x5003b0 "/ 
Users/djensen/Projects/Soocial/source/.git/index") at builtin-commit.c: 
782
#10 0x00001da0 in handle_internal_command (argc=1, argv=0xbffff7f8) at  
git.c:259
#11 0x00001faf in main (argc=1, argv=0xbffff7f8) at git.c:449
(gdb)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help