Please try a snapshot - final push for 1.5.19

Igor Pechtchanski pechtcha@cs.nyu.edu
Thu Dec 22 21:34:00 GMT 2005


On Wed, 21 Dec 2005, Igor Pechtchanski wrote:

> > >On Wed, Dec 21, 2005 at 12:17:09PM -0500, Igor Pechtchanski wrote:
> > >> I've been having problems with "fork: resource unavailable" on my
> > >> machine with the 10/03 snapshot.  The problem is only reproducible
> > >> after Cygwin has been running for a while, under a heavy load.
> > >> I'll try to see if it appears under the 12/20 snapshot, but there's
> > >> no guarantee I'll be able to reproduce it in time for the release.
> > >> I know this isn't much of a bug report, but this is just a
> > >> heads-up.
>
> Okay, I was wrong.  I did reproduce the problem with essentially the
> same strace under the 12/20 snapshot (sorry, still not the latest, but
> I'm building a debug version of cygwin1.dll from cvs HEAD now).  More
> details when I have them.
> 	Igor

I can't reproduce the original problem at all with cvs HEAD, which is
likely due to CGF's recent changes to pinfo.cc (for which he has my
heartfelt thanks!).

Here's another problem I'm having (both cvs HEAD self-built DLL and the
12/20 snapshot): '/bin/kill -9 -PGID' sometimes leaves stale unkillable
processes around.  Attempting to kill the processes with anything other
than '/bin/kill -f' results in the following message:

kill: 6364: Resource temporarily unavailable

If left alone, after a while the processes print to the console:

C:\cygwin\bin\bash.exe (6364): *** WFSO timed out after longjmp

At other times, the processes are not in the Cygwin process table anymore,
but do show up in 'ps -W' output as

     9844       0       0       9844    ?    0 11:59:58 *** unknown ***

The attached script reproduces this problem for me in one of about 3-4
tries, on a single-processor WinXP Pro SP1.  It is distilled from a much
larger script I have at work.

FWICS, this is *not* a regression from 1.5.18 or the previous snapshots,
but I hope I can help get this fixed.  I can post the cygcheck output and
straces for the attached script if they are likely to be useful...
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte."
"But no -- you are no fool; you call yourself a fool, there's proof enough in
that!" -- Rostand, "Cyrano de Bergerac"
-------------- next part --------------
#!/bin/bash

runOne() {
# Create a main process group running "echo -n ''",
# and a "deadman timer" process group that waits 60 seconds and
# then kills the main process group.
# If the main process group ends before the timer process
# group, the timer process group is killed.

  # create a new process group so that the main job
  # and all of the its descendant processes can be terminated
  # as a whole
  perl -e 'setpgrp(0,0);exec(@ARGV)' bash -c "echo -n ''" &    # spawn main job
  local pidMain=$!   # pid of main job
  perl -e 'setpgrp(0,0);exec(@ARGV)' bash -c "sleep 60; /usr/bin/kill -9 -$pidMain" & # spawn timer job
  local pidTimer=$!  # pid of timer job
  wait $pidMain      # wait until main job finishes
                     # either normally or through the timer
  /usr/bin/kill -9 -$pidTimer # kill the timer job
}

for i in 1 2 3 4 5 6 7 8 9 10; do
  runOne
  runOne
  runOne
  runOne
  runOne
done
exit 0
-------------- next part --------------
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


More information about the Cygwin mailing list