From: Tarmigan Date: Thu, 31 Dec 2009 05:26:48 GMT Subject: Re: [Updated PATCH 1/2] Report exec errors from run-command Message-ID: <905315640912302126n1848c99cre0f9caa644041fad@mail.gmail.com> In-Reply-To: <1262170338-11574-2-git-send-email-ilari.liusvaara@elisanet.fi> On Wed, Dec 30, 2009 at 5:52 AM, Ilari Liusvaara wrote: > Previously run-command was unable to report errors happening in exec > call. Change it to pass errno from failed exec to errno value at > return. > > The errno value passing can be done by opening close-on-exec pipe and > piping the error code through in case of failure. In case of success, > close-on-exec closes the pipe on successful exec and parent process > gets end of file on read. I was testing pu and 'git diff' and 'git log' would hang forever. Bisecting pointed to v1 of this patch. But seeing that v2 was out, I tried v2 of the patch, but the issue remains. Tried on OSX and linux with the same results. Here's a gdb backtrace on OSX at the point where I interrupted it: (gdb) bt #0 0x9923dbfe in read$UNIX2003 () #1 0x000b399b in start_command (cmd=0x10b300) at run-command.c:110 #2 0x00099452 in setup_pager () at pager.c:94 #3 0x0002196b in cmd_diff (argc=1, argv=0xbffff42c, prefix=0x0) at builtin-diff.c:316 #4 0x00002a2a in run_builtin [inlined] () at git.c:257 #5 0x00002a2a in handle_internal_command (argc=1, argv=0xbffff42c) at git.c:401 #6 0x00002cab in main (argc=1, argv=0xbffff42c) at git.c:443 and on linux: (gdb) bt #0 0x0000003530a0d590 in __read_nocancel () from /lib64/libpthread.so.0 #1 0x0000000000494858 in start_command (cmd=0x71ed60) at run-command.c:93 #2 0x000000000047daf8 in setup_pager () at pager.c:94 #3 0x000000000041d83f in cmd_diff (argc=1, argv=0x7fff256f9fe0, prefix=0x0) at builtin-diff.c:316 #4 0x0000000000403ced in handle_internal_command (argc=1, argv=0x7fff256f9fe0) at git.c:257 #5 0x0000000000403f26 in main (argc=1, argv=0x7fff256f9fe0) at git.c:445 Thanks, Tarmigan