[PATCH 0/4] Detect exec errors in start_command early

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Samstag, 9. Januar 2010, Ilari Liusvaara wrote:
>  6 files changed, 282 insertions(+), 13 deletions(-)

IMHO, you are going completely overboard with your patch.

You check every single possible and unlikely error condition in the new code 
that you introde, but ignore that there are quite a number of calls in the 
existing code whose error conditions go checked.

And as a result, you "only" report errno values of some calls, and ignore that 
there is at least one potential die() call hidden in execv_git_cmd(). IOW, 
your code is not a catch-all and only an isolated solution.

I hope I can do better.

I developed this series on top of il/vcs-helper. But patches 1-3/4 are 
actually an independent topic and also suitable to be merged into 
jk/run-command-use-shell to implement improved DWIM whether a shell is 
needed.

Patch 4/4 is to address your problem of weak error reporting with transport 
helpers. I think I understand now what your problem is -- namely that 
previously no error was reported if a transport helper program did not exist. 
The reason for the missing error message is IMO a design weakness in the 
protocol: It requires that the parent talks first - and by talking to an 
early-died child process it dies from SIGPIPE. I experimented with 
signal(SIGPIPE, SIG_IGN) to get around this, but it didn't work (the SIGPIPE 
arrived anyway).

Anyway, patch 4/4 goes on top of il/vcs-helper after merging the topic 
consisting of 1-3/4.

Ilari Liusvaara (1):
  Improve error message when a transport helper was not found

Johannes Sixt (3):
  start_command: report child process setup errors to the parent's
    stderr
  run-command: move wait_or_whine earlier
  start_command: detect execvp failures early

 Makefile               |    1 +
 run-command.c          |  177 
+++++++++++++++++++++++++++++++++++-------------
 t/t0061-run-command.sh |   14 ++++
 test-run-command.c     |   35 ++++++++++
 transport-helper.c     |   14 +++-
 5 files changed, 191 insertions(+), 50 deletions(-)
 create mode 100755 t/t0061-run-command.sh
 create mode 100644 test-run-command.c
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]