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: (call-process ...) hangs in emacs


On Aug  3 21:02, Ken Brown wrote:
> On 8/1/2014 9:32 AM, Corinna Vinschen wrote:
> >On Aug  1 14:17, Peter Hull wrote:
> >>On Fri, Aug 1, 2014 at 1:50 PM, Angelo Graziosi
> >><angelo.graziosi@alice.it> wrote:
> >>>Since I upgraded to Cygwin-1.7.31*, I see similar issue in building Emacs
> >>>trunk (--with-w32 build)... The build always hangs in compiling some .el
> >>>file. CTRL-C does not work and I have to search the running processes with
> >>>"ps" and kill them with 'kill -9'. Downgrading to 1.7.30, things work
> >>>better. Now I am using 1.7.30...
> >>By better, do you mean 'perfectly'? It seems like it might be a little
> >>bit intermittent, from the reports I have seen.
> >>
> >>It's easy enough to do a cvs rdiff between the releases if 1.7.30 is
> >>known to be good - I am happy to help but I am unfamiliar with the
> >>code so I don't know where to start looking...
> >
> >It could be a problem with the new default pthread mutexes being
> >NORMAL, rather then ERRORCHECK mutexes.
> 
> That does seem to be the problem, since I can reproduce the bug starting
> with the 2014-07-14 snapshot.  More precisely, I can reproduce it using
> emacs-nox (which is what the OP was using according to his cygcheck output)
> but not using emacs-X11 or emacs-w32.
> 
> I tried running emacs under gdb with a breakpoint at call_process, but all I
> could see from that is that emacs tries to fork a subprocess, but the call
> to fork() never returns.  I also tried running it under strace, but again
> all I can see is that fork() is called and then everything seems to be at a
> standstill.
> 
> Corinna, if you want to take a look, here's the precise recipe:
> 
> 1. emacs-nox -Q [This should start emacs and put you in the *scratch*
> buffer.]
> 
> 2. Enter the following text into the buffer:
> 
>   (call-process "pwd" nil t)
> 
> 3. Position the cursor at the end of the line and type Ctrl-j.
> 
> What should happen, and what does happen prior to the 2014-07-14 snapshot,
> is that the current directory is displayed, followed by the exit code of 0.
> What happens instead is that emacs appears to hang.

How does emacs start a process?  Does it create a thread and then
forks and execs from the thread?  Does it use its own pthread_mutex
to control the job?  Is there a chance to create an STC of this
process?


Thanks,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpN84dTMkMtq.pgp
Description: PGP signature


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