cygwin-2 process handling

Ken Brown kbrown@cornell.edu
Wed May 20 01:19:00 GMT 2015


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
>>    #<buffer *One*>
>>    (shell "*Two*")  C-j
>>    #<buffer *Two*>
>>
>>
>>    (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
> *scratch* buffer
>
> (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
commit 32fd5b0fe1548cff79b9868e4e259853c59a44db
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 
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.

Ken


--
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



More information about the Cygwin mailing list