This is the mail archive of the cygwin@cygwin.com 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]

Not just X (Was: Cygwin Emacs-X uses 99% of cpu)


I also observe emacs spinning.  I see it with both emacs and
emacs-nox.  I also see it on an old cygwin non-X build of xemacs-21.5.
So it's not strictly related to X.  (Except that it is very easily
triggered by emacs + X.)

I observe it in cygwin-1.3.15-1 and 1.3.15-2.  It all goes away if I
revert to cygwin-1.14-1.  This is WinNT 4.0.

With emacs-nox, I can trigger it by quickly and repeatedly calling a
child process (stunnel, from VM, to get mail via SSL).  It's the only
way I can trip up emacs-nox.  In "normal" usage (get mail
occasionally, not quickly & repeatedly), it's quite difficult to
reproduce.  (Happens only very rarely.)

With emacs-nox, on WinNT 4.0, cygwin-1.3.15-2, here is the bit that
repeats indefinitely:

  222 553656862 [sig] emacs-nox 380 wait_sig: looping
  222 553657084 [sig] emacs-nox 380 wait_sig: awake
  220 553657304 [sig] emacs-nox 380 wait_sig: processing signal 20
  219 553657523 [sig] emacs-nox 380 wait_sig: Got signal 20
  223 553657746 [sig] emacs-nox 380 sig_handle: signal 20
  219 553657965 [sig] emacs-nox 380 sig_handle: signal 20, about to call 0x200DFBFC
  222 553658187 [sig] emacs-nox 380 setup_handler: suspending mainthread
  285 553658472 [sig] emacs-nox 380 interruptible: pc 0x610BD706, h 0x61000000, interruptible 1, testvalid 1
  227 553658699 [sig] emacs-nox 380 interruptible: pc 0x610BD706, h 0x61000000, interruptible 0, testvalid 0
  238 553658937 [sig] emacs-nox 380 setup_handler: couldn't send signal 20
  223 553659160 [sig] emacs-nox 380 setup_handler: ResumeThread returned 1
  221 553659381 [sig] emacs-nox 380 setup_handler: returning 0
  216 553659597 [sig] emacs-nox 380 sig_handle: returning 0
  243 553659840 [sig] emacs-nox 380 proc_subproc: args: 3, 0
  220 553660060 [sig] emacs-nox 380 proc_subproc: looking for processes to reap
  218 553660278 [sig] emacs-nox 380 proc_subproc: finished processing terminated/stopped child
  235 553660513 [sig] emacs-nox 380 proc_subproc: returning 1

Notice in this case it's signal 20 (SIGCHLD).

When I repeat the exercise using emacs and X, it's signal 14
(SIGALRM), like others have reported.  It spins before a window is
even drawn.

  228 107117477 [sig] emacs 402 wait_sig: looping
  230 107117707 [sig] emacs 402 wait_sig: awake
  220 107117927 [sig] emacs 402 wait_sig: processing signal 14
  218 107118145 [sig] emacs 402 wait_sig: Got signal 14
  215 107118360 [sig] emacs 402 sig_handle: signal 14
  217 107118577 [sig] emacs 402 sig_handle: signal 14, about to call 0x201240A4
  233 107118810 [sig] emacs 402 setup_handler: suspending mainthread
  311 107119121 [sig] emacs 402 interruptible: pc 0x77F1D642, h 0x77F00000, interruptible 1, testvalid 1
  329 107119450 [sig] emacs 402 interruptible: pc 0x77F1D642, h 0x77F00000, interruptible 0, testvalid 0
  264 107119714 [sig] emacs 402 setup_handler: couldn't send signal 14
  221 107119935 [sig] emacs 402 setup_handler: ResumeThread returned 1
  219 107120154 [sig] emacs 402 setup_handler: returning 0
  222 107120376 [sig] emacs 402 sig_handle: returning 0

Here's what it looks like with an old cygwin (non-X11) build of
xemacs-21.5.  It spins when a child terminates, such as exiting bash
in a "M-x shell" buffer.  The simple combination "M-x shell" + "exit"
has no problem, but if I do "M-x shell", then a few basic bash commands like cd's
and ls's, then exit, it spins.  Here is the repeating part:

  228 92598188 [sig] xemacs 370 wait_sig: looping
  230 92598418 [sig] xemacs 370 wait_sig: awake
  225 92598643 [sig] xemacs 370 wait_sig: processing signal 20
  231 92598874 [sig] xemacs 370 wait_sig: Got signal 20
  221 92599095 [sig] xemacs 370 sig_handle: signal 20
  224 92599319 [sig] xemacs 370 sig_handle: signal 20, about to call 0x4D7EE0
  227 92599546 [sig] xemacs 370 setup_handler: suspending mainthread
  325 92599871 [sig] xemacs 370 interruptible: pc 0x77F1D642, h 0x77F00000, interruptible 1, testvalid 1
  279 92600150 [sig] xemacs 370 interruptible: pc 0x77F1D642, h 0x77F00000, interruptible 0, testvalid 0
  257 92600407 [sig] xemacs 370 setup_handler: couldn't send signal 20
  229 92600636 [sig] xemacs 370 setup_handler: ResumeThread returned 1
  234 92600870 [sig] xemacs 370 setup_handler: returning 0
  231 92601101 [sig] xemacs 370 sig_handle: returning 0
  226 92601327 [sig] xemacs 370 proc_subproc: args: 3, 0
  224 92601551 [sig] xemacs 370 proc_subproc: looking for processes to reap
  233 92601784 [sig] xemacs 370 proc_subproc: finished processing terminated/stopped child
  228 92602012 [sig] xemacs 370 proc_subproc: returning 1

Would it help if I tried snapshots between 1.3.14 and 1.3.15 to narrow
it down?

Thanks,
David


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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