delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2025/03/24/08:27:06

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 52OCR55Y2277793
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 52OCR55Y2277793
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=lbFoxyD0
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F0C243856256
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1742819224;
bh=mssCxEd49lHr89gGXtNQbGUyL80c8JCYnbfqkuY0RE8=;
h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post:
List-Help:List-Subscribe:From:Reply-To:From;
b=lbFoxyD0vc68fPVj9Qe3BWpAT79snBvlFHmXjAIaNPIfMGVIfzrw6GFKC7oq1lArk
l5/dHPIzDhh7vbHRtp/69ynkTx2OHgTT6K/8lM46X0/lwok7E2D91B1Aganyr9ys/F
qTNLcfqj1kHbyl81U1ZBq8yZJlNnooCDQQz29rPY=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 237E13857BA2
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 237E13857BA2
ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1742819189; cv=pass;
b=ua6WasaQ6LesQiN5xJeYwGbTT3aapabG/obaJDlebgUwCcFo2KDiJBp3iuKboftgDqlBv1N8m26nWC0Ae4za/PPtC9SmE4xKX309U1XLNaOfklorrrIShLg71HxmKxNjf5YJulGsZZcATOLoKzAHNjTk1fGbQghfyh/3y5qjSq4=
ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key;
t=1742819189; c=relaxed/simple;
bh=D6I31RYgBwD1nAlPnOBCp+rYW49x0RMaxsyvHDcWxR0=;
h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:
MIME-Version;
b=IwZEehXnfhkEwqyAFNhtS7tJVXhg6U65UBK7dy3fYoOAW0dlQZqwsF4s2g9WRu4WHgkJxfJRf42C6TET5wNbQm1qROUizCp2Ase/BxnYrivX7L2V+wOAugDZeuaUdSveFhYYYz2ZjFpMuTfRnXPI1/0iaMzksexMZInLLvI3Q9w=
ARC-Authentication-Results: i=2; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 237E13857BA2
ARC-Seal: i=1; a=rsa-sha256; t=1742819187; cv=none;
d=strato.com; s=strato-dkim-0002;
b=JpZhRdCpP/zcDcifhO8PBlGDF1XIPmNtTKLPsOLB8sihTj2o7LwdwsGkOd5hS3YOt1
VPG5NdDJtUB5kb0NZtjIrt+UGv/i/HcwlRWZLCpZ2PsdIB4hKHidvI7WlW1ST8w+OcJ2
n5zmhmIASSgObStoIQdM/FzERQCq++Lthj96cpszrCY6O7Z0H4axMHzJShDJgKZ5Akot
ei3egk9vBqb1ZRpRiKa5MsDW66cfkmzx2vBk6nss9y9N7jkkvjyv2AMw65TQ75OJbnsg
Lb7GnrgRzGNoeKpXrawEc91vepWFXId8PH56Ntwu5DGo45D9pCFC3frvtYBdqG0tWqH2
C7iQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1742819187;
s=strato-dkim-0002; d=strato.com;
h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender;
bh=KL15MdvSD/haQ8Z/zgdPKkubIN7eS+MkxQ4Qw4oGAgc=;
b=tg+wA2zZd2T2TBVbgYqfr4pApJuax76hAQdtfrJV0OHgORdJpOk+/sqmEoLAEJGkv8
CZ42svlex8fhWbH1yrF8HyrS+vTC4cVirRgo+sZz38dRwEkDyPWzOav6KN84Sav0KnOt
CPiAVnuh6VZgy06N2iqS4TdDi5IPbnr0ayS/EdyMPn+ox3JleHH7gK5qiNftb74jHFOy
s2XXh3vvjNE7co+QVtxGnIi4xFgYMlZiKTTSAXXEkOjI60KYYpUcpqRtgjpeUaZC6u7N
MOYzTazWaTQ0jxcgOYmHbLDPzH+7nSEKKXyNRHX1tmevok1e4qF2V/6Y9c+Q3SmSHN45
VPcg==
ARC-Authentication-Results: i=1; strato.com;
arc=none;
dkim=none
X-RZG-CLASS-ID: mo00
X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqmqaQGBSjfO4YvGI1HAKGtVlp8lF"
To: cygwin AT cygwin DOT com
Subject: SIGSEGV handling and stack overflow handling broken in Cygwin 3.6.0
Date: Mon, 24 Mar 2025 13:26:27 +0100
Message-ID: <3713076.WbyNdk4fJJ@nimes>
Organization: GNU
MIME-Version: 1.0
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Bruno Haible via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Bruno Haible <bruno AT clisp DOT org>
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

Hi,

Gnulib contains a few unit tests for
  - SIGSEGV handling,
  - stack overflow handling (via signal SIGSEGV or SIGBUS).

In Cygwin 3.4.6, SISGEGV handling was fine, and stack overflow handling
worked at least for the first stack overflow.

In Cygwin 3.5.6, SISGEGV handling was fine, but stack overflow handling
randomly worked for the first stack overflow or did not work, reminding
me of the raise() bug [1].

In Cygwin 3.6.0, SISGEGV handling and stack overflow handling are both
broken. Not randomly, but always reproducible.


How to reproduce
================

1. Create a testdir for gnulib's c-stack module:
$ ./gnulib-tool --create-testdir --dir=../testdir1 --single-configure c-stack
2. Transfer it to a Cygwin machine.
3. Build it: ./configure && make && make check


SIGSEGV handling
----------------

The test case is
$ ./test-sigsegv-catch-segv2

Expected output (like on glibc and Cygwin 3.4.6, 3.5.6):

Doing SIGSEGV pass 1.
Fault 1 caught.
Doing SIGSEGV pass 2.
Fault 2 caught.
Test passed.

Actual output in Cygwin 3.6.0:

Doing SIGSEGV pass 1.
Fault 1 caught.
Doing SIGSEGV pass 2.
Fault 2 caught.
Aborted


Stack overflow handling
-----------------------

The test cases are
$ ./test-c-stack; echo $?
and
$ ./test-sigsegv-catch-stackoverflow1; echo $?

Expected output (like on GNU/Linux):

$ ./test-c-stack; echo $?
test-c-stack: stack overflow
1

$ ./test-sigsegv-catch-stackoverflow1; echo $?
Starting recursion pass 1.
Stack overflow 1 caught.
Starting recursion pass 2.
Stack overflow 2 caught.
Test passed.
0

Actual output on Cygwin 3.4.6:

$ ./test-c-stack; echo $?
test-c-stack: stack overflow
1

$ ./test-sigsegv-catch-stackoverflow1; echo $?
Starting recursion pass 1.
Stack overflow 1 caught.
Starting recursion pass 2.
0

Actual output on Cygwin 3.5.6:

$ ./test-c-stack; echo $?

Sometimes
0
Sometimes
test-c-stack: stack overflow
1

$ ./test-sigsegv-catch-stackoverflow1; echo $?
Sometimes
Starting recursion pass 1.
0
Sometimes
Starting recursion pass 1.
Stack overflow 1 caught.
Starting recursion pass 2.
0

Actual output on Cygwin 3.6.0:

$ ./test-c-stack; echo $?
0

$ ./test-sigsegv-catch-stackoverflow1; echo $?
Starting recursion pass 1.
0


Please CC me in your replies.

Bruno

[1] https://sourceware.org/pipermail/cygwin/2024-December/256973.html




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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019