Re: Funny error with git gc...
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- May 23, 2009, 08:53 UTC
- Message-ID
- <alpine.DEB.1.00.0905231050480.9099@intel-tinevez-2-302>
- In-Reply-To
- <alpine.LFD.2.01.0905151307390.3343@localhost.localdomain>
Hi,
On Fri, 15 May 2009, Linus Torvalds wrote:
Show 9 quoted lines
> On Fri, 15 May 2009, Johannes Schindelin wrote:
> >
> > fd = mkstemp(template);
> > + if (fd < 0) {
> > + release_pack_memory((size_t)-1ll, -1);
> > + fd = mkstemp(template);
>
> This is wrong. You can't use "template" twice. You need to re-initialize
> it. The first one will blow away the XXXX pattern.Turns out that would be awkward, as the xmkstemp() function would have to copy the template just in case mkstemp() fails due to too many open files, and of course it would need to release the copy afterwards.
OTOH we cannot just use the initialized filename, because there might be a race condition with another process, right?
Ciao, Dscho