Re: git-commit fatal: Out of memory? mmap failed: Bad file descriptor
From: Brandon Casey <hidden>
Date: 2016-06-15 22:44:05
Linus Torvalds wrote:
On Mon, 14 Jan 2008, Brandon Casey wrote:quoted
To reiterate, I only have problems with the builtin-commit, i.e. 1.5.4.*, the 1.5.3.* series works correctly. Of course if this is a memory corruption issue, then it could just be that the pattern of memory accesses in 1.5.3 does not tweak the problem.Can you do an strace of the failure case and put it up on some public place (it's likely going to be too big to send as email)?
I did the strace. Below is the last screenful of lines. Do you have a suggestion for a public place to upload? I do not have one of my own, and I've never used any of the 'free' services. The strace log is about 8.5MB, compressed to about 500K. $ git --version git version 1.5.4.rc3.11.g4e67 Not that it's important, but looks like the file descriptor that is closed too soon is 3. I got 6 when running under gdb. This is also using the latest version of git. The results are the same with either version (including the fd#) so I just used this one. Junio C Hamano wrote:
What platform is this on?
$ cat /etc/redhat-release CentOS release 4.5 (Final) i686
Does it reliably reproduce for any commit in the repository, or reliably reproduce for one particular commit, or sometimes reprooduce for one particular commit?
Reliably for one particular commit.
Additional commits on top of this commit complete successfully.
If this commit is amended without error by amending with '-C HEAD'
or by using a 1.5.3 version, then additional amends or commits
will not produce the error.
-brandon
16170 mmap2(NULL, 417, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb1699000
16170 close(3) = 0
16170 munmap(0xb1699000, 417) = 0
16170 stat64("/home/casey/auto_v3.5/src_temp2/.git/objects/67/981a61208756cf4973
7ec065e7bc0d7ff1a89d", {st_mode=S_IFREG|0444, st_size=417, ...}) = 0
16170 open("/home/casey/auto_v3.5/src_temp2/.git/objects/67/981a61208756cf49737e
c065e7bc0d7ff1a89d", O_RDONLY|O_LARGEFILE) = 3
16170 mmap2(NULL, 417, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb1699000
16170 close(3) = 0
16170 munmap(0xb1699000, 417) = 0
16170 stat64("/home/casey/auto_v3.5/src_temp2/.git/objects/4e/7c1178482f4b3c52e8
afce15db3bc8419530d2", {st_mode=S_IFREG|0444, st_size=417, ...}) = 0
16170 open("/home/casey/auto_v3.5/src_temp2/.git/objects/4e/7c1178482f4b3c52e8af
ce15db3bc8419530d2", O_RDONLY|O_LARGEFILE) = 3
16170 mmap2(NULL, 417, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb1699000
16170 close(3) = 0
16170 munmap(0xb1699000, 417) = 0
16170 stat64("/home/casey/auto_v3.5/src_temp2/.git/objects/02/3777b3c0e5f7697deb
2ce738c6b38b1ec2b17c", {st_mode=S_IFREG|0444, st_size=417, ...}) = 0
16170 open("/home/casey/auto_v3.5/src_temp2/.git/objects/02/3777b3c0e5f7697deb2c
e738c6b38b1ec2b17c", O_RDONLY|O_LARGEFILE) = 3
16170 mmap2(NULL, 417, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb1699000
16170 close(3) = 0
16170 munmap(0xb1699000, 417) = 0
16170 mmap2(NULL, 996168, PROT_READ, MAP_PRIVATE, 3, 0) = -1 EBADF (Bad file des
criptor)
16170 munmap(0xb56bd000, 33554432) = 0
16170 mmap2(NULL, 996168, PROT_READ, MAP_PRIVATE, 3, 0) = -1 EBADF (Bad file des
criptor)
16170 write(2, "fatal: Out of memory? mmap faile"..., 55) = 55
16170 write(1, "Created commit ", 15) = 15
16170 exit_group(128) = ?