* Reproducible, corrupt packfile after fresh [not found] ` <52037F84.9060006@exxcellent.de> @ 2013-08-08 11:56 ` gitml.jexpert 2013-08-08 12:13 ` Thomas Rast 2013-08-08 12:18 ` Reproducible, corrupt packfile after fresh Stefan Beller 0 siblings, 2 replies; 26+ messages in thread From: gitml.jexpert @ 2013-08-08 11:56 UTC (permalink / raw) To: git I'm a heavy user of git-svn and experience an issue with one specific (git-svn) repository: 'git fsck' reports a corrupt packfile after every checkout. Now I'm totally puzzled about the cause and what do about it. This is what I do: git svn init -s http://svn.foo.com/myproject myproject.git cd myproject.git git svn fetch # Much more reliable than 'git-svn clone' This checks out ~2100 commits and executes 2 git-gc during checkout. The final .git repo size is about 940MB. Then I run git fsck ➜ myproject.git git:(master) git fsck Checking object directories: 100% (256/256), done. error: packed 0f5f33639bfc1a781fe080c31a1f076d9a25c1d3 from .git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack is corrupt *** glibc detected *** git: free(): invalid pointer: 0x00007f46a09e9010 *** ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f46d9ebab96] git[0x4ddf46] git[0x4b4123] git[0x431524] git[0x405ce8] git[0x4050e2] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f46d9e5d76d] git[0x405529] ======= Memory map: ======== 00400000-0055f000 r-xp 00000000 fc:01 12452043 /usr/bin/git 0075e000-0075f000 r--p 0015e000 fc:01 12452043 /usr/bin/git .... This only affects this very particular git-svn repo (and I have dozens of them). The error happens reproducible on every fresh checkout as described above. The backtrace does not appear always. The object is a very large blob git show 0f5f33639bfc1a781fe080c31a1f076d9a25c1d3 | wc -c 39524691 Any hints what to do? Thanks - Ben ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh 2013-08-08 11:56 ` Reproducible, corrupt packfile after fresh gitml.jexpert @ 2013-08-08 12:13 ` Thomas Rast 2013-08-08 12:23 ` Reproducible, corrupt packfile after fresh git-svn checkout gitml.jexpert 2013-08-08 12:18 ` Reproducible, corrupt packfile after fresh Stefan Beller 1 sibling, 1 reply; 26+ messages in thread From: Thomas Rast @ 2013-08-08 12:13 UTC (permalink / raw) To: gitml.jexpert; +Cc: git gitml.jexpert@recursor.net writes: > ➜ myproject.git git:(master) git fsck > Checking object directories: 100% (256/256), done. > error: packed 0f5f33639bfc1a781fe080c31a1f076d9a25c1d3 from > .git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack is > corrupt > *** glibc detected *** git: free(): invalid pointer: 0x00007f46a09e9010 *** > ======= Backtrace: ========= > /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f46d9ebab96] > git[0x4ddf46] > git[0x4b4123] > git[0x431524] > git[0x405ce8] > git[0x4050e2] > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f46d9e5d76d] > git[0x405529] > ======= Memory map: ======== > 00400000-0055f000 r-xp 00000000 fc:01 12452043 > /usr/bin/git > 0075e000-0075f000 r--p 0015e000 fc:01 12452043 > /usr/bin/git [...] > Any hints what to do? Regardless of any possible fault in git-svn, there's an obvious bug here with git-fsck. Can you share the pack (if the project is public) or compile a git-fsck without optimization and with debugging, and run it under valgrind, to hopefully get us a backtrace of where the memory management goes off the rails? -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout 2013-08-08 12:13 ` Thomas Rast @ 2013-08-08 12:23 ` gitml.jexpert 2013-08-08 12:31 ` Thomas Rast ` (2 more replies) 0 siblings, 3 replies; 26+ messages in thread From: gitml.jexpert @ 2013-08-08 12:23 UTC (permalink / raw) To: git > Regardless of any possible fault in git-svn, there's an obvious bug here > with git-fsck. Can you share the pack (if the project is public) or > compile a git-fsck without optimization and with debugging, and run it > under valgrind, to hopefully get us a backtrace of where the memory > management goes off the rails? Unfortunately I'm unable to share the pack. As Java Developer I'm note very savy, but I'd try. Do you have me any pointers on ".. without optimization and with debugging" and "run it under valgrind"? Currently I used deb http://ppa.launchpad.net/git-core/ppa/ubuntu quantal main as source. ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout 2013-08-08 12:23 ` Reproducible, corrupt packfile after fresh git-svn checkout gitml.jexpert @ 2013-08-08 12:31 ` Thomas Rast 2013-08-08 13:12 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) gitml.jexpert 2013-08-08 12:38 ` Reproducible, corrupt packfile after fresh git-svn checkout Matthieu Moy 2013-08-08 12:41 ` Stefan Beller 2 siblings, 1 reply; 26+ messages in thread From: Thomas Rast @ 2013-08-08 12:31 UTC (permalink / raw) To: gitml.jexpert; +Cc: git gitml.jexpert@recursor.net writes: >> Regardless of any possible fault in git-svn, there's an obvious bug here >> with git-fsck. Can you share the pack (if the project is public) or >> compile a git-fsck without optimization and with debugging, and run it >> under valgrind, to hopefully get us a backtrace of where the memory >> management goes off the rails? > > Unfortunately I'm unable to share the pack. > > As Java Developer I'm note very savy, but I'd try. > Do you have me any pointers on ".. without optimization and with > debugging" and "run it under valgrind"? > > Currently I used > deb http://ppa.launchpad.net/git-core/ppa/ubuntu quantal main > as source. Try something like # The package names might be wrong and/or you may need additional -dev # packages, I don't know the specifics for ubuntu apt-get install gcc make valgrind libcurl-dev zlib-dev cd git clone git://git.kernel.org/pub/scm/git/git.git cd git echo 'CFLAGS = -O0 -g' >>config.mak make cd /path/to/repo valgrind --track-origins=yes ~/git/git-fsck It'll be very slow, at least 20x the normal runtime, so don't be surprised if it doesn't seem to get anywhere at first. -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) 2013-08-08 12:31 ` Thomas Rast @ 2013-08-08 13:12 ` gitml.jexpert 2013-08-08 13:18 ` Matthieu Moy 2013-08-08 13:20 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) Thomas Rast 0 siblings, 2 replies; 26+ messages in thread From: gitml.jexpert @ 2013-08-08 13:12 UTC (permalink / raw) To: git Great! Thank you all guys for your extensive instructions! @Thomas: I only had to add libexpat1-dev to the list. I checked out Git v1.8.3.4 as this was my used verion and built as instructed. The error is still reproducible using the "CFLAGS = -O0 -g" build. So - now the puzzling thing: With valgrind it seems to work! If I run it plain, it doesn't: /tmp/project.git $ valgrind --track-origins=yes ~/projects/git.git/git-fsck ==3431== Memcheck, a memory error detector ==3431== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==3431== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==3431== Command: /home/ben/projects/git.git/git-fsck ==3431== ==3431== Warning: set address range perms: large range [0x70b5000, 0x2b0ff000) (defined) Checking object directories: 100% (256/256), done. ==3431== Warning: set address range perms: large range [0x3959d000, 0x49d53000) (defined) Checking objects: 100% (63588/63588), done. Checking connectivity: 68696, done. ==3431== ==3431== HEAP SUMMARY: ==3431== in use at exit: 7,574,911 bytes in 15,428 blocks ==3431== total heap usage: 422,498 allocs, 407,070 frees, 4,396,939,465 bytes allocated ==3431== ==3431== LEAK SUMMARY: ==3431== definitely lost: 0 bytes in 0 blocks ==3431== indirectly lost: 0 bytes in 0 blocks ==3431== possibly lost: 0 bytes in 0 blocks ==3431== still reachable: 7,574,911 bytes in 15,428 blocks ==3431== suppressed: 0 bytes in 0 blocks ==3431== Rerun with --leak-check=full to see details of leaked memory ==3431== ==3431== For counts of detected and suppressed errors, rerun with: -v ==3431== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2) /tmp/project.git $ ~/projects/git.git/git-fsck Checking object directories: 100% (256/256), done. error: packed 49cdd0b21a351f3366008615d2cf8d03ca943978 from .git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack is corrupt *** glibc detected *** <unknown>: free(): invalid pointer: 0x00007f8576682010 *** ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f85ad765b96] [0x4e727c] I'm using a i5-3340M on Linux Mint 14 with a offical Linux 3.9.9 gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 Any further hints? > Try something like > > # The package names might be wrong and/or you may need additional -dev > # packages, I don't know the specifics for ubuntu > apt-get install gcc make valgrind libcurl-dev zlib-dev > cd > git clone git://git.kernel.org/pub/scm/git/git.git > cd git > echo 'CFLAGS = -O0 -g' >>config.mak > make > cd /path/to/repo > valgrind --track-origins=yes ~/git/git-fsck > > It'll be very slow, at least 20x the normal runtime, so don't be > surprised if it doesn't seem to get anywhere at first. > ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) 2013-08-08 13:12 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) gitml.jexpert @ 2013-08-08 13:18 ` Matthieu Moy 2013-08-08 13:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message gitml.jexpert 2013-08-08 13:20 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) Thomas Rast 1 sibling, 1 reply; 26+ messages in thread From: Matthieu Moy @ 2013-08-08 13:18 UTC (permalink / raw) To: gitml.jexpert; +Cc: git gitml.jexpert@recursor.net writes: > So - now the puzzling thing: With valgrind it seems to work! Weird, indeed. What about GDB ? -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-08 13:18 ` Matthieu Moy @ 2013-08-08 13:27 ` gitml.jexpert 2013-08-08 13:34 ` Matthieu Moy 0 siblings, 1 reply; 26+ messages in thread From: gitml.jexpert @ 2013-08-08 13:27 UTC (permalink / raw) To: git Am 08.08.2013 15:18, schrieb Matthieu Moy - Matthieu.Moy@grenoble-inp.fr:> gitml.jexpert@recursor.net writes: >> So - now the puzzling thing: With valgrind it seems to work! > Weird, indeed. What about GDB ? Ah - come on. Is this another Heisenberg bug ? Still trying to reproduce it using gdb and/or valgrind... ben@n179 /tmp/project.git $ gdb --args ~/projects/git.git/git-fsck GNU gdb (GDB) 7.5-ubuntu Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/ben/projects/git.git/git-fsck...done. (gdb) run Starting program: /home/ben/projects/git.git/git-fsck warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Checking object directories: 100% (256/256), done. Checking objects: 100% (63588/63588), done. [Inferior 1 (process 3795) exited normally] (gdb) quit ben@n179 /tmp/project.git $ ~/projects/git.git/git-fsck Checking object directories: 100% (256/256), done. error: packed 49cdd0b21a351f3366008615d2cf8d03ca943978 from .git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack is corrupt Checking objects: 100% (63588/63588), done. ben@n179 /tmp/project.git $ ~/projects/git.git/git-fsck Checking object directories: 100% (256/256), done. error: packed 49cdd0b21a351f3366008615d2cf8d03ca943978 from .git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack is corrupt Checking objects: 100% (63588/63588), done. ben@n179 /tmp/project.git $ ~/projects/git.git/git-fsck Checking object directories: 100% (256/256), done. Checking objects: 100% (63588/63588), done. ben@n179 /tmp/project.git $ ~/projects/git.git/git-fsck Checking object directories: 100% (256/256), done. error: packed 0f5f33639bfc1a781fe080c31a1f076d9a25c1d3 from .git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack is corrupt *** glibc detected *** <unknown>: free(): invalid pointer: 0x00007fe129669010 *** ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7fe162d3eb96] [0x51e401] [0x51e53c] [0x51ecc3] [0x4e707b] [0x4e7485] [0x43d433] [0x405158] [0x4052ee] [0x4054ba] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7fe162ce176d] [0x404429] ======= Memory map: ======== 00400000-005bb000 r-xp 00000000 fc:01 3939047 /home/ben/projects/git.git/git-fsck 007ba000-007bb000 r--p 001ba000 fc:01 3939047 /home/ben/projects/git.git/git-fsck 007bb000-007c2000 rw-p 001bb000 fc:01 3939047 /home/ben/projects/git.git/git-fsck 007c2000-00822000 rw-p 00000000 00:00 0 02770000-05809000 rw-p 00000000 00:00 0 [heap] 7fe129669000-7fe12bc38000 rw-p 00000000 00:00 0 7fe12dff5000-7fe12e00a000 r-xp 00000000 fc:01 7081526 /lib/x86_64-linux-gnu/libgcc_s.so.1 7fe12e00a000-7fe12e209000 ---p 00015000 fc:01 7081526 /lib/x86_64-linux-gnu/libgcc_s.so.1 7fe12e209000-7fe12e20a000 r--p 00014000 fc:01 7081526 /lib/x86_64-linux-gnu/libgcc_s.so.1 7fe12e20a000-7fe12e20b000 rw-p 00015000 fc:01 7081526 /lib/x86_64-linux-gnu/libgcc_s.so.1 7fe12e20b000-7fe13e9c1000 r--p 00000000 fc:01 10879034 /tmp/project.git/.git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack 7fe13e9c1000-7fe162a0b000 r--p 00000000 fc:01 10881032 /tmp/project.git/.git/objects/pack/pack-5b132454d5acb542969a939fe55186a65d9dd697.pack 7fe162a0b000-7fe162abc000 r--p 00000000 fc:01 10902665 /tmp/project.git/.git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.idx 7fe162abc000-7fe162abe000 r-xp 00000000 fc:01 7085848 /lib/x86_64-linux-gnu/libdl-2.15.so 7fe162abe000-7fe162cbe000 ---p 00002000 fc:01 7085848 /lib/x86_64-linux-gnu/libdl-2.15.so 7fe162cbe000-7fe162cbf000 r--p 00002000 fc:01 7085848 /lib/x86_64-linux-gnu/libdl-2.15.so 7fe162cbf000-7fe162cc0000 rw-p 00003000 fc:01 7085848 /lib/x86_64-linux-gnu/libdl-2.15.so 7fe162cc0000-7fe162e75000 r-xp 00000000 fc:01 7085850 /lib/x86_64-linux-gnu/libc-2.15.so 7fe162e75000-7fe163074000 ---p 001b5000 fc:01 7085850 /lib/x86_64-linux-gnu/libc-2.15.so 7fe163074000-7fe163078000 r--p 001b4000 fc:01 7085850 /lib/x86_64-linux-gnu/libc-2.15.so 7fe163078000-7fe16307a000 rw-p 001b8000 fc:01 7085850 /lib/x86_64-linux-gnu/libc-2.15.so 7fe16307a000-7fe16307f000 rw-p 00000000 00:00 0 7fe16307f000-7fe163097000 r-xp 00000000 fc:01 7085833 /lib/x86_64-linux-gnu/libpthread-2.15.so 7fe163097000-7fe163296000 ---p 00018000 fc:01 7085833 /lib/x86_64-linux-gnu/libpthread-2.15.so 7fe163296000-7fe163297000 r--p 00017000 fc:01 7085833 /lib/x86_64-linux-gnu/libpthread-2.15.so 7fe163297000-7fe163298000 rw-p 00018000 fc:01 7085833 /lib/x86_64-linux-gnu/libpthread-2.15.so 7fe163298000-7fe16329c000 rw-p 00000000 00:00 0 7fe16329c000-7fe16344d000 r-xp 00000000 fc:01 7078062 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 7fe16344d000-7fe16364d000 ---p 001b1000 fc:01 7078062 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 7fe16364d000-7fe163668000 r--p 001b1000 fc:01 7078062 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 7fe163668000-7fe163673000 rw-p 001cc000 fc:01 7078062 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 7fe163673000-7fe163677000 rw-p 00000000 00:00 0 7fe163677000-7fe16368d000 r-xp 00000000 fc:01 7081635 /lib/x86_64-linux-gnu/libz.so.1.2.7 7fe16368d000-7fe16388c000 ---p 00016000 fc:01 7081635 /lib/x86_64-linux-gnu/libz.so.1.2.7 7fe16388c000-7fe16388d000 r--p 00015000 fc:01 7081635 /lib/x86_64-linux-gnu/libz.so.1.2.7 7fe16388d000-7fe16388e000 rw-p 00016000 fc:01 7081635 /lib/x86_64-linux-gnu/libz.so.1.2.7 7fe16388e000-7fe1638b0000 r-xp 00000000 fc:01 7085838 /lib/x86_64-linux-gnu/ld-2.15.so 7fe16394a000-7fe163a4d000 r--p 00000000 fc:01 10888685 /tmp/project.git/.git/objects/pack/pack-5b132454d5acb542969a939fe55186a65d9dd697.idx 7fe163a4d000-7fe163a8c000 r--p 00000000 fc:01 1048722 /usr/lib/locale/de_DE.utf8/LC_CTYPE 7fe163a8c000-7fe163a90000 rw-p 00000000 00:00 0 7fe163aa5000-7fe163aa6000 rw-p 00000000 00:00 0 7fe163aa6000-7fe163aad000 r--s 00000000 fc:01 12987862 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache 7fe163aad000-7fe163aae000 r--p 00000000 fc:01 1050508 /usr/lib/locale/de_DE.utf8/LC_MESSAGES/SYS_LC_MESSAGES 7fe163aae000-7fe163ab0000 rw-p 00000000 00:00 0 7fe163ab0000-7fe163ab1000 r--p 00022000 fc:01 7085838 /lib/x86_64-linux-gnu/ld-2.15.so 7fe163ab1000-7fe163ab3000 rw-p 00023000 fc:01 7085838 /lib/x86_64-linux-gnu/ld-2.15.so 7fff8299b000-7fff829bc000 rw-p 00000000 00:00 0 [stack] 7fff829fe000-7fff82a00000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Abgebrochen ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-08 13:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message gitml.jexpert @ 2013-08-08 13:34 ` Matthieu Moy 2013-08-08 13:43 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) gitml.jexpert 0 siblings, 1 reply; 26+ messages in thread From: Matthieu Moy @ 2013-08-08 13:34 UTC (permalink / raw) To: gitml.jexpert; +Cc: git gitml.jexpert@recursor.net writes: > /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7fe162d3eb96] > [0x51e401] > [0x51e53c] > [0x51ecc3] > [0x4e707b] > [0x4e7485] > [0x43d433] > [0x405158] > [0x4052ee] > [0x4054ba] Using addr2line -e ~/projects/git.git/git-fsck on these addresses may help a little, but not sure it's going to be sufficient :-(. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) 2013-08-08 13:34 ` Matthieu Moy @ 2013-08-08 13:43 ` gitml.jexpert 2013-08-08 14:20 ` Thomas Rast 0 siblings, 1 reply; 26+ messages in thread From: gitml.jexpert @ 2013-08-08 13:43 UTC (permalink / raw) To: git > Using > > addr2line -e ~/projects/git.git/git-fsck > > on these addresses may help a little, but not sure it's going to be > sufficient :-(. I'm still trying to reproduce this issue using gdb. Also I'm trying to reproduce this issue with my git repo on another machine. ben@n179 /tmp $ addr2line -e ~/projects/git.git/git-fsck 0x51e401 0x51e53c 0x51ecc3 0x4e707b 0x4e7485 0x43d433 0x405158 0x4052ee 0x4054ba /home/ben/projects/git.git/sha1_file.c:1901 /home/ben/projects/git.git/sha1_file.c:1928 /home/ben/projects/git.git/sha1_file.c:2096 /home/ben/projects/git.git/pack-check.c:119 /home/ben/projects/git.git/pack-check.c:177 /home/ben/projects/git.git/builtin/fsck.c:678 /home/ben/projects/git.git/git.c:291 /home/ben/projects/git.git/git.c:453 /home/ben/projects/git.git/git.c:543 ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) 2013-08-08 13:43 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) gitml.jexpert @ 2013-08-08 14:20 ` Thomas Rast 2013-08-08 14:53 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 " Ben Tebulin 0 siblings, 1 reply; 26+ messages in thread From: Thomas Rast @ 2013-08-08 14:20 UTC (permalink / raw) To: gitml.jexpert; +Cc: git, Matthieu Moy, Stefan Beller gitml.jexpert@recursor.net writes: >> Using >> >> addr2line -e ~/projects/git.git/git-fsck >> >> on these addresses may help a little, but not sure it's going to be >> sufficient :-(. > > > I'm still trying to reproduce this issue using gdb. > Also I'm trying to reproduce this issue with my git repo on another machine. > > ben@n179 /tmp $ addr2line -e ~/projects/git.git/git-fsck > 0x51e401 > 0x51e53c > 0x51ecc3 > 0x4e707b > 0x4e7485 > 0x43d433 > 0x405158 > 0x4052ee > 0x4054ba > /home/ben/projects/git.git/sha1_file.c:1901 > /home/ben/projects/git.git/sha1_file.c:1928 > /home/ben/projects/git.git/sha1_file.c:2096 > /home/ben/projects/git.git/pack-check.c:119 > /home/ben/projects/git.git/pack-check.c:177 > /home/ben/projects/git.git/builtin/fsck.c:678 > /home/ben/projects/git.git/git.c:291 > /home/ben/projects/git.git/git.c:453 > /home/ben/projects/git.git/git.c:543 Can you try to reproduce with a version older than v1.8.3? E.g. v1.8.2.3. I'm asking because the above points at packed_object_info(), which I recently rewrote to be nonrecursive. Also, can you please stop losing the Cc list? The etiquette on this list is to Cc everyone who was involved so far, usually meaning everyone who was already a recipient of the mail you are replying to. -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 of 20) 2013-08-08 14:20 ` Thomas Rast @ 2013-08-08 14:53 ` Ben Tebulin 2013-08-08 15:28 ` Thomas Rast 0 siblings, 1 reply; 26+ messages in thread From: Ben Tebulin @ 2013-08-08 14:53 UTC (permalink / raw) To: Thomas Rast - trast@inf.ethz.ch; +Cc: git, Matthieu Moy, Stefan Beller Am 08.08.2013 16:20, schrieb Thomas Rast - trast@inf.ethz.ch: > Can you try to reproduce with a version older than v1.8.3? > E.g. v1.8.2.3. > I'm asking because the above points at packed_object_info(), which I > recently rewrote to be nonrecursive. It seems to run 'much better' v1.8.2.3 : 3/10 runs do fail fb56570 : 9/10 runs do fail They always fail on a big blob (39MB) as I wrote in my first e-mail: ben@n179 /tmp/project.git $ ~/projects/git.git/git-show 49cdd0b21a351f3366008615d2cf8d03ca943978 | wc -c error: sha1 mismatch 49cdd0b21a351f3366008615d2cf8d03ca943978 fatal: bad object 49cdd0b21a351f3366008615d2cf8d03ca943978 0 ben@n179 /tmp/project.git $ ~/projects/git.git/git-show 49cdd0b21a351f3366008615d2cf8d03ca943978 | wc -c 39517156 > Also, can you please stop losing the Cc list? I'm _very_ sorry for this. I was trying to hide my e-mail address from spam robots using spamgourmet.com as remailer. Unfortunately it breaks CC. Switching e-mail now. ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 of 20) 2013-08-08 14:53 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 " Ben Tebulin @ 2013-08-08 15:28 ` Thomas Rast 2013-08-08 16:36 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin 2013-08-08 17:38 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 of 20) Junio C Hamano 0 siblings, 2 replies; 26+ messages in thread From: Thomas Rast @ 2013-08-08 15:28 UTC (permalink / raw) To: Ben Tebulin; +Cc: git, Matthieu Moy, Stefan Beller Ben Tebulin <tebulin@googlemail.com> writes: > Am 08.08.2013 16:20, schrieb Thomas Rast - trast@inf.ethz.ch: >> Can you try to reproduce with a version older than v1.8.3? >> E.g. v1.8.2.3. >> I'm asking because the above points at packed_object_info(), which I >> recently rewrote to be nonrecursive. > > It seems to run 'much better' > v1.8.2.3 : 3/10 runs do fail > fb56570 : 9/10 runs do fail The good news is that this shifts the blame away from my commit ;-) as the problem clearly existed even before that. The bad news, of course, is that this is another hunch that turned out to be wrong. I'm running out of ideas. > They always fail on a big blob (39MB) as I wrote in my first e-mail: > > ben@n179 /tmp/project.git $ ~/projects/git.git/git-show 49cdd0b21a351f3366008615d2cf8d03ca943978 | wc -c > error: sha1 mismatch 49cdd0b21a351f3366008615d2cf8d03ca943978 > fatal: bad object 49cdd0b21a351f3366008615d2cf8d03ca943978 > 0 > ben@n179 /tmp/project.git $ ~/projects/git.git/git-show 49cdd0b21a351f3366008615d2cf8d03ca943978 | wc -c > 39517156 Hrmm. I wonder about the significance of those 39MB. What is your core.packedGitWindowSize? (Judging from the pastes you seem to be on 64bit, so the default would be 1GB.) -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-08 15:28 ` Thomas Rast @ 2013-08-08 16:36 ` Ben Tebulin 2013-08-08 16:48 ` Matthieu Moy 2013-08-08 17:38 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 of 20) Junio C Hamano 1 sibling, 1 reply; 26+ messages in thread From: Ben Tebulin @ 2013-08-08 16:36 UTC (permalink / raw) To: Thomas Rast; +Cc: Ben Tebulin, git, Matthieu Moy, Stefan Beller I was unable to reproduce the error with the same repo and same Git version on a different machine (Debian Squeeze x64 on a AMD Phenom x6 1045T). > I'm running out of ideas. Me, too. Based on out current observations I'd assume one of: a) a rare, timing-sensitive bug in Git b) a compiler/distribution/environment sensitive issue c) or defect/buggy Hardware (CPU, Memory) > Hrmm. I wonder about the significance of those 39MB. What is your > core.packedGitWindowSize? (Judging from the pastes you seem to be on > 64bit, so the default would be 1GB.) The default. I have 12GB RAM. So I'll try to rule out b) and c) as far as I can and report in if I have any new findings. Nevertheless thank you very much for your extensive assistance! - Ben ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-08 16:36 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin @ 2013-08-08 16:48 ` Matthieu Moy 0 siblings, 0 replies; 26+ messages in thread From: Matthieu Moy @ 2013-08-08 16:48 UTC (permalink / raw) To: Ben Tebulin; +Cc: Thomas Rast, git, Stefan Beller Ben Tebulin <tebulin@googlemail.com> writes: > c) or defect/buggy Hardware (CPU, Memory) You may want to try a memcheck86 on your machine for a few hours, in case ... (if your RAM is broken, you do want to know it!). -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 of 20) 2013-08-08 15:28 ` Thomas Rast 2013-08-08 16:36 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin @ 2013-08-08 17:38 ` Junio C Hamano 2013-08-09 12:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin 1 sibling, 1 reply; 26+ messages in thread From: Junio C Hamano @ 2013-08-08 17:38 UTC (permalink / raw) To: Ben Tebulin; +Cc: Thomas Rast, git, Matthieu Moy, Stefan Beller Thomas Rast <trast@inf.ethz.ch> writes: > Ben Tebulin <tebulin@googlemail.com> writes: > >> Am 08.08.2013 16:20, schrieb Thomas Rast - trast@inf.ethz.ch: >>> Can you try to reproduce with a version older than v1.8.3? >>> E.g. v1.8.2.3. >>> I'm asking because the above points at packed_object_info(), which I >>> recently rewrote to be nonrecursive. >> >> It seems to run 'much better' >> v1.8.2.3 : 3/10 runs do fail >> fb56570 : 9/10 runs do fail > > The good news is that this shifts the blame away from my commit ;-) as > the problem clearly existed even before that. > > The bad news, of course, is that this is another hunch that turned out > to be wrong. I'm running out of ideas. > >> They always fail on a big blob (39MB) as I wrote in my first e-mail: >> >> ben@n179 /tmp/project.git $ ~/projects/git.git/git-show 49cdd0b21a351f3366008615d2cf8d03ca943978 | wc -c >> error: sha1 mismatch 49cdd0b21a351f3366008615d2cf8d03ca943978 >> fatal: bad object 49cdd0b21a351f3366008615d2cf8d03ca943978 >> 0 >> ben@n179 /tmp/project.git $ ~/projects/git.git/git-show 49cdd0b21a351f3366008615d2cf8d03ca943978 | wc -c >> 39517156 Hmm, from this, and a later one ... > Ben Tebulin <tebulin@googlemail.com> writes: > > I was unable to reproduce the error with the same repo and same Git > version on a different machine (Debian Squeeze x64 on a AMD Phenom x6 > 1045T). ... I am reading that (1) the packfile and repository is basically OK, (2) reading that object sometimes fails, and (3) the symptom is not limited to fsck but anything that reads the object with parse_object(). And that symptom exists only on that single machine (I am assuming that the repository was bit-for-bit copied, not "cloned", for the purpose of testing it on the other machine). That makes me suspect something outside the control of Git (e.g. faulty memory or disk controller cable). Are there other big blobs in the repository, and would "show | wc" fail if you attempt to read it on that machine? Thanks all for helping to track this, by the way. ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-08 17:38 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 of 20) Junio C Hamano @ 2013-08-09 12:27 ` Ben Tebulin 2013-08-09 12:54 ` Stefan Beller 2013-08-14 9:09 ` Reproducible, corrupt packfile after fresh git-svn checkout message Thomas Rast 0 siblings, 2 replies; 26+ messages in thread From: Ben Tebulin @ 2013-08-09 12:27 UTC (permalink / raw) To: Junio C Hamano; +Cc: Ben Tebulin, Thomas Rast, git, Matthieu Moy, Stefan Beller Hello everybody! I have some _very interesting_ news regarding this issue! Here is the deal: 1. I was able to *reproduce the error on a machine of a coworker!* 2. I was able to rule out - HDD: It's reproducible from /dev/shm - Memory: Memory tests works fine now the interesting part: 3. Occurs on Linux kernels 3.7.10, 3.8.x, 3.9.11, 3.10.5 _but not on:_ 3.6.11, 3.5.7 and 2.6.32 Both machines showing this problem are »Dell Latitude E6330« with an »i5-3340M @ 2.70GHz« CPU. Mine running stock kernels, coworker using plain Ubuntu 13.04. Furthermore I need to stress, that we never had any issues with our devices during daily _at all_. So what to do best now? - Ben Am 08.08.2013 19:38, schrieb Junio C Hamano: >>>> Can you try to reproduce with a version older than v1.8.3? >>>> E.g. v1.8.2.3. >>> >>> It seems to run 'much better' >>> v1.8.2.3 : 3/10 runs do fail >>> fb56570 : 9/10 runs do fail [..] >>> They always fail on a big blob (39MB) as I wrote in my first e-mail: >>> >>> ben@n179 /tmp/project.git $ ~/projects/git.git/git-show 49cdd0b21a351f3366008615d2cf8d03ca943978 | wc -c >>> error: sha1 mismatch 49cdd0b21a351f3366008615d2cf8d03ca943978 >>> fatal: bad object 49cdd0b21a351f3366008615d2cf8d03ca943978 >>> 0 >>> ben@n179 /tmp/project.git $ ~/projects/git.git/git-show 49cdd0b21a351f3366008615d2cf8d03ca943978 | wc -c >>> 39517156 > > Hmm, from this, and a later one ... > > ... I am reading that (1) the packfile and repository is basically > OK, (2) reading that object sometimes fails, and (3) the symptom is > not limited to fsck but anything that reads the object with > parse_object(). And that symptom exists only on that single machine > (I am assuming that the repository was bit-for-bit copied, not > "cloned", for the purpose of testing it on the other machine). That > makes me suspect something outside the control of Git (e.g. faulty > memory or disk controller cable). > > Are there other big blobs in the repository, and would "show | wc" fail > if you attempt to read it on that machine? ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-09 12:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin @ 2013-08-09 12:54 ` Stefan Beller 2013-08-14 9:29 ` Reproducible, corrupt packfile after fresh git-svn checkouts - IDENTIFIED Ben Tebulin 2013-08-14 9:09 ` Reproducible, corrupt packfile after fresh git-svn checkout message Thomas Rast 1 sibling, 1 reply; 26+ messages in thread From: Stefan Beller @ 2013-08-09 12:54 UTC (permalink / raw) To: Ben Tebulin; +Cc: Junio C Hamano, Thomas Rast, git, Matthieu Moy [-- Attachment #1: Type: text/plain, Size: 1051 bytes --] On 08/09/2013 02:27 PM, Ben Tebulin wrote: > Hello everybody! > > I have some _very interesting_ news regarding this issue! > Here is the deal: > > 1. I was able to *reproduce the error on a machine of a coworker!* > > 2. I was able to rule out > - HDD: It's reproducible from /dev/shm > - Memory: Memory tests works fine > > now the interesting part: > > 3. Occurs on Linux kernels 3.7.10, 3.8.x, 3.9.11, 3.10.5 > _but not on:_ 3.6.11, 3.5.7 and 2.6.32 > > Both machines showing this problem are »Dell Latitude E6330« with an > »i5-3340M @ 2.70GHz« CPU. Mine running stock kernels, coworker using > plain Ubuntu 13.04. > > Furthermore I need to stress, that we never had any issues with our > devices during daily _at all_. > > So what to do best now? Maybe include the kernel mailing list, they know what's up ;) Linking to the start of the discussion $gmane/33602 Maybe you could also run git through strace and diff the output of a faulty machine with a correct machine? Stefan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 899 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Reproducible, corrupt packfile after fresh git-svn checkouts - IDENTIFIED 2013-08-09 12:54 ` Stefan Beller @ 2013-08-14 9:29 ` Ben Tebulin 0 siblings, 0 replies; 26+ messages in thread From: Ben Tebulin @ 2013-08-14 9:29 UTC (permalink / raw) To: Stefan Beller; +Cc: Ben Tebulin, Junio C Hamano, Thomas Rast, git, Matthieu Moy Hello everybody! I'm the guy having the issue, that in a particular Git repository the reads of an object fail the SHA1 reproducible on *two independent machines* . The issue occurs on a very specific repository starting with Linux Kernel 3.7.2. Unfortunately my E-Mail to the kernel list dit get no response. After a long session of rebooting and bisecting the Linux kernel (fortunately I had a SSD and ccache!) I was able to pinpoint this to the following patch related to _memory management_ causing my data corruption with git: *"mm: limit mmu_gather batching to fix soft lockups on !CONFIG_PREEMPT"* 787f7301074ccd07a3e82236ca41eefd245f4e07 linux stable [1] 53a59fc67f97374758e63a9c785891ec62324c81 upstream commit [2] The patch speaks about "batching [memory] pages to be freed" so I'm a bit unsure: Is this a Git or a Linux kernel issue? Thanks - Ben [1] https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=787f7301074ccd07a3e82236ca41eefd245f4e07 [2] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=53a59fc67f97374758e63a9c785891ec62324c81 ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-09 12:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin 2013-08-09 12:54 ` Stefan Beller @ 2013-08-14 9:09 ` Thomas Rast 2013-08-14 9:47 ` Ben Tebulin 2013-08-15 9:32 ` Ben Tebulin 1 sibling, 2 replies; 26+ messages in thread From: Thomas Rast @ 2013-08-14 9:09 UTC (permalink / raw) To: Ben Tebulin; +Cc: Junio C Hamano, git, Matthieu Moy, Stefan Beller Ben Tebulin <tebulin@googlemail.com> writes: > Hello everybody! > > I have some _very interesting_ news regarding this issue! > Here is the deal: > > 1. I was able to *reproduce the error on a machine of a coworker!* > > 2. I was able to rule out > - HDD: It's reproducible from /dev/shm > - Memory: Memory tests works fine > > now the interesting part: > > 3. Occurs on Linux kernels 3.7.10, 3.8.x, 3.9.11, 3.10.5 > _but not on:_ 3.6.11, 3.5.7 and 2.6.32 > > Both machines showing this problem are »Dell Latitude E6330« with an > »i5-3340M @ 2.70GHz« CPU. Mine running stock kernels, coworker using > plain Ubuntu 13.04. > > Furthermore I need to stress, that we never had any issues with our > devices during daily _at all_. > > So what to do best now? If you're still interested... What did memcheck86 say about these machines? My best theory so far: malloc()/free() actually use mmap()/munmap() for large allocations. mallopt(3) tells me that "large" here means a dynamic limit on modern glibc, but with an upper limit of 32MB on 64-bit. So your 39MB blob would always result in an mmap() type allocation. And it should be easy for glibc to check mmap() type allocations against double free(), at least if the address has not been mapped again in the same process. So it probably does that, which aborts the program. You could try to gather some data on this by looking at strace -o fsck.trace -f git fsck for a crash case. If the theory is correct, you should see an munmap() for an address similar to the one pointed out by the glibc error message, as follows: if you get *** glibc detected *** <unknown>: free(): invalid pointer: 0x00007fe129669010 *** check for the address 0x7fe129669000 (the start of the page that the address is in). Note that this is a pretty weak theory, because double free() detection is squarely up valgrind's alley. So valgrind's lack of complaints is a strong argument against it. But it's the best I've got so far. -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-14 9:09 ` Reproducible, corrupt packfile after fresh git-svn checkout message Thomas Rast @ 2013-08-14 9:47 ` Ben Tebulin 2013-08-15 9:32 ` Ben Tebulin 1 sibling, 0 replies; 26+ messages in thread From: Ben Tebulin @ 2013-08-14 9:47 UTC (permalink / raw) To: Thomas Rast; +Cc: Ben Tebulin, Junio C Hamano, git, Matthieu Moy, Stefan Beller > My best theory so far: > malloc()/free() actually use mmap()/munmap() for large allocations. > mallopt(3) tells me that [...] Many things I don't grab at first go :-) Last night I did a long git-bisect of the kernel and was able to pinpoint a change in the Linux memory management as cause (see my pre-prepared email I just sent). Would that fit into your theory? > You could try to gather some data on this by [...] Before I dive into that maybe you could throw a quick look at the causing Kernel change (which reading from the words _could_ be related) if this fits into the picture? If yes, I'm happy to try to assist you in further pinning this issue down! ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-14 9:09 ` Reproducible, corrupt packfile after fresh git-svn checkout message Thomas Rast 2013-08-14 9:47 ` Ben Tebulin @ 2013-08-15 9:32 ` Ben Tebulin 2013-08-15 14:46 ` Junio C Hamano 1 sibling, 1 reply; 26+ messages in thread From: Ben Tebulin @ 2013-08-15 9:32 UTC (permalink / raw) To: Thomas Rast; +Cc: Junio C Hamano, git, Matthieu Moy, Stefan Beller Just as a catchup for everybody being interested: I finally wrote to the linux-mm newsgroup and Linus pointed out, that this might be a known bug yet not fixed in mainline. Unfortunately this doesn't seem to stand the test; but as far as Git is concerned, it appears that that they are willing to take actions. http://thread.gmane.org/gmane.linux.kernel/1541707/focus=105432 ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 2013-08-15 9:32 ` Ben Tebulin @ 2013-08-15 14:46 ` Junio C Hamano 0 siblings, 0 replies; 26+ messages in thread From: Junio C Hamano @ 2013-08-15 14:46 UTC (permalink / raw) To: Ben Tebulin; +Cc: Thomas Rast, Git Mailing List, Matthieu Moy, Stefan Beller On Thu, Aug 15, 2013 at 2:32 AM, Ben Tebulin <tebulin@googlemail.com> wrote: > Just as a catchup for everybody being interested: > > I finally wrote to the linux-mm newsgroup and Linus pointed out, that > this might be a known bug yet not fixed in mainline. > > Unfortunately this doesn't seem to stand the test; but as far as Git is > concerned, it appears that that they are willing to take actions. > > http://thread.gmane.org/gmane.linux.kernel/1541707/focus=105432 Thanks for following this up. ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) 2013-08-08 13:12 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) gitml.jexpert 2013-08-08 13:18 ` Matthieu Moy @ 2013-08-08 13:20 ` Thomas Rast 1 sibling, 0 replies; 26+ messages in thread From: Thomas Rast @ 2013-08-08 13:20 UTC (permalink / raw) To: gitml.jexpert; +Cc: git gitml.jexpert@recursor.net writes: > So - now the puzzling thing: With valgrind it seems to work! > If I run it plain, it doesn't: > > /tmp/project.git $ valgrind --track-origins=yes ~/projects/git.git/git-fsck [...] > ==3431== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2) > /tmp/project.git $ ~/projects/git.git/git-fsck > Checking object directories: 100% (256/256), done. > error: packed 49cdd0b21a351f3366008615d2cf8d03ca943978 from > .git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack > is corrupt > *** glibc detected *** <unknown>: free(): invalid pointer: 0x00007f8576682010 *** > ======= Backtrace: ========= > /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f85ad765b96] > [0x4e727c] [...] > Any further hints? Hrm. Can you try getting a backtrace from $ gdb ~/projects/git.git/git-fsck (gdb) run ... wait until it crashes ... (gdb) backtrace full I would have been more interested in error output from valgrind, because memory corruption invariably happens long before glibc finally figures out that something is amiss. But as things stand, the backtrace is probably the only thing we have... -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout 2013-08-08 12:23 ` Reproducible, corrupt packfile after fresh git-svn checkout gitml.jexpert 2013-08-08 12:31 ` Thomas Rast @ 2013-08-08 12:38 ` Matthieu Moy 2013-08-08 12:41 ` Stefan Beller 2 siblings, 0 replies; 26+ messages in thread From: Matthieu Moy @ 2013-08-08 12:38 UTC (permalink / raw) To: gitml.jexpert; +Cc: git gitml.jexpert@recursor.net writes: >> Regardless of any possible fault in git-svn, there's an obvious bug here >> with git-fsck. Can you share the pack (if the project is public) or >> compile a git-fsck without optimization and with debugging, and run it >> under valgrind, to hopefully get us a backtrace of where the memory >> management goes off the rails? > > Unfortunately I'm unable to share the pack. > > As Java Developer I'm note very savy, but I'd try. > Do you have me any pointers on ".. without optimization and with > debugging" and "run it under valgrind"? To fetch sources and compile: git clone https://github.com/git/git.git cd git/ make CFLAGS='-g -O0' To run gdb: gdb --args ./git fsck Then type "run" at the gdb prompt. When the program crashes, you should get the gdb prompt back. Then, typing "bt" gives you a backtrace, and "bt full" gives you the same with more information (be careful, there may be private information in it). To use valgrind, just do: valgrind ./git fsck (essentially, it runs the program adding a bunch of runtime checks hence may provide better diagnosis) -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh git-svn checkout 2013-08-08 12:23 ` Reproducible, corrupt packfile after fresh git-svn checkout gitml.jexpert 2013-08-08 12:31 ` Thomas Rast 2013-08-08 12:38 ` Reproducible, corrupt packfile after fresh git-svn checkout Matthieu Moy @ 2013-08-08 12:41 ` Stefan Beller 2 siblings, 0 replies; 26+ messages in thread From: Stefan Beller @ 2013-08-08 12:41 UTC (permalink / raw) To: gitml.jexpert; +Cc: git [-- Attachment #1: Type: text/plain, Size: 1767 bytes --] On 08/08/2013 02:23 PM, gitml.jexpert@recursor.net wrote: >> Regardless of any possible fault in git-svn, there's an obvious bug here >> with git-fsck. Can you share the pack (if the project is public) or >> compile a git-fsck without optimization and with debugging, and run it >> under valgrind, to hopefully get us a backtrace of where the memory >> management goes off the rails? > > Unfortunately I'm unable to share the pack. > > As Java Developer I'm note very savy, but I'd try. > Do you have me any pointers on ".. without optimization and with > debugging" and "run it under valgrind"? > > Currently I used > deb http://ppa.launchpad.net/git-core/ppa/ubuntu quantal main > as source. The version from the ppa seems to be 1.7.0.4-1ubuntu0.2 but the version of git being in the native ubuntu quantal repository (I assume you're running Ubuntu?) is already 1.7.10.4-1ubuntu1 (http://packages.ubuntu.com/quantal/git) However to get an unoptimized version with debug symbols you could do this: # get the source: git clone git://git.kernel.org/pub/scm/git/git.git/ cd git # read INSTALL, the section starting at # > Git is reasonably self-sufficient, but does depend on a few external # > programs and libraries # this is a guess, maybe you need more or less packages, but you'd need the -dev packages for the C-headers sudo apt-get install libz-dev libopenssl-dev libcurl-dev libexpat-dev # Now disable optimizing by overwriting default compile flags: echo "CFLAGS=-g" > config.mak # compile and install make make install # installs to ~/bin # open a new shell or relogin, and see if you're using the version you just build: git --version # git version 1.8.4.rc1.... Stefan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 899 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Reproducible, corrupt packfile after fresh 2013-08-08 11:56 ` Reproducible, corrupt packfile after fresh gitml.jexpert 2013-08-08 12:13 ` Thomas Rast @ 2013-08-08 12:18 ` Stefan Beller 1 sibling, 0 replies; 26+ messages in thread From: Stefan Beller @ 2013-08-08 12:18 UTC (permalink / raw) To: gitml.jexpert; +Cc: git [-- Attachment #1: Type: text/plain, Size: 2362 bytes --] On 08/08/2013 01:56 PM, gitml.jexpert@recursor.net wrote: > I'm a heavy user of git-svn and experience an issue with one specific > (git-svn) repository: 'git fsck' reports a corrupt packfile after every > checkout. > > Now I'm totally puzzled about the cause and what do about it. > This is what I do: > > git svn init -s http://svn.foo.com/myproject myproject.git > cd myproject.git > git svn fetch # Much more reliable than 'git-svn clone' > > This checks out ~2100 commits and executes 2 git-gc during checkout. The > final .git repo size is about 940MB. Then I run > > git fsck > > ➜ myproject.git git:(master) git fsck > Checking object directories: 100% (256/256), done. > error: packed 0f5f33639bfc1a781fe080c31a1f076d9a25c1d3 from > .git/objects/pack/pack-6a6f5355584a5d71215d5fc867ce09602ceab533.pack is > corrupt > *** glibc detected *** git: free(): invalid pointer: 0x00007f46a09e9010 *** > ======= Backtrace: ========= > /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f46d9ebab96] > git[0x4ddf46] > git[0x4b4123] > git[0x431524] > git[0x405ce8] > git[0x4050e2] > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f46d9e5d76d] > git[0x405529] > ======= Memory map: ======== > 00400000-0055f000 r-xp 00000000 fc:01 12452043 > /usr/bin/git > 0075e000-0075f000 r--p 0015e000 fc:01 12452043 > /usr/bin/git > > .... > > > This only affects this very particular git-svn repo (and I have dozens > of them). The error happens reproducible on every fresh checkout as > described above. The backtrace does not appear always. The object is a > very large blob > > git show 0f5f33639bfc1a781fe080c31a1f076d9a25c1d3 | wc -c > 39524691 > > > Any hints what to do? > > Thanks > - Ben > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Hi, Regarding the backtrace, would it be possible to install debug symbols, so the backtrace is a little more meaningful? If you distribution doesn't provide debug symbols, compiling git yourself is rather easy (git clone && make && make install [defaults to ~/bin, so not root required for installing apart from missing dependencies]) Stefan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 899 bytes --] ^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2013-08-15 14:47 UTC | newest] Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <52037F47.5010302@exxcellent.de> [not found] ` <52037F84.9060006@exxcellent.de> 2013-08-08 11:56 ` Reproducible, corrupt packfile after fresh gitml.jexpert 2013-08-08 12:13 ` Thomas Rast 2013-08-08 12:23 ` Reproducible, corrupt packfile after fresh git-svn checkout gitml.jexpert 2013-08-08 12:31 ` Thomas Rast 2013-08-08 13:12 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) gitml.jexpert 2013-08-08 13:18 ` Matthieu Moy 2013-08-08 13:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message gitml.jexpert 2013-08-08 13:34 ` Matthieu Moy 2013-08-08 13:43 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) gitml.jexpert 2013-08-08 14:20 ` Thomas Rast 2013-08-08 14:53 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 " Ben Tebulin 2013-08-08 15:28 ` Thomas Rast 2013-08-08 16:36 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin 2013-08-08 16:48 ` Matthieu Moy 2013-08-08 17:38 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 of 20) Junio C Hamano 2013-08-09 12:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin 2013-08-09 12:54 ` Stefan Beller 2013-08-14 9:29 ` Reproducible, corrupt packfile after fresh git-svn checkouts - IDENTIFIED Ben Tebulin 2013-08-14 9:09 ` Reproducible, corrupt packfile after fresh git-svn checkout message Thomas Rast 2013-08-14 9:47 ` Ben Tebulin 2013-08-15 9:32 ` Ben Tebulin 2013-08-15 14:46 ` Junio C Hamano 2013-08-08 13:20 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) Thomas Rast 2013-08-08 12:38 ` Reproducible, corrupt packfile after fresh git-svn checkout Matthieu Moy 2013-08-08 12:41 ` Stefan Beller 2013-08-08 12:18 ` Reproducible, corrupt packfile after fresh Stefan Beller
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.