Re: [PATCH] t0005: skip signal death exit code test on Windows

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

 



On Thu, Jun 06, 2013 at 10:21:47AM -0700, Junio C Hamano wrote:

> > The particular deficiency is that when a signal is raise()d whose SIG_DFL
> > action will cause process death (SIGTERM in this case), the
> > implementation of raise() just calls exit(3).
> 
> After a bit of web searching, it seems to me that this behaviour of
> raise() is in msvcrt, and compat/mingw.c::mingw_raise() just calls
> that.  In other words, "the implementation of raise()" is at an even
> lower level than mingw/msys, and I would agree that it is a platform
> issue.

Yeah, if it were mingw_raise responsible for this, I would suggest using
the POSIX shell "128+sig" instead. We could potentially check for
SIG_DFL[1] mingw_raise and intercept and exit there. I don't know if
that would create headaches or confusion for other msys programs,
though. I'd leave that up to the msysgit people to decide whether it is
worth the trouble.

[1] I'd use sigaction to do that on POSIX, but I would not be surprised
    to find that there is no support for it in msys. :)

> I tried to summarize the issue for end-user documentation and came
> up with this:
> 
>     The Git implementation on MinGW exits with status code 3 upon
>     receiving an uncaught process-terminating signal, just like any
>     program that link with msvcrt (Microsoft C Runtime library)
>     whose raise() implementation just calls exit(3).  This is
>     different from Git on POSIX, which reports a death by receiving
>     a signal with the exit status code (128 + signal number).
> 
> But when stated this way, it feels that it belongs to Msysgit
> documentation, not ours, at least to me.

Yeah, I think I agree.

-Peff
--
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]