(This is newer than updated patch v3). I decided to go on a bit further with new features, and that's why this is back as RFC. Diffrences from first RFC round: - Split loop-over-close to its own function and warn but not retry on bizarre error codes (basically anything except EBADF and EINTR). - Don't rely on pipe(2) to preserve the fd array on failure. - Add some testcases. - Fix buggy behaviour if report pipe read end winds up as fd #0. - Set silent_exec_failure on executing remote helper. - Make exec reporting in presence of preexec_cb controlled by flag to solve pager deadlock problems without preventing using preexec_cb with exec reporting entierely (the way pager is invoked is just fundamentially incompatible with exec reporting). - Add flag to make run-command give different code for exec failing due to ENOENT than for other failures (including other ways to get ENOENT). - change chdir failure to be reported as error (and pass error code back). BTW: Nothing seems to use that chdir feature, aside of new testcase. - Report errors to parent's stderr. - Don't retry waitpid on bizarre error codes (basically anything except EINTR). - Make run_command actually complain about exec failing (as API docs say). Ilari Liusvaara (2): Report exec errors from run-command Improve transport helper exec failure reporting Documentation/technical/api-run-command.txt | 2 + Makefile | 1 + run-command.c | 196 +++++++++++++++++++++++++-- run-command.h | 2 + t/t0061-run-command.sh | 20 +++ test-run-command.c | 74 ++++++++++ transport-helper.c | 27 +++- 7 files changed, 305 insertions(+), 17 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