Re: [PATCH] Clear fd after closing to avoid double-close error
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 23, 2013, 16:06 UTC
- Message-ID
- <xmqqvc0oq8de.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <CAEef6Wyui5EkNoEGKfb+NHZyb3BTkHME234M1zMyjuux5yMUeg@mail.gmail.com>
Jens Lindström <jl@opera.com> writes:
Show 14 quoted lines
> On Tue, Oct 22, 2013 at 8:42 PM, Junio C Hamano <gitster@pobox.com> wrote: >> Duy Nguyen <pclouds@gmail.com> writes: > >>> Life would have been simpler if fd[1] was _always_ closed by >>> send_pack(), like in c20181e (start_command(), if .in/.out > 0, closes >>> file descriptors, not the callers - 2008-02-21). >> >> Yeah, that was also my first reaction when I saw the above three >> lines after reading the discussion that led to the diagnosis. > > If send_pack() always closes fd[1], then I believe "git send-pack > --stateless-rpc --helper-status" would die in print_helper_status(), > called after send_pack(), since fd[1] would be 1, to which > print_helper_status() will try to write.
Ah, I obviously did not look far enough. Of course we could dup(2) the fd=1 to code it around, but it is not clear to me if it is worth it---your solution (v2) is clearer, so let's queue it with Acks we saw from Peff and Duy.
Thanks.