From: Johannes Schindelin Date: Mon, 26 Apr 2010 06:29:32 GMT Subject: Re: [PATCH] start_command: close cmd->err descriptor when fork/spawn fails Message-ID: In-Reply-To: <1272244540-5960-1-git-send-email-dvornik+git@gmail.com> Hi, On Sun, 25 Apr 2010, bert Dvornik wrote: > Fix the problem where the cmd->err passed into start_command wasn't > being properly closed when certain types of errors occurr. (Compare the > affected code with the clean shutdown code later in the function.) > > On Windows, this problem would be triggered if mingw_spawnvpe() failed, > which would happen if the command to be executed was malformed (e.g. a > text file that didn't start with a #! line). If cmd->err was a pipe, > the failure to close it could result in a hang while the other side was > waiting (forever) for either input or pipe close, e.g. while trying to > shove the output into the side band. On msysGit, this problem was > causing a hang in t5516-fetch-push. > > I'm not sure why (or if) this problem hasn't cropped up under Linux. The > non-Windows code *does* try to check for execve() failures in the child, > in addition to the fork() failures. Thanks. Both patches applied and pushed to 4msysgit.git. Ciao, Dscho