From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 77932 invoked by alias); 24 Jul 2015 11:40:26 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 77917 invoked by uid 89); 24 Jul 2015 11:40:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.5 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY autolearn=no version=3.3.2 X-HELO: demumfd002.nsn-inter.net Received: from demumfd002.nsn-inter.net (HELO demumfd002.nsn-inter.net) (93.183.12.31) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 24 Jul 2015 11:40:24 +0000 Received: from demuprx016.emea.nsn-intra.net ([10.150.129.55]) by demumfd002.nsn-inter.net (8.15.1/8.15.1) with ESMTPS id t6OBeJ5f026091 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 24 Jul 2015 11:40:20 GMT Received: from [10.149.138.145] ([10.149.138.145]) by demuprx016.emea.nsn-intra.net (8.12.11.20060308/8.12.11) with ESMTP id t6OBeIu1025946 for ; Fri, 24 Jul 2015 13:40:19 +0200 Message-ID: <55B22422.6000601@towo.net> Date: Fri, 24 Jul 2015 11:40:00 -0000 From: Thomas Wolff User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: cygwin@cygwin.com Subject: Re: [ANNOUNCEMENT] Update: mintty 2.1.2 References: <63a08c60771faffa23bc1c029235301d.squirrel@oude-webmail.xs4all.nl> In-Reply-To: <63a08c60771faffa23bc1c029235301d.squirrel@oude-webmail.xs4all.nl> X-TagToolbar-Keys: D20150724134018394 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-size: 2567 X-purgate-ID: 151667::1437738020-000063FD-B817D05D/0/0 X-IsSubscribed: yes X-SW-Source: 2015-07/txt/msg00370.txt.bz2 On 24.07.2015 09:50, Houder wrote: >> mintty 2.1.2 is an update in response to a number of crash reports under >> unclear circumstances; To resolve this discomforting issue which I still cannot reproduce, could please those who experience a crash report some details about their calling environment? Could the issue be related to the occasional fork() resource problems in cygwin? How much free memory do you have? Insights can also be collected in https://github.com/mintty/mintty/issues/464 >> mintty only detaches from the caller's terminal if the option -D is given > Thank you, Thomas! > ... My quick fix seems to work for now at least, sigh! > I extracted mintty.exe (and named it mintty-v212.exe) from mintty-2.1.2-0.tar.xz, and > placed it in /bin (i.e. I did not install through setup.exe) > > From winmain.c (v212), > > // if started from console, try to detach from caller's terminal (~daemonize) > // in order to not suppress signals > // (indicated by isatty if linked with -mwindows) > if (daemonize && !isatty(0)) { // boolean daemonize is set to true if -D is specified > if (fork() > 0) exit(0); > setsid(); > } > > I gather, that v212 has the "old behaviour" if -D is not specified on the command line. > > Test v212: > > - started from the explorer: works > - using a dos console (in which mintty-v212 is started): works > - using a dos console (in which bash is started), followed by invocation of mintty-v212: works > - using a dos console (in which cmd is started), followed by invocation of mintty-v212: works > > Of course, SIGINT is ignored in the third case (old behaviour). > > Invocation of 'mintty-v212 -D' in the third case, makes "mintty" crash again ... > (hint: source code of setsid.c -- util-linux package) Maybe setsid() should not be called if fork() fails... Could you try this please: if (daemonize && !isatty(0)) { int pid = fork(); if (pid > 0) exit(0); // exit parent process if (pid == 0) setsid(); // detach child process if (pid < 0) { error("could not detach from caller"); exit(9); } } > (... and I ask myself whether or not the condition '!isatty' is the "correct condition" to > go "daemon") I wanted to check ttyname() for "/cons" but surprisingly ttyname() was null when started from cygwin console; – could this be related to the original issue of signals not being delivered? (Corinna?) Thanks for everybody's debugging support. Thomas -- 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