From: Junio C Hamano <gitster@pobox.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Brandon Casey" <casey@nrlssc.navy.mil>,
"Git Mailing List" <git@vger.kernel.org>,
drafnel@gmail.com, "Alex Riesen" <raa.lkml@gmail.com>,
"Kristian Høgsberg" <krh@redhat.com>
Subject: Re: git-commit fatal: Out of memory? mmap failed: Bad file descriptor
Date: Tue, 15 Jan 2008 17:27:49 -0800 [thread overview]
Message-ID: <7vmyr6bluy.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <7vzlv6d6sa.fsf@gitster.siamese.dyndns.org> (Junio C. Hamano's message of "Tue, 15 Jan 2008 15:10:29 -0800")
Junio C Hamano <gitster@pobox.com> writes:
> Linus Torvalds <torvalds@linux-foundation.org> writes:
>
>> On Tue, 15 Jan 2008, Brandon Casey wrote:
>>>
>>> Linus Torvalds wrote:
>>> > It would obviously be interesting to see the base repository and the
>>> > commit you are trying to do - is that possibly publicly available?
>>>
>>> I wish it was.
>>
>> It's ok, I found the bug in your full strace.
>>
>> The bug really is pretty stupid:
>>
>> - prepare_index() does a
>>
>> fd = hold_lock_file_for_update(&false_lock, ...
>> ...
>> if (write_cache(fd, active_cache, active_nr) || close(fd))
>> die("unable to write temporary index file");
>>
>> and the magic here is that *it*closes*the*fd*.
>
> While I think the ones that are immediately followed by
> commit_locked_index() can drop the close(fd) safely, I am not
> sure about Kristian's changes to the other ones that we
> currently close(fd) but do not commit nor rollback immediately.
> These indices are now shown to the hook with open fd to it if
> you choose not to close them. Is that okay for Windows guys? I
> somehow had an impression that the other process may have
> trouble accessing a file that is still open elsewhere for
> writing.
>
> So I think the approach along the lines of your "hack" to close
> and tell lockfile API not to double-close is more appropriate.
> We would perhaps want "close_lock_file(struct lock_file *)" that
> calls close(lk->fd) and does lk->fd = -1 without rename/unlink,
> and replace these close() with that.
>
> I am sick today, feeling feverish, and not thinking straight,
> so I may be talking total nonsense...
I'll aplly and push out Kristian's one that apparently got
Tested-by from Brandon for tonight.
next prev parent reply other threads:[~2008-01-16 1:28 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-11 22:11 git-commit fatal: Out of memory? mmap failed: Bad file descriptor Brandon Casey
2008-01-11 22:18 ` Charles Bailey
2008-01-12 4:56 ` Jeff King
2008-01-11 22:19 ` Marco Costalba
2008-01-11 22:47 ` Brandon Casey
2008-01-11 23:48 ` Junio C Hamano
2008-01-12 0:43 ` Brandon Casey
2008-01-12 1:08 ` Junio C Hamano
2008-01-12 20:16 ` Alex Riesen
2008-01-14 23:22 ` Brandon Casey
2008-01-15 2:42 ` Brandon Casey
2008-01-15 5:42 ` Linus Torvalds
2008-01-15 17:26 ` Brandon Casey
2008-01-15 17:36 ` Linus Torvalds
2008-01-15 18:27 ` Brandon Casey
2008-01-15 18:50 ` Linus Torvalds
2008-01-15 19:43 ` Brandon Casey
2008-01-15 20:00 ` Kristian Høgsberg
2008-01-15 20:27 ` Brandon Casey
2008-01-15 20:39 ` Brandon Casey
2008-01-15 20:09 ` Linus Torvalds
2008-01-15 20:20 ` Linus Torvalds
2008-01-15 23:10 ` Junio C Hamano
2008-01-16 1:27 ` Junio C Hamano [this message]
2008-01-16 2:11 ` Brandon Casey
2008-01-16 19:00 ` [PATCH 1/2] Document lockfile API Junio C Hamano
2008-01-16 19:05 ` [PATCH 2/2] close_lock_file(): new function in the " Junio C Hamano
2008-01-16 20:08 ` Linus Torvalds
2008-01-16 20:36 ` Junio C Hamano
2008-01-16 20:46 ` Brandon Casey
2008-01-16 21:57 ` Junio C Hamano
2008-01-16 22:46 ` Brandon Casey
2008-01-16 22:55 ` Junio C Hamano
2008-01-16 23:08 ` Brandon Casey
2008-01-16 23:16 ` Brandon Casey
2008-01-16 23:19 ` Junio C Hamano
2008-01-16 23:28 ` Brandon Casey
2008-01-16 7:53 ` git-commit fatal: Out of memory? mmap failed: Bad file descriptor Johannes Sixt
2008-01-15 12:21 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vmyr6bluy.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=casey@nrlssc.navy.mil \
--cc=drafnel@gmail.com \
--cc=git@vger.kernel.org \
--cc=krh@redhat.com \
--cc=raa.lkml@gmail.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).