Bug: Synchronous signals broken on Cygwin 64

Houder houder@xs4all.nl
Thu Apr 26 10:55:00 GMT 2018


On 2018-04-26 12:45, Houder wrote:
> On Thu, 26 Apr 2018 09:57:59, Thomas Zimmermann wrote:
> 
>> Hello mailing list,
>> 
>> I noticed that synchronous signals (e.g., SIGSEGV, SIGFPE) appear to 
>> be
>> broken on 64-bit Cygwin systems. I could not find additional 
>> information
>> on the mailing list. If this is not already a known problem, you'll 
>> find
>> some analysis below.
>> 
>> I use Cygwin DLL 2.10 with all packages up-to-date. My test system 
>> runs
>> Windows 7.
>> 
>> The expected behavior is that an installed signal handler runs exactly
>> once for a signal and the OS terminates the program if the handler
>> returns. This works on 32-bit Cygwin. From my observation, Cygwin 64
>> differs in the follow ways:
> 
> .. uhm, unless SA_RESETHAND (sa_flags) has been specified, I expect the
> handler to be invoked again and again ...

     ... and if SA_RESETHAND has been specified, the OS will terminate 
the
     program after the 1st invocation of the handler (yes, in case of 
this
     type of exception; in this case FPE)

> And that is what I observe on Linux ...
> 
>> 1) Generating a synchronous signal on the main thread, makes the 
>> signal
>> handler enter an endless loop. The attached test 'syncsig.c' 
>> illustrates
>> this.
>> 
>> 2) Generating a synchronous signal on an additional POSIX thread 
>> ignores
>> the installed signal handler entirely. The handler does not run and 
>> the
>> program gets terminated immediately. The attached test 'syncsig_mt.c'
>> illustrates this.
> 
> Yes, this behaviour is wrong ...
> 
> Henri

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list