delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2015/07/07/14:50:12

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; q=dns; s=
default; b=D8NUtTpf4eIoGMkAIgcCgl7Y5LzICC1+t0aPgGft+yL41wfZSQzmw
IJhuVvU1nK6DuX+l8x42Oz2ixU5qBwagZ5ZFgzBuHugfMQ4o/0tufs4u9grI07EN
ZbhA6mZOZacQE6BSW/sWbGJXFnGXGZeVPgJNkzOsy/wcT+WjcMGzI4=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; s=default;
bh=rQZ5qMw0/ZSuglsSPlZm/1lYO54=; b=v3asKt0a/wWd/JVKd4m2A+Lqvpr2
USlHK3lZ6ZmKXv2PWPoSg6TskJYi0skwmwK4FK6pGOiTU9jjL7H95xw4SvS9mNgK
A2m/jr3fBL3foD9et5q5qbRM3vJzW4lhVPF/7TcFPEA+pW7uTeBHIkvFEvNbyRcW
Ombxl995qRcS/PU=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-5.4 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY autolearn=no version=3.3.2
X-HELO: calimero.vinschen.de
Date: Tue, 7 Jul 2015 20:49:52 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.1.0-0.4
Message-ID: <20150707184952.GA27472@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <announce DOT 20150705213417 DOT GH2918 AT calimero DOT vinschen DOT de> <5599E4C5 DOT 1010109 AT cornell DOT edu> <20150706100158 DOT GJ2918 AT calimero DOT vinschen DOT de> <559A7F74 DOT 1000402 AT cornell DOT edu> <20150706144555 DOT GR2918 AT calimero DOT vinschen DOT de> <559AA4C8 DOT 30309 AT cornell DOT edu> <20150706163424 DOT GV2918 AT calimero DOT vinschen DOT de> <20150707154916 DOT GB2918 AT calimero DOT vinschen DOT de> <559C14D2 DOT 1000303 AT cornell DOT edu>
MIME-Version: 1.0
In-Reply-To: <559C14D2.1000303@cornell.edu>
User-Agent: Mutt/1.5.23 (2014-03-12)

--0F1p//8PRICkK4MW
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Jul  7 14:05, Ken Brown wrote:
> On 7/7/2015 11:49 AM, Corinna Vinschen wrote:
> >On Jul  6 18:34, Corinna Vinschen wrote:
> >>On Jul  6 11:54, Ken Brown wrote:
> >>>On 7/6/2015 10:45 AM, Corinna Vinschen wrote:
> >>>>If you want to know how big your current stack *actually* is, you can
> >>>>utilize pthread_getattr_np on Linux and Cygwin, like this:
> >>>>
> >>>>#include <pthread.h>
> >>>>
> >>>>   static void
> >>>>   handle_sigsegv (int sig, siginfo_t *siginfo, void *arg)
> >>>>   {
> >>>>     pthread_attr_t attr;
> >>>>     size_t stacksize;
> >>>>
> >>>>     if (!pthread_getattr_np (pthread_self (), &attr)
> >>>>	&& !pthread_attr_getstacksize (&attr, &stacksize))
> >>>>       {
> >>>>	beg =3D stack_bottom;
> >>>>	end =3D stack_bottom + stack_direction * stacksize;
> >>>>
> >>>>	[...]
> >>>>
> >>>>Unfortunately this is non-portable as well, as the trailing _np denot=
es,
> >>>>but at least there *is* a reliable method on Linux and Cygwin...
> >>>
> >>>Thanks.  That fixes the problem too, even with the call to setrlimit l=
eft
> >>>in. I'll report this to the emacs developers.
> >>
> >>Excellent, thanks for testing this!
> >
> >Uh oh.  We have a problem there.  This only worked accidentally, at least
> >on x86_64.  What happens is that pthread_getattr_np checks the validity
> >of the "attr" parameter and while doing so it may (validly) raise a SEGV.
>=20
> Yes, I discovered that too.  I was just about to send off an emacs bug
> report and patch, but then I decided to test it once more and got the SEG=
V.
> [...]
> >As you might have noticed, this has nothing to do with the alternate
> >stack.  It's just YA problem which cropped up during this testphase.
>=20
> Yep.  But the good news is that the alternate stack is working.

I spoke too soon.  This *is* a result of the alternate stack handling.
When the exception occurs while running on the alternate stack, the OS
exception handler checks if the stack pointer is valid, and since it's
not in the stackarea as stored in the TEB, it treats the stack as
corrupted.  That's why it stops calling the SEHs.

In the meantime I found a workaround for this problem with only a very
marginal performance hit.  I applied it to the repo and I'm just in the
process of creatsing new snapshots.  If the snapshots work for you I
create another test release.


Thanks,
Corinna

--=20
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

--0F1p//8PRICkK4MW
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJVnB9QAAoJEPU2Bp2uRE+gIlYP/3WfhjcwteiHlxJbS/uQScwU
el0K/Fk0+LIIneEH40BX4239lAYDMcLCXzFDKArnt2A8Rc/Lv0U8rOpiCrFsYqkV
aQXQQmKvno9dEAS5XCI7TBS7TO10xJEmfOEi/he3rcf6xSGgqnAEcPKpr9ui5D5b
hZJrQ2ZTV7Pmc4lmd8t5XfuTu5kLk9/33ECri/H+MmFgnPlhwMwy1oGzuIeFNBYO
uF8v9WtckxM1gM9f3jPpolLDwzVEUyuZwHplZ3v7Ni6g5ZFLoYyUCISLTcVTce55
0fJ0vClmv/Hz2IzVvQPB00JaaWuFOOpW27WogVItPNFX+6zn+9zcStKwbePIVeeR
RCxTwzBDTkJlff8jgHPHjNCKpDAOqRiWZGH0iEgTeKKCk6QGNuTUCigGr/AdBxq1
krAOgtPsVZ7BTP3VSQcgjw83+D39usW7EJXFajytUYRSzo9yHYdRgCxjCYNoTPKI
Of6t2IisEEw76092FaPLVpNZDslRmRbgKYG054p3MuBeR+frWXVZVYGWKXekrZvx
ibi7XRpCzQUCrJF8ECtjIlwYtS0ANTDdZX8LT9hlyF7QF/ZJde/SF4rfemxYTEZM
G7Pebug8uuNggKDJuoBSzWhJnxEm8mxvf9ui/rq2+vrua7PJiK8o2oEw+H69PVYO
i3ZMurUncenQ0LaR2w9k
=shvl
-----END PGP SIGNATURE-----

--0F1p//8PRICkK4MW--

- Raw text -


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