This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygwin-2 process handling


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]