From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15748 invoked by alias); 21 May 2015 11:53:24 -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 15737 invoked by uid 89); 21 May 2015 11:53:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_SORBS_DUL,SPF_PASS autolearn=ham version=3.3.2 X-HELO: conuserg001-v.nifty.com Received: from conuserg001.nifty.com (HELO conuserg001-v.nifty.com) (202.248.45.242) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (DES-CBC3-SHA encrypted) ESMTPS; Thu, 21 May 2015 11:53:22 +0000 Received: from Express5800-S70 (ntsitm305199.sitm.nt.ftth.ppp.infoweb.ne.jp [121.93.68.199]) (authenticated) by conuserg001-v.nifty.com with ESMTP id t4LBr8id002011 for ; Thu, 21 May 2015 20:53:09 +0900 X-Nifty-SrcIP: [121.93.68.199] Date: Thu, 21 May 2015 12:13:00 -0000 From: Takashi Yano To: cygwin@cygwin.com Subject: Re: cygwin-2 process handling Message-Id: <20150521205357.2c125b3bcaf877d0843b52b1@nifty.ne.jp> In-Reply-To: <555B7E03.40404@cornell.edu> References: <1573487218.1490468.1431969356192.JavaMail.yahoo@mail.yahoo.com> <555B6F71.4040906@cornell.edu> <555B7E03.40404@cornell.edu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Thu__21_May_2015_20_53_57_+0900_.mEEGPyir8ZUOEOQ" X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg00283.txt.bz2 --Multipart=_Thu__21_May_2015_20_53_57_+0900_.mEEGPyir8ZUOEOQ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 1579 Hi Ken, On Tue, 19 May 2015 14:16:35 -0400 Ken Brown wrote: > OK, I got the bisection to work: > > 32fd5b0fe1548cff79b9868e4e259853c59a44db is the first bad commit > commit 32fd5b0fe1548cff79b9868e4e259853c59a44db > Author: Takashi Yano > Date: Thu Mar 12 15:48:10 2015 +0100 > > Let pty slave detect closure of last master handle > > * fhandler_tty.cc (fhandler_pty_master::close): Add code to > make slave > detect closure of master. Fix typo in error message. > > > Takashi, can you help? If not, we'll have to wait for Corinna to get > back from vacation. I was looking into this problem, and found the PeekNamedPipe() call is blocked in fhandler_pty_master::close() when the problem occurs. I had not noticed that, https://msdn.microsoft.com/en-us/library/windows/desktop/aa365779(v=vs.85).aspx says: > The PeekNamedPipe function can block thread execution the same > way any I/O function can when called on a synchronous handle in > a multi-threaded application. I have made a patch attached to resolve this problem. Please have a look. With this patch, NtQueryObject() is used instead of PeekNamedPipe() to detect closure of the last master handle. Please refer to the following discussion for more details. http://cygwin.com/ml/cygwin/2015-03/msg00221.html ChageLog is as follows. 2015-05-21 Takashi Yano * fhandler_tty.cc (fhandler_pty_master::close): Use NtQueryObject() instead of PeekNamedPipe() to detect closing the last master handle. -- Takashi Yano --Multipart=_Thu__21_May_2015_20_53_57_+0900_.mEEGPyir8ZUOEOQ Content-Type: application/octet-stream; name="cygwin.patch.20150521" Content-Disposition: attachment; filename="cygwin.patch.20150521" Content-Transfer-Encoding: base64 Content-length: 2095 ZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfdHR5LmNjIGIv d2luc3VwL2N5Z3dpbi9maGFuZGxlcl90dHkuY2MKaW5kZXggZTkxYjNlMy4u OTViZjQ0NSAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl90 dHkuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl90dHkuY2MKQEAg LTEzMDksMTMgKzEzMDksMzcgQEAgZmhhbmRsZXJfcHR5X21hc3Rlcjo6Y2xv c2UgKCkKIAl9CiAgICAgfQogCisgIEhBTkRMRSBvdXRwdXRfaGFuZGxlX2xv Y2FsOworICBpZiAoIUR1cGxpY2F0ZUhhbmRsZSAoR2V0Q3VycmVudFByb2Nl c3MgKCksIGdldF9vdXRwdXRfaGFuZGxlICgpLAorCQkgICAgICAgR2V0Q3Vy cmVudFByb2Nlc3MgKCksICZvdXRwdXRfaGFuZGxlX2xvY2FsLAorCQkgICAg ICAgMCwgVFJVRSwgRFVQTElDQVRFX1NBTUVfQUNDRVNTKSkKKyAgICB7Cisg ICAgICB0ZXJtaW9zX3ByaW50ZiAoIkR1cGxpY2F0ZUhhbmRsZSAob3V0cHV0 X2hhbmRsZSksICVFIik7CisgICAgICBvdXRwdXRfaGFuZGxlX2xvY2FsID0g TlVMTDsKKyAgICAgIFNldEV2ZW50IChpbnB1dF9hdmFpbGFibGVfZXZlbnQp OworICAgIH0KKwogICBmaGFuZGxlcl9wdHlfY29tbW9uOjpjbG9zZSAoKTsK IAogICAvKiBDaGVjayBpZiB0aGUgbGFzdCBtYXN0ZXIgaGFuZGxlIGhhcyBi ZWVuIGNsb3NlZC4gIElmIHNvLCBzZXQKICAgICAgaW5wdXRfYXZhaWxhYmxl X2V2ZW50IHRvIHdha2UgdXAgcG90ZW50aWFsbHkgd2FpdGluZyBzbGF2ZXMu ICovCi0gIGlmICghUGVla05hbWVkUGlwZSAoZnJvbV9tYXN0ZXIsIE5VTEws IDAsIE5VTEwsIE5VTEwsIE5VTEwpCi0gICAgICAmJiBHZXRMYXN0RXJyb3Ig KCkgPT0gRVJST1JfQlJPS0VOX1BJUEUpIAotICAgIFNldEV2ZW50IChpbnB1 dF9hdmFpbGFibGVfZXZlbnQpOworICBpZiAob3V0cHV0X2hhbmRsZV9sb2Nh bCkKKyAgICB7CisgICAgICBPQkpFQ1RfQkFTSUNfSU5GT1JNQVRJT04gb2Jp OworICAgICAgTlRTVEFUVVMgc3RhdHVzOworICAgICAgVUxPTkcgaGRsX2Nu dCA9IDA7CisKKyAgICAgIHN0YXR1cyA9IE50UXVlcnlPYmplY3QgKG91dHB1 dF9oYW5kbGVfbG9jYWwsIE9iamVjdEJhc2ljSW5mb3JtYXRpb24sCisJICAm b2JpLCBzaXplb2Ygb2JpLCBOVUxMKTsKKyAgICAgIGlmICghTlRfU1VDQ0VT UyAoc3RhdHVzKSkKKwlkZWJ1Z19wcmludGYgKCJOdFF1ZXJ5T2JqZWN0OiAl eSIsIHN0YXR1cyk7CisgICAgICBlbHNlCisJaGRsX2NudCA9IG9iaS5IYW5k bGVDb3VudDsKKyAgICAgIHRlcm1pb3NfcHJpbnRmKCJIYW5kbGVDb3VudDog JWQiLCBoZGxfY250KTsKKyAgICAgIGlmIChoZGxfY250ID09IDEpCisJU2V0 RXZlbnQgKGlucHV0X2F2YWlsYWJsZV9ldmVudCk7CisgICAgICBDbG9zZUhh bmRsZSAob3V0cHV0X2hhbmRsZV9sb2NhbCk7CisgICAgfQogCiAgIGlmICgh Rm9yY2VDbG9zZUhhbmRsZSAoZnJvbV9tYXN0ZXIpKQogICAgIHRlcm1pb3Nf cHJpbnRmICgiZXJyb3IgY2xvc2luZyBmcm9tX21hc3RlciAlcCwgJUUiLCBm cm9tX21hc3Rlcik7Cg== --Multipart=_Thu__21_May_2015_20_53_57_+0900_.mEEGPyir8ZUOEOQ Content-Type: text/plain; charset=us-ascii Content-length: 218 -- 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 --Multipart=_Thu__21_May_2015_20_53_57_+0900_.mEEGPyir8ZUOEOQ--