delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2015/07/27/06:54:29

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:message-id:in-reply-to:references:date:subject
:from:to:mime-version:content-type:content-transfer-encoding; q=
dns; s=default; b=CqhE8I8wQG1EZ/9ndojaVHd5fuHPPCDkJwVbONYPoMKLSK
1jL7RAbkt+Gc9CX8mJL73Ty2GQEIeIQrj4KTsCCu2nOi5VHVJtc6oej7Ljeg9IlI
wF+GsahOwmOwaAYHOUij19qC+55gsDd9mJS+cXUY3cztgaWyFsLiN5l0q+kzk=
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:message-id:in-reply-to:references:date:subject
:from:to:mime-version:content-type:content-transfer-encoding; s=
default; bh=tCy5j+hKppHWQpOwBcKL0hnmpWw=; b=Tnjv3Wwkp9jPc/9WCDZV
8tCHh19t/AWFca2u1JUoMS1/TrO3R58cwx5QPWhdpEYGITBCK8EcNasnv44yzaQl
2a8PDdRgVuZ4Rht/8BC5UjqM7nzaogNgQJR+yKaPcyCbdSAp/m5pcBEjgXtaQtNL
hyW/vpQqGvMWi1nffvKv9JQ=
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=-1.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2
X-HELO: lb1-smtp-cloud6.xs4all.net
Message-ID: <994a85838723f326327975650e214a79.squirrel@oude-webmail.xs4all.nl>
In-Reply-To: <4afa07869c07cd6a57441b221ca5fdf7.squirrel@oude-webmail.xs4all.nl>
References: <announce DOT 55B1677D DOT 5080303 AT towo DOT net> <63a08c60771faffa23bc1c029235301d DOT squirrel AT oude-webmail DOT xs4all DOT nl> <55B22422 DOT 6000601 AT towo DOT net> <d9ef810e0ad325a9b51f641a10a06f0b DOT squirrel AT oude-webmail DOT xs4all DOT nl> <55B2B644 DOT 8010506 AT towo DOT net> <be0351be5e3aa7b7ba980fc25f9cce0c DOT squirrel AT oude-webmail DOT xs4all DOT nl> <e731c3536912df8739a630e17ab5d8ec DOT squirrel AT oude-webmail DOT xs4all DOT nl> <10d3a46960f8ec71784bdf15a0ee6b58 DOT squirrel AT oude-webmail DOT xs4all DOT nl> <1e17310bb0689632cd19fd7648bd9907 DOT squirrel AT oude-webmail DOT xs4all DOT nl> <55B5109A DOT 4010700 AT towo DOT net> <4afa07869c07cd6a57441b221ca5fdf7 DOT squirrel AT oude-webmail DOT xs4all DOT nl>
Date: Mon, 27 Jul 2015 12:54:09 +0200
Subject: Re: [ANNOUNCEMENT] Update: mintty 2.1.2
From: "Houder" <houder AT xs4all DOT nl>
To: cygwin AT cygwin DOT com, "Thomas Wolff" <towo AT towo DOT net>
User-Agent: SquirrelMail/1.4.22
MIME-Version: 1.0
X-IsSubscribed: yes

> Hi Thomas,
>
> Let me rephrase/summarize my findings:
>
> Executing 'mintty -D' (i.e. v212)
>
>     from a shortcut to bash (i.e. Cygwin console),
>
> will fork itself, where the child will turn itself into a session leader, as
> desired.
>
> i.e. the following code will be executed:
>
> #if 1 // Thomas
>  if (daemonize && !isatty(0)) { // daemonize == true, !isatty(0) == true
>    if (fork() > 0) exit(0);
>    setsid(); // executed by child
>  }
> #endif
>
> 1. if 'Windows Basic' has been selected (Personalization), the child will crash.
>
> 2. if 'Windows 7' has been selected (Personalization), the child will NOT crash,
>    ... and, eventually, fork itself, where the "grandchild" will replace itself
>    by bash in the end.

Hi Thomas,

I _may_ have found the cause of the problem ... (but all bets are off!).

main() in winmain.c starts as follows:

int
main(int argc, char *argv[])
{
  main_argv = argv;
  main_argc = argc;
// Henri: too early?
#if 0
  load_dwm_funcs();
#endif

load_dwm_funcs() apparently "loads" a library, as follows:

load_dwm_funcs
  load_sys_library("dwmapi.dll")
    LoadLibrary ...

Will the library still be loaded in the child, I asked myself ...

As an experiment, I moved the call to load_dwm_funcs() after fork/setsid.

... fork()
... setsid()

// child continues ...

// Henri: will dwmapi.dll still be loaded after the fork() call ?????
#if 1
load_dwm_funcs();
#endif

Still more testing is needed ... but I _may_ have found why mintty -D crashes. But
I cannot explain why the crash does not occur when "eye candy" has been enabled.

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

- Raw text -


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