This is the mail archive of the
mailing list for the Cygwin project.
Re: cygwin-2 process handling
- From: Ken Brown <kbrown at cornell dot edu>
- To: cygwin at cygwin dot com
- Cc: Takashi Yano <takashi dot yano at nifty dot ne dot jp>
- Date: Tue, 19 May 2015 14:16:35 -0400
- Subject: Re: cygwin-2 process handling
- Authentication-results: sourceware.org; auth=none
- References: <1573487218 dot 1490468 dot 1431969356192 dot JavaMail dot yahoo at mail dot yahoo dot com> <555B6F71 dot 4040906 at cornell dot edu>
On 5/19/2015 1:14 PM, Ken Brown wrote:
On 5/18/2015 1:15 PM, Michael Mauger wrote:
Since the upgrade to cygwin-2 I've been having consistent problems
using emacs. My emacs config has not changed and the most recent
update to cygwin-2 has helped. I'm using the emacs-w32 executable and
have numerous remote cygwin ssh sessions running underneath emacs so
that I can edit remote files and run remote shell sessions within emacs.
When I then start up a Windows console executable (in my case Oracles
sqlplus.exe, but cmd.exe works too), I start getting hanging in the
cygwin ssh sessions. Filename completion (which involves emacs
interacting with a ssh session) or opening a remote file (which
involves emacs transferring the file locally via scp or inline) will
both hang. It generally requires that I send a SIGUSR2 signal to the
emacs-w32 process which emacs responds to by halting whatever is
running and returning to the top level interaction loop. When it does
so, the process appears to be waiting for input. If I then end the
console session, the interaction returns to normal. Trying to start a
second Windows console session will also hang.
In Emacs *scratch* buffer
(shell "*One*") C-j
(shell "*Two*") C-j
(let ((explicit-shell-file-name "/c/Windows/System32/cmd.exe"))
(shell "*Three*")) C-j
#<buffer *Three*> (let ((explicit-shell-file-name
"/c/Windows/System32/cmd.exe")) (shell "*Four*")) C-j
*** HANGS ***
I can reproduce this, and even more simply. If I start a single shell
running cmd.exe, then emacs hangs on the next attempt to call a
subprocess. For example, I first evaluate the following in the
(let ((explicit-shell-file-name "/c/Windows/System32/cmd.exe")) (shell))
I then try to list a directory with 'C-x d', and emacs hangs.
The problem appears in the 2015-03-17 cygwin snapshot but not in the
2015-03-11 snapshot. I'm trying to do a git bisection to narrow it down
further, but so far I haven't succeeded because I get errors when I try
to build the git checkouts from around that time. I'll keep trying.
OK, I got the bisection to work:
32fd5b0fe1548cff79b9868e4e259853c59a44db is the first bad commit
Author: Takashi Yano <xxx>
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
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.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple