* git packs @ 2007-11-10 4:47 bob 2007-11-10 5:13 ` Nicolas Pitre 2007-11-10 17:40 ` bob 0 siblings, 2 replies; 19+ messages in thread From: bob @ 2007-11-10 4:47 UTC (permalink / raw) To: git When a repository is packed such as for a clone or fetch, is there just one pack file created that is used for the transfer? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 4:47 git packs bob @ 2007-11-10 5:13 ` Nicolas Pitre 2007-11-10 6:00 ` bob 2007-11-10 17:40 ` bob 1 sibling, 1 reply; 19+ messages in thread From: Nicolas Pitre @ 2007-11-10 5:13 UTC (permalink / raw) To: bob; +Cc: git On Fri, 9 Nov 2007, bob wrote: > When a repository is packed such as for a clone or fetch, is there just one > pack file created that is used for the transfer? Yes. And modern Git is able to handle packs larger than 4GB too, assuming it is compiled using a toolchain with large file support. Nicolas ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 5:13 ` Nicolas Pitre @ 2007-11-10 6:00 ` bob 2007-11-10 6:36 ` Luke Lu 2007-11-10 6:38 ` Linus Torvalds 0 siblings, 2 replies; 19+ messages in thread From: bob @ 2007-11-10 6:00 UTC (permalink / raw) To: git When you say toolchain, are you referring to the compiler and associated libraries or are you referring to OS programs such as ls, md5, cat, etc or both? The reason that I ask is that I have been playing different scenarios using git 1.5.3.5 under MacOSX 10.4.10 mostly all day and every time that A) a file approaches or exceeds 2gig on an 'add', it results in: fatal: Out of memory? mmap failed: Cannot allocate memory B) the repository size less the .git subdirectory approaches 4gig on a 'fetch' it results in: Resolving 3356 deltas... fatal: serious inflate inconsistency: -3 (unknown compression method) fatal: index-pack died with error code 128 fatal: Fetch failure: ../rmwHtmlOld Under B, building the initial repository works fine. (I added a patch the Linus Torvalds gave out when a previous inflate problem was being researched.) Also, I have been looking in the source in particular in builtin-add.c builtin-pack-objects.c and associated headers and see int and unsigned long being used a lot, but not any unsigned long longs. I have been testing on my laptop which has a 32-bit Intel Core Duo. Also, I have run the same tests on a dual quad-core Intel processor which is 64 bit, (but not sure that Apple uses the 64 bits in 10.4.10). I get the same results as above. The zlib is at the latest revision of 1.2.3 and gcc is at 4.0.1 which from what I can tell supports large files, because 'off_t' is 8 bytes which is the size used for a 'stat' file size. I am just wondering if these size limitations exist for MacOSX or maybe I am doing something wrong (which is probably the case). On Nov 10, 2007, at 12:13 AM, Nicolas Pitre wrote: > On Fri, 9 Nov 2007, bob wrote: > >> When a repository is packed such as for a clone or fetch, is there >> just one >> pack file created that is used for the transfer? > > Yes. > > And modern Git is able to handle packs larger than 4GB too, > assuming it > is compiled using a toolchain with large file support. > > > Nicolas > - ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 6:00 ` bob @ 2007-11-10 6:36 ` Luke Lu 2007-11-10 6:58 ` Linus Torvalds 2007-11-10 6:38 ` Linus Torvalds 1 sibling, 1 reply; 19+ messages in thread From: Luke Lu @ 2007-11-10 6:36 UTC (permalink / raw) To: bob; +Cc: git On Nov 9, 2007, at 10:00 PM, bob wrote: > When you say toolchain, are you referring to the compiler > and associated libraries or are you referring to OS programs > such as ls, md5, cat, etc or both? > > The reason that I ask is that I have been playing different > scenarios using git 1.5.3.5 under MacOSX 10.4.10 mostly > all day and every time that > > A) a file approaches or exceeds 2gig on an 'add', it > results in: > > fatal: Out of memory? mmap failed: Cannot allocate memory > > > > B) the repository size less the .git subdirectory approaches > 4gig on a 'fetch' it results in: > > Resolving 3356 deltas... > fatal: serious inflate inconsistency: -3 (unknown compression method) > fatal: index-pack died with error code 128 > fatal: Fetch failure: ../rmwHtmlOld > > Under B, building the initial repository works fine. > > (I added a patch the Linus Torvalds gave out when a previous > inflate problem > was being researched.) Also, I have been looking in the source > in particular in builtin-add.c builtin-pack-objects.c and > associated headers > and see int and unsigned long being used a lot, but not any > unsigned long > longs. I have been testing on my laptop which has a 32-bit Intel > Core Duo. > Also, I have run the same tests on a dual quad-core Intel processor > which is 64 bit, (but not sure that Apple uses the 64 bits in > 10.4.10). I > get the same results as above. > > The zlib is at the latest revision of 1.2.3 and gcc is at 4.0.1 > which from what I can tell supports large files, because 'off_t' is > 8 bytes > which is the size used for a 'stat' file size. mmap(2), which git uses by default, is subject to vm limits (typically <2GB), regardless of large file support. file `which git` will probably tell you that it's a Mach-O executable i386 instead of x86_64. In order to get 64 bit binaries on Mactel boxes, you'll need the -m64 flag for gcc. I suspect that compiling with NO_MMAP option work as well. __Luke ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 6:36 ` Luke Lu @ 2007-11-10 6:58 ` Linus Torvalds 2007-11-10 7:59 ` David Brown 0 siblings, 1 reply; 19+ messages in thread From: Linus Torvalds @ 2007-11-10 6:58 UTC (permalink / raw) To: Luke Lu; +Cc: bob, git On Fri, 9 Nov 2007, Luke Lu wrote: > > mmap(2), which git uses by default, is subject to vm limits (typically <2GB), > regardless of large file support. file `which git` will probably tell you that > it's a Mach-O executable i386 instead of x86_64. In order to get 64 bit > binaries on Mactel boxes, you'll need the -m64 flag for gcc. I suspect that > compiling with NO_MMAP option work as well. Even with NO_MMAP, git will still want to read in source files in their entirety (just with regular reads). So you'll still be VM size-limited: the mmap() will just be replaced with a malloc+read in order to avoid some broken windows mmap() behaviour. But hearing whether -m64 makes a difference would be interesting. I'm hoping OS X is LP64, not some insane half-way thing like Vista is. Linus ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 6:58 ` Linus Torvalds @ 2007-11-10 7:59 ` David Brown 0 siblings, 0 replies; 19+ messages in thread From: David Brown @ 2007-11-10 7:59 UTC (permalink / raw) To: Linus Torvalds; +Cc: Luke Lu, bob, git On Fri, Nov 09, 2007 at 10:58:16PM -0800, Linus Torvalds wrote: >But hearing whether -m64 makes a difference would be interesting. I'm >hoping OS X is LP64, not some insane half-way thing like Vista is. Some casual tests with printf and sizeof makes it look like it is. At least sizeof (void *) and sizeof (long) are both 8. David ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 6:00 ` bob 2007-11-10 6:36 ` Luke Lu @ 2007-11-10 6:38 ` Linus Torvalds 2007-11-10 6:53 ` Linus Torvalds 2007-11-10 7:19 ` bob 1 sibling, 2 replies; 19+ messages in thread From: Linus Torvalds @ 2007-11-10 6:38 UTC (permalink / raw) To: bob; +Cc: git On Sat, 10 Nov 2007, bob wrote: > > The reason that I ask is that I have been playing different > scenarios using git 1.5.3.5 under MacOSX 10.4.10 mostly > all day and every time that > > A) a file approaches or exceeds 2gig on an 'add', it > results in: > fatal: Out of memory? mmap failed: Cannot allocate memory Git wants to handle single files as one single entity, so single big files really do end up being very painful. The costs of compressing them and generating deltas would probably get prohibitively high *anyway*, but it does mean that if you have gigabyte files, you do want a 64-bit VM. I thought OS X could do 64 bits these days. Maybe not. Anyway, that explains the "cannot allocate memory". Git simply wants to mmap the whole file. You don't have enough VM space for it. (And if you seriously want to work with multi-gigabyte files, git probbaly isn't going to perform wonderfully well, even if it *should* work fine if you just have a full 64-bit environment that allows the mmap). > B) the repository size less the .git subdirectory approaches > 4gig on a 'fetch' it results in: > > Resolving 3356 deltas... > fatal: serious inflate inconsistency: -3 (unknown compression method) That sounds really broken. I'm not seeing what would cause that, apart from some really bad data corruption and/or broken zlib implementation. But if the pack-file really is 2GB+ in size, I could imagine some sign issues cropping up. git will generally use "unsigned long" (which is probably just 32-bit on your setup), but since git in those circumstances would be limited by the size of the VM _anyway_, that's not really much of a limitation (although probably broken on the crazy Windows "LLP64" model). But maybe we have some place where we use a signed thing, or zlib does, and I could see that causing breakage. But that code-sequence really should never even come *close* to the 31-bit limit, as long as the individual objects themselves aren't bigger than the available VM space (and git currently assumes "unsigned long" is sufficiently big to cover the VM space, which is not technically correct, but should be fine on OS X too). That said, we should use "off_t" in that function. I suspect we have a number of people (read: me) who have grown too used to living in a 64-bit world.. > I have been testing on my laptop which has a 32-bit Intel Core Duo. Ok, so you're 32-bit limited even if there is were to be some 64-bit support for OS X. > Also, I have run the same tests on a dual quad-core Intel processor > which is 64 bit, (but not sure that Apple uses the 64 bits in 10.4.10). I > get the same results as above. I'm pretty sure OS X defaults to a 32-bit environment, but has at least *some* 64-bit support. It would definitely need to be enabled explicitly (since they made the *insane* decision to move over to Intel laptop chips six months before they got 64-bit support! Somebody at Apple is a total idiot, and should get fired). So it would be interesting to hear if a 64-bit build would make a difference. > The zlib is at the latest revision of 1.2.3 and gcc is at 4.0.1 > which from what I can tell supports large files, because 'off_t' is 8 bytes > which is the size used for a 'stat' file size. See above: single files are size-limited, but with a large off_t like yours, you should be fine. Except we may have screwed up. > I am just wondering if these size limitations exist for MacOSX > or maybe I am doing something wrong (which is probably > the case). We *have* had issues with broken implementations of "pread()" on some systems. You could try setting NO_PREAD in the Makefile and compiling with the compatibility function.. That's the only thing that comes to mind as being worth trying in that area. And if you have some script to generate the repository (ie you aren't using "live data", but are testing the limits of the system), if you can make that available, so that people with non-OSX environments can test, that would be interesting.. I certainly have some 32-bit environments too (old linux boxes), but I'm too lazy to write a test-case, so I was hoping you'd be using some simple scripts that I could just test and see if I can see the behaviour you describe myself. That said, I have worked with a 3GB pack-file (one of the KDE trial repos). That worked fine. But git does tend to want a *lot* of memory for really big repositories, so I suspect that if you actually work with 2GB+ pack-files, you'll be wanting a 64-bit environment just because you'll be wanting more than 2GB of physical RAM in order to be able to access it efficiently. Linus ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 6:38 ` Linus Torvalds @ 2007-11-10 6:53 ` Linus Torvalds 2007-11-10 7:19 ` bob 1 sibling, 0 replies; 19+ messages in thread From: Linus Torvalds @ 2007-11-10 6:53 UTC (permalink / raw) To: bob; +Cc: git On Fri, 9 Nov 2007, Linus Torvalds wrote: > > That said, I have worked with a 3GB pack-file (one of the KDE trial > repos). That worked fine. But git does tend to want a *lot* of memory for > really big repositories, so I suspect that if you actually work with 2GB+ > pack-files, you'll be wanting a 64-bit environment just because you'll be > wanting more than 2GB of physical RAM in order to be able to access it > efficiently. Just double-checked. Yes, sirree. You definitely want 4GB+ if you are cloning a 3GB git pack-file. The "git-pack-objects" phase not only is going to walk all over the pack-file, it's going to add its own memory footprint on top of that just keeping track of all the objects. So I doubt 2GB+ pack-files are all that practical on 32-bit hosts. At least not with the kind of performance behaviour *I* would accept. (Of course, since git packs things pretty damn well, it would need to be a really really big project to be a 2GB+ pack-file, or just contain a lot of generally large non-deltable binary data file - one scenario where git definitely doesn't work wonderfully well, although I doubt many other SCM's do either..) Linus ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 6:38 ` Linus Torvalds 2007-11-10 6:53 ` Linus Torvalds @ 2007-11-10 7:19 ` bob 2007-11-11 4:35 ` Nicolas Pitre 1 sibling, 1 reply; 19+ messages in thread From: bob @ 2007-11-10 7:19 UTC (permalink / raw) To: git I will try a few things and see if I can get a script put together that generates the inflate problem. The data that I am using is a backup of my original repository. So, I can play all that I want. But it would be a lot easier if I could just generate some files using dd or something. I'll also try the 64-bit compile on my Mac Pro and see if it works. My only reason for keeping this directory under git is that I find git so easy to work with across multiple machines. I own 10+ computers and I use git to provide easy transfers/updates from machine to machine normally without any issues and a great deal of reliability. This directory is a website that I use internally to keep track of things important to me. For instance, the one large file is a movie of the inside of my house before they sheet-rocked it so that later I would have an easier time finding things in the walls. There is some html and php that I wrote in it which I did want versioned. Maybe I should just drop back to using two directories, one of the large files which are static anyway and a git repo for the html and php. I was just trying to keep everything in the repo for simplicity. No matter which direction that I decide, I will still try to provide the script. Thank you both (Luke Lu) for the feedback. On Nov 10, 2007, at 1:38 AM, Linus Torvalds wrote: > > > On Sat, 10 Nov 2007, bob wrote: >> >> The reason that I ask is that I have been playing different >> scenarios using git 1.5.3.5 under MacOSX 10.4.10 mostly >> all day and every time that >> >> A) a file approaches or exceeds 2gig on an 'add', it >> results in: >> fatal: Out of memory? mmap failed: Cannot allocate memory > > Git wants to handle single files as one single entity, so single > big files > really do end up being very painful. The costs of compressing them and > generating deltas would probably get prohibitively high *anyway*, > but it > does mean that if you have gigabyte files, you do want a 64-bit VM. > > I thought OS X could do 64 bits these days. Maybe not. > > Anyway, that explains the "cannot allocate memory". Git simply > wants to > mmap the whole file. You don't have enough VM space for it. > > (And if you seriously want to work with multi-gigabyte files, git > probbaly > isn't going to perform wonderfully well, even if it *should* work > fine if > you just have a full 64-bit environment that allows the mmap). > >> B) the repository size less the .git subdirectory approaches >> 4gig on a 'fetch' it results in: >> >> Resolving 3356 deltas... >> fatal: serious inflate inconsistency: -3 (unknown compression >> method) > > That sounds really broken. I'm not seeing what would cause that, apart > from some really bad data corruption and/or broken zlib > implementation. > But if the pack-file really is 2GB+ in size, I could imagine some sign > issues cropping up. > > git will generally use "unsigned long" (which is probably just 32- > bit on > your setup), but since git in those circumstances would be limited > by the > size of the VM _anyway_, that's not really much of a limitation > (although > probably broken on the crazy Windows "LLP64" model). But maybe we have > some place where we use a signed thing, or zlib does, and I could > see that > causing breakage. > > But that code-sequence really should never even come *close* to the > 31-bit > limit, as long as the individual objects themselves aren't bigger > than the > available VM space (and git currently assumes "unsigned long" is > sufficiently big to cover the VM space, which is not technically > correct, > but should be fine on OS X too). > > That said, we should use "off_t" in that function. I suspect we have a > number of people (read: me) who have grown too used to living in a > 64-bit > world.. > >> I have been testing on my laptop which has a 32-bit Intel Core Duo. > > Ok, so you're 32-bit limited even if there is were to be some 64-bit > support for OS X. > >> Also, I have run the same tests on a dual quad-core Intel processor >> which is 64 bit, (but not sure that Apple uses the 64 bits in >> 10.4.10). I >> get the same results as above. > > I'm pretty sure OS X defaults to a 32-bit environment, but has at > least > *some* 64-bit support. It would definitely need to be enabled > explicitly > (since they made the *insane* decision to move over to Intel laptop > chips > six months before they got 64-bit support! Somebody at Apple is a > total > idiot, and should get fired). > > So it would be interesting to hear if a 64-bit build would make a > difference. > >> The zlib is at the latest revision of 1.2.3 and gcc is at 4.0.1 >> which from what I can tell supports large files, because 'off_t' >> is 8 bytes >> which is the size used for a 'stat' file size. > > See above: single files are size-limited, but with a large off_t like > yours, you should be fine. Except we may have screwed up. > >> I am just wondering if these size limitations exist for MacOSX >> or maybe I am doing something wrong (which is probably >> the case). > > We *have* had issues with broken implementations of "pread()" on some > systems. > > You could try setting NO_PREAD in the Makefile and compiling with the > compatibility function.. That's the only thing that comes to mind > as being > worth trying in that area. > > And if you have some script to generate the repository (ie you aren't > using "live data", but are testing the limits of the system), if > you can > make that available, so that people with non-OSX environments can > test, > that would be interesting.. > > I certainly have some 32-bit environments too (old linux boxes), > but I'm > too lazy to write a test-case, so I was hoping you'd be using some > simple > scripts that I could just test and see if I can see the behaviour you > describe myself. > > That said, I have worked with a 3GB pack-file (one of the KDE trial > repos). That worked fine. But git does tend to want a *lot* of > memory for > really big repositories, so I suspect that if you actually work > with 2GB+ > pack-files, you'll be wanting a 64-bit environment just because > you'll be > wanting more than 2GB of physical RAM in order to be able to access it > efficiently. > > Linus ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 7:19 ` bob @ 2007-11-11 4:35 ` Nicolas Pitre 2007-11-12 2:53 ` bob 0 siblings, 1 reply; 19+ messages in thread From: Nicolas Pitre @ 2007-11-11 4:35 UTC (permalink / raw) To: bob; +Cc: git On Sat, 10 Nov 2007, bob wrote: > I will try a few things and see if I can get a script put together > that generates the inflate problem. The data that I am > using is a backup of my original repository. So, I can > play all that I want. But it would be a lot easier if I > could just generate some files using dd or something. Please see the patch I just posted to the list. That should fix your problem. I even included a small script to create a repository confirming the problem and allowing to test the fix. Nicolas ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-11 4:35 ` Nicolas Pitre @ 2007-11-12 2:53 ` bob 2007-11-12 4:21 ` Nicolas Pitre 0 siblings, 1 reply; 19+ messages in thread From: bob @ 2007-11-12 2:53 UTC (permalink / raw) To: Nicolas Pitre; +Cc: git I applied the patch and these commands: cd rmwHtmlOld rm -fr .git git init git config core.compression 0 git add . I then got the same error as before, "Bus error". Rats! Then I modified your script since I do not have seq or your test-genrandom. I substituted: dd count=XX if=/dev/random of=file_$i where XX is adjusted to meet dd's requirements. Also, I found after searching for a while, that the following works just like your seq command: xyzzy="1 2 3 4" for i in $xyzzy do ... done Your script then ran flawlessly. I looked through index-pack.c some more, but it is very hard to figure it out without doing a lot of research since there doesn't seem to be anything that describes the layout of a pack. The link towards the end of the user's manual doesn't work for me. The difference between your test and my data is that instead of having a few large files, I have 11,500 files of varying sizes. On average though, the file size is about 370k. HTH On Nov 10, 2007, at 11:35 PM, Nicolas Pitre wrote: > On Sat, 10 Nov 2007, bob wrote: > >> I will try a few things and see if I can get a script put together >> that generates the inflate problem. The data that I am >> using is a backup of my original repository. So, I can >> play all that I want. But it would be a lot easier if I >> could just generate some files using dd or something. > > Please see the patch I just posted to the list. That should fix your > problem. I even included a small script to create a repository > confirming the problem and allowing to test the fix. > > > Nicolas > - > 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-12 2:53 ` bob @ 2007-11-12 4:21 ` Nicolas Pitre 2007-11-12 14:15 ` bob 0 siblings, 1 reply; 19+ messages in thread From: Nicolas Pitre @ 2007-11-12 4:21 UTC (permalink / raw) To: bob; +Cc: git On Sun, 11 Nov 2007, bob wrote: > I applied the patch and these commands: > > cd rmwHtmlOld > rm -fr .git > git init > git config core.compression 0 > git add . Note that I did "git config core.compression 0" simply to disable zlib compression altogether when creating the test repo just so it gets created faster. even then, auto-generating and cloning a 8GB test repository isn't particularly quick. > I then got the same error as before, "Bus error". Rats! Do you get that with a 32-bit or 64-bit build of Git? > Then I modified your script since I do not have seq or > your test-genrandom. test-genrandom is built with Git. It is just not installed anywhere. > I substituted: > > dd count=XX if=/dev/random of=file_$i > > where XX is adjusted to meet dd's requirements. Also, Again I used test-genrandom instead of /dev/random or /dev/urandom simply because the former is much faster. > I found after searching for a while, that the following > works just like your seq command: > > xyzzy="1 2 3 4" > for i in $xyzzy > do > ... > done > > Your script then ran flawlessly. However 'seq -w 1 2 63' should be replaced with "01 03 05 07 09 11 13 15" and so on up to 63, and 'seq -w 2 2 64' is "02 04 06 08 10 12 16" and so on. > I looked through index-pack.c some more, but it is > very hard to figure it out without doing a lot of research > since there doesn't seem to be anything that describes > the layout of a pack. The link towards the end of the user's > manual doesn't work for me. Look at Documentation/technical/pack-format.txt in the Git source tree. > The difference between your test and my data is that > instead of having a few large files, I have 11,500 files > of varying sizes. On average though, the file size is > about 370k. Are you saying that the test repo with big files works for you but not your own data set? Would you please recap what your problem is? With my one line patch you should not get the "serious inflate inconsistency" error anymore. The bus error must be another issue. Nicolas ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-12 4:21 ` Nicolas Pitre @ 2007-11-12 14:15 ` bob 0 siblings, 0 replies; 19+ messages in thread From: bob @ 2007-11-12 14:15 UTC (permalink / raw) To: Nicolas Pitre; +Cc: git On Nov 11, 2007, at 11:21 PM, Nicolas Pitre wrote: > On Sun, 11 Nov 2007, bob wrote: > >> I applied the patch and these commands: >> >> cd rmwHtmlOld >> rm -fr .git >> git init >> git config core.compression 0 >> git add . > > Note that I did "git config core.compression 0" simply to disable > zlib compression altogether when creating the test repo just so it > gets > created faster. even then, auto-generating and cloning a 8GB test > repository isn't particularly quick. I wasn't sure why you used that, but figured that I should put it in, because you did. And you are very correct that these tests can take a very long time. > >> I then got the same error as before, "Bus error". Rats! > > Do you get that with a 32-bit or 64-bit build of Git? On that machine, I changed the config.mak to generate nothing but a 64-bit build. And activity monitor shows it as 64-bit when I am running it. Also, off_t is 64 bit on regular MacOSX and as a 64-bit program supported by the latest MacOSX. > >> Then I modified your script since I do not have seq or >> your test-genrandom. > > test-genrandom is built with Git. It is just not installed anywhere. > >> I substituted: >> >> dd count=XX if=/dev/random of=file_$i >> >> where XX is adjusted to meet dd's requirements. Also, > > Again I used test-genrandom instead of /dev/random or /dev/urandom > simply because the former is much faster. I didn't know that it existed, since I am not that familiar with the internals and source directory for git. > >> I found after searching for a while, that the following >> works just like your seq command: >> >> xyzzy="1 2 3 4" >> for i in $xyzzy >> do >> ... >> done >> >> Your script then ran flawlessly. > > However 'seq -w 1 2 63' should be replaced with "01 03 05 07 09 11 13 > 15" and so on up to 63, and 'seq -w 2 2 64' is "02 04 06 08 10 12 16" > and so on. That I missed but the files added up to quite a bit over 8gigs, because my count calculation was off. So, I thought that it was adequate for the testing. Based on above, it was quite a few files less as well. > >> I looked through index-pack.c some more, but it is >> very hard to figure it out without doing a lot of research >> since there doesn't seem to be anything that describes >> the layout of a pack. The link towards the end of the user's >> manual doesn't work for me. > > Look at Documentation/technical/pack-format.txt in the Git source > tree. Thanks. > >> The difference between your test and my data is that >> instead of having a few large files, I have 11,500 files >> of varying sizes. On average though, the file size is >> about 370k. > > Are you saying that the test repo with big files works for you but not > your own data set? That is correct, but you are probably correct that this is a separate problem, because it is only occurring on the 64-bit side. The 32-bit side is running without error. > > Would you please recap what your problem is? With more testing last night, I believe that the problem on the 32-bit side has been fixed. But the 'Bus error' on 64-bit side persists. I agree that I was combining it and probably shouldn't have. > With my one line patch you should not get the "serious inflate > inconsistency" error anymore. The bus error must be another issue. I no longer do on the 32-bit side. > > > Nicolas I am going to wait on the 64-bit problem until MacOSX 10.5 (Leopard) settles down a bit. It has a few bugs in it. I will submit the crashreporter issue to Apple. Currently, I don't have the time to commit a lot to git right now. As Apple comes out with new subreleases, I will retry my data. If it doesn't get resolved after a subrelease or two, then I dig deeper and hopefully have more time to devote to it at that point. Thank you, I do appreciate your help and your patience. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 4:47 git packs bob 2007-11-10 5:13 ` Nicolas Pitre @ 2007-11-10 17:40 ` bob 2007-11-10 17:45 ` David Brown 2007-11-12 4:46 ` Martin Langhoff 1 sibling, 2 replies; 19+ messages in thread From: bob @ 2007-11-10 17:40 UTC (permalink / raw) To: git I compiled git under MacOSX 10.4.10 withr: A) -m64 -arch ppc64 on a dual G5 B) -m64 -arch x86_64 on the dual quad-core In both case, the link phase failed because there was no 64-bit version of libz, libssl, libiconv and libcrypto to link with. I then installed MacOSX 10.5 (Leopard) which was just released last month on the dual quad-core machine with -m64 -arch x86_64. git compiled and linked successfully. However, it failed in the "git add ." which was the second command after "git init". The message was fairly cryptic, "Bus error". I am guessing that the "Bus error" is an Apple problem and it did produce a crashreport. So, I am going to submit it to Apple since it is easily reproducible. Anyway, those are the results. I am now going to split out the jpg(s), pdf(s) and (.mov) files from the repository and just manage them external to the git repository which will fix my git problem. I will report again when I get git running on Leopard. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 17:40 ` bob @ 2007-11-10 17:45 ` David Brown 2007-11-10 18:01 ` bob 2007-11-12 4:46 ` Martin Langhoff 1 sibling, 1 reply; 19+ messages in thread From: David Brown @ 2007-11-10 17:45 UTC (permalink / raw) To: bob; +Cc: git On Sat, Nov 10, 2007 at 12:40:16PM -0500, bob wrote: > I am guessing that the "Bus error" is an Apple > problem and it did produce a crashreport. So, > I am going to submit it to Apple since it is easily > reproducible. The crash report is probably not all that useful to Apple, since it occurs in a program you have built. Perhaps you should send the stack trace from the crash report here and people might have some ideas about what might be the problem. David ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 17:45 ` David Brown @ 2007-11-10 18:01 ` bob 2007-11-11 11:09 ` Derek Fawcus 0 siblings, 1 reply; 19+ messages in thread From: bob @ 2007-11-10 18:01 UTC (permalink / raw) To: git It is fairly disappointing as far as indicating the problem. Here is the entire report since it was so short. ============ Begin ================= Process: git [82703] Path: git Identifier: git Version: ??? (???) Code Type: X86-64 (Native) Parent Process: bash [261] Date/Time: 2007-11-10 11:23:33.976 -0500 OS Version: Mac OS X 10.5 (9A581) Report Version: 6 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x00007fff5fc00000 Crashed Thread: Unknown Error Formulating Crash Report: *** -[NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: VMUSignaturePath) 0x9501626b 0x9586009b 0x9501604b 0x9501608a 0x900d65e8 0x00078308 0x00087eb8 0x0008800e 0x000850a2 0x00002d90 0x000093be 0x0000b57c 0x0000b0c9 0x919f8793 0x0000a7d0 0x919cc075 0x919cbf32 Backtrace not available Unknown thread crashed with X86 Thread State (64-bit): rax: 0x000000000000003b rbx: 0x00000001191c9338 rcx: 0x0000000000000392 rdx: 0x00000000aff4bc3b rdi: 0x00007fff5fc00000 rsi: 0x0000000040000003 rbp: 0x00007fff5fbff180 rsp: 0x00007fff5fbff160 r8: 0x0000000000000000 r9: 0x058487f0858487f0 r10: 0x000000002cb27436 r11: 0x000000000ee2afe3 r12: 0x00000000181c84c0 r13: 0x00007fff5fbff1a0 r14: 0x000000010000000c r15: 0x0000000101000000 rip: 0x00007fff80543ca5 rfl: 0x0000000000010202 cr2: 0x00007fff5fc00000 Binary images description not available ============ end ================= Maybe there was another option to specifiy other than "-m64 -arch x86_64". On Nov 10, 2007, at 12:45 PM, David Brown wrote: > On Sat, Nov 10, 2007 at 12:40:16PM -0500, bob wrote: > >> I am guessing that the "Bus error" is an Apple >> problem and it did produce a crashreport. So, >> I am going to submit it to Apple since it is easily >> reproducible. > > The crash report is probably not all that useful to Apple, since it > occurs > in a program you have built. Perhaps you should send the stack > trace from > the crash report here and people might have some ideas about what > might be > the problem. > > David > - > 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 18:01 ` bob @ 2007-11-11 11:09 ` Derek Fawcus 2007-11-11 12:54 ` bob 0 siblings, 1 reply; 19+ messages in thread From: Derek Fawcus @ 2007-11-11 11:09 UTC (permalink / raw) To: bob; +Cc: git On Sat, Nov 10, 2007 at 01:01:46PM -0500, bob wrote: > It is fairly disappointing as far as indicating the problem. Here is > the entire report since it was so short. > Error Formulating Crash Report: > *** -[NSCFDictionary setObject:forKey:]: attempt to insert nil value > (key: VMUSignaturePath) huh? The above looks like an ObjC invocation. Last I checked, git was C. So why is that in the frame? DF ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-11 11:09 ` Derek Fawcus @ 2007-11-11 12:54 ` bob 0 siblings, 0 replies; 19+ messages in thread From: bob @ 2007-11-11 12:54 UTC (permalink / raw) To: Derek Fawcus; +Cc: git Well, there are actually two problems here. The first is that crashreporter crashed trying to create the crash report of the git failure. The second was the error in git itself. Hope that helps. I am submitting an Apple bugreport on the first and Nicolas Pitre is probably correct in his fix. When I was looking at index-pack.c everything was using 32 bit unsigned and signed number where off_t was 64-bit which is what a stat() would return. My problem is that I was not familiar enough with git internals to figure out the solution. My review was the first time that I ever looked at git source. Thanks, Nicolas On Nov 11, 2007, at 6:09 AM, Derek Fawcus wrote: > On Sat, Nov 10, 2007 at 01:01:46PM -0500, bob wrote: >> It is fairly disappointing as far as indicating the problem. Here is >> the entire report since it was so short. > >> Error Formulating Crash Report: >> *** -[NSCFDictionary setObject:forKey:]: attempt to insert nil value >> (key: VMUSignaturePath) > > huh? The above looks like an ObjC invocation. Last I checked, > git was C. > So why is that in the frame? > > DF ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git packs 2007-11-10 17:40 ` bob 2007-11-10 17:45 ` David Brown @ 2007-11-12 4:46 ` Martin Langhoff 1 sibling, 0 replies; 19+ messages in thread From: Martin Langhoff @ 2007-11-12 4:46 UTC (permalink / raw) To: bob; +Cc: git On Nov 11, 2007 6:40 AM, bob <kranki@mac.com> wrote: > I am now going to split out the jpg(s), pdf(s) > and (.mov) files from the repository and just > manage them external to the git repository > which will fix my git problem. For version-less synchronization of large files I'd suggest unison (as a smarter rsync, it's excellent) or the newfangled tra. hth, martin ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2007-11-12 14:16 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-11-10 4:47 git packs bob 2007-11-10 5:13 ` Nicolas Pitre 2007-11-10 6:00 ` bob 2007-11-10 6:36 ` Luke Lu 2007-11-10 6:58 ` Linus Torvalds 2007-11-10 7:59 ` David Brown 2007-11-10 6:38 ` Linus Torvalds 2007-11-10 6:53 ` Linus Torvalds 2007-11-10 7:19 ` bob 2007-11-11 4:35 ` Nicolas Pitre 2007-11-12 2:53 ` bob 2007-11-12 4:21 ` Nicolas Pitre 2007-11-12 14:15 ` bob 2007-11-10 17:40 ` bob 2007-11-10 17:45 ` David Brown 2007-11-10 18:01 ` bob 2007-11-11 11:09 ` Derek Fawcus 2007-11-11 12:54 ` bob 2007-11-12 4:46 ` Martin Langhoff
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 NNTP newsgroup(s).