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 --to=jan...@example.com -1 
> refs/heads/accounting
>
> --dump-aliases incompatible with other options
> test_must_fail: command not found: git send-email --dump-aliases 
> --to=jan...@example.com -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 $?"

Reply via email to