Hi, Adrian Bunk wrote:
> https://buildd.debian.org/status/package.php?p=git&suite=sid > > expecting success: > test_must_fail git send-email --dump-aliases [email protected] -1 > refs/heads/accounting > > --dump-aliases incompatible with other options > test_must_fail: command not found: git send-email --dump-aliases > [email protected] -1 refs/heads/accounting > not ok 134 - --dump-aliases must be used alone Thanks for reporting. The relevant code is die __("--dump-aliases incompatible with other options\n") if !$help and $dump_aliases and @ARGV; test_must_fail prints the "command not found" message if and only if the status code was 127. I would have expected it to be 1 or 128 here. "man perlfunc" says If the exception is outside of all enclosing "eval"s, then the uncaught exception prints LIST to "STDERR" and exits with a non-zero value. If you need to exit the process with a specific exit code, see "exit". That doesn't tell me what the status code will be. Peeking at the source, I find int exitstatus; if (errno & 255) STATUS_UNIX_SET(errno); else { exitstatus = STATUS_UNIX >> 8; if (exitstatus & 255) STATUS_UNIX_SET(exitstatus); else STATUS_UNIX_SET(255); } which seems risky (there are many functions that could set errno, so this is prone to spooky action at a distance if any caller forgets to set it explicitly). Looking for errno values that could be 127 in glibc and linux using "git grep --cached -e '#.*define.*E.*127'", I find linux:arch/alpha/include/uapi/asm/errno.h:#define ERESTART 127 linux:arch/mips/include/uapi/asm/errno.h:#define ENETDOWN 127 linux:arch/sparc/include/uapi/asm/errno.h:#define ECANCELED 127 linux:include/uapi/asm-generic/errno.h:#define EKEYEXPIRED 127 so that doesn't look likely to be the cause. Next step is to ssh into porterboxes and get the output of perl -e 'die "testing"'; echo $?"

