git died

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

git died

From: Christian <hidden>
Date: 2016-06-15 22:43:07

hi list,

i've got git-1.5.1 here and did a git push to a http based repository, i 
got a segfault :(

please see the logs :


root@beroTester:/usr/src/mISDN# git push
Fetching remote heads...
  refs/remotes/origin/
  refs/remotes/
  refs/tags/
  refs/heads/
  refs/
'refs/remotes/origin/origin': up-to-date
'refs/remotes/origin/mqueue': up-to-date
updating 'refs/remotes/origin/master'
  from 943055277343bac48eed11ef6f2a9c8a4139e8bf
  to   9fe4b6bc5eadbcec188cb0c91910a1b557a27478
    done
'refs/remotes/origin/mISDN_1_1': up-to-date
'refs/remotes/origin/NEWCTRL_BRANCH': up-to-date
updating 'refs/remotes/origin/HEAD'
  from 943055277343bac48eed11ef6f2a9c8a4139e8bf
  to   9fe4b6bc5eadbcec188cb0c91910a1b557a27478
    done
'refs/tags/VERSION_0_1': up-to-date
'refs/tags/mISDN_1_1_2': up-to-date
'refs/tags/mISDN_1_0_2': up-to-date
'refs/tags/mISDN_1_0_0': up-to-date
'refs/tags/before_mISDN': up-to-date
'refs/tags/mISDN_1_0_4': up-to-date
'refs/tags/mISDN_1_1_1': up-to-date
'refs/tags/mISDN_1_0_1': up-to-date
'refs/tags/BEFORE_SKB': up-to-date
'refs/tags/OLDCTRL': up-to-date
'refs/tags/PRE_MQUEUE': up-to-date
'refs/tags/mISDN_1_0_3': up-to-date
'refs/tags/mISDN_1_1_0': up-to-date
'refs/heads/mISDN_1_1': up-to-date
updating 'refs/heads/master'
  from 9fe4b6bc5eadbcec188cb0c91910a1b557a27478
  to   4c711e270dcddf90e634f312dbbc002f3c025fc5
fatal: http-push died with strange error



root@beroTester:/usr/src/mISDN# gdb git core
GNU gdb 6.0
Copyright 2003 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-linux"...

warning: core file may not match specified executable file.
Core was generated by `/usr//bin/git-http-push 
http://git.misdn.org/git/mISDN.git/'.
Program terminated with signal 11, Segmentation fault.
#0  0x0806c7ad in git_pack_config (k=0xbff51138 
"È\023õ¿Í4\005\b@\002\r\b\224\023õ¿Ø\021õ¿", v=0x80d0240 "i")
    at builtin-pack-objects.c:1442
1442            return git_default_config(k, v);
(gdb) p k
$1 = 0xbff51138 "È\023õ¿Í4\005\b@\002\r\b\224\023õ¿Ø\021õ¿"
(gdb) p v
$2 = 0x80d0240 "i"
(gdb) bt
#0  0x0806c7ad in git_pack_config (k=0xbff51138 
"È\023õ¿Í4\005\b@\002\r\b\224\023õ¿Ø\021õ¿", v=0x80d0240 "i")
    at builtin-pack-objects.c:1442
#1  0x0804b9a8 in cmd_add (argc=135070272, argv=0xbff51394, 
prefix=0xbff511d8 "(&\017\b") at builtin-add.c:213
#2  0x080534cd in find_origin (sb=0x0, parent=0xb7f0ecc0, 
origin=0xbff51428) at builtin-blame.c:337
#3  0xb7c22eb0 in ?? ()
(gdb) bt full
#0  0x0806c7ad in git_pack_config (k=0xbff51138 
"È\023õ¿Í4\005\b@\002\r\b\224\023õ¿Ø\021õ¿", v=0x80d0240 "i")
    at builtin-pack-objects.c:1442
No locals.
#1  0x0804b9a8 in cmd_add (argc=135070272, argv=0xbff51394, 
prefix=0xbff511d8 "(&\017\b") at builtin-add.c:213
        st = {st_dev = 0, __pad1 = 0, __st_ino = 0, st_mode = 0, 
st_nlink = 411, st_uid = 0, st_gid = 4096,
  st_rdev = 8, __pad2 = 25220, st_size = 5057650701223280700, st_blksize 
= 827022072,
  st_blocks = 3552032753487733380, st_atim = {tv_sec = 119235924, 
tv_nsec = 0}, st_mtim = {tv_sec = 2,
    tv_nsec = -1074458392}, st_ctim = {tv_sec = 134573638, tv_nsec = 8}, 
st_ino = 13831980762889212616}
        i = Variable "i" is not available.
(gdb)

Re: git died

From: Julian Phillips <hidden>
Date: 2016-06-15 22:43:07

On Thu, 26 Apr 2007, Christian wrote:
hi list,

i've got git-1.5.1 here and did a git push to a http based repository, i got 
a segfault :(

please see the logs :
...
root@beroTester:/usr/src/mISDN# gdb git core
GNU gdb 6.0
Copyright 2003 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-linux"...

warning: core file may not match specified executable file.
Core was generated by `/usr//bin/git-http-push
git-http-push is a separate program.  You might want to try "gdb 
git-http-push core"?

-- 
Julian

  ---

Re: git died

From: Christian <hidden>
Date: 2016-06-15 22:43:07

Julian Phillips wrote:
On Thu, 26 Apr 2007, Christian wrote:
quoted
hi list,

i've got git-1.5.1 here and did a git push to a http based 
repository, i got a segfault :(

please see the logs :
...
quoted
root@beroTester:/usr/src/mISDN# gdb git core
GNU gdb 6.0
Copyright 2003 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-linux"...

warning: core file may not match specified executable file.
Core was generated by `/usr//bin/git-http-push
git-http-push is a separate program.  You might want to try "gdb 
git-http-push core"?
Loaded symbols for /lib/tls/libnss_dns.so.2
#0  decode_tree_entry (desc=0xbff5110c, buf=0x0, size=454) at tree-walk.c:10
10              while ((c = *str++) != ' ') {
(gdb) bt
#0  decode_tree_entry (desc=0xbff5110c, buf=0x0, size=454) at tree-walk.c:10
#1  0x0804b9a8 in mark_tree_uninteresting (tree=0x80d0240) at revision.c:65
#2  0x080534cd in main (argc=2, argv=Cannot access memory at address 0x1ca
) at http-push.c:1998
(gdb)

Re: git died

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:43:07


On Thu, 26 Apr 2007, Christian wrote:
Julian Phillips wrote:

Loaded symbols for /lib/tls/libnss_dns.so.2
#0  decode_tree_entry (desc=0xbff5110c, buf=0x0, size=454) at tree-walk.c:10
10              while ((c = *str++) != ' ') {
(gdb) bt
#0  decode_tree_entry (desc=0xbff5110c, buf=0x0, size=454) at tree-walk.c:10
#1  0x0804b9a8 in mark_tree_uninteresting (tree=0x80d0240) at revision.c:65
#2  0x080534cd in main (argc=2, argv=Cannot access memory at address 0x1ca
) at http-push.c:1998
It looks like some strange corruption in http-push.

You seem to have a NULL "buf" pointer (which certainly explains a 
SIGSEGV!), but mark_tree_uninteresting will have done

	if (parse_tree(tree) < 0)
		die("bad tree %s", sha1_to_hex(obj->sha1));

	init_tree_desc(&desc, tree->buffer, tree->size);
	while (tree_entry(&desc, &entry)) {
		..


and tree_entry() does

	*entry = desc->entry;
	update_tree_entry(desc);

and none of that sets "entry->buf" to NULL unless "size" was also zero.

Can you run it under something like valgrind? You'd need to run 
"git-http-push" directly (as I don't think valgrind follows forks, and 
even if you can make it do so some way that would just be horribly slow 
and hard to debug).

		Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help