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: Reproducible hang with unusual border conditions




Christopher Faylor wrote:
On Wed, Apr 26, 2006 at 05:39:37PM -0400, Volker Quetschke wrote:

On my search for the infamous cygwin hang while building OOo,
see <http://sources.redhat.com/ml/cygwin/2005-12/msg00279.html>,
and <http://wiki.services.openoffice.org/wiki/Windows#Miscellaneous_info>
that I couldn't reproduce myself (WJFFM) I finally managed to get a
reproducible hang on my systems that might be related.

As said, the original OOo build works just fine here, but there is
an alternative possibility to build OOo with 4nt instead of tcsh, and

from that I managed to reproduce a small testcase. Unfortunately

it requires 4nt :( and some strict/strange border conditions:

1. It only hangs from rxvt. (Invoked with shortlink from desktop to:
C:\cygwin\bin\rxvt.exe -cr green -sl 1000 -tn linux -e /usr/bin/bash --login -i)
I guess the actual switches don't matter. Startting the following
example from the bash that is started from the cygwin icon (cygwin.bat)
didn't show the problem so far.


2. Only hangs for "real" background processes started with setsid. From rxvt
like this:
$ setsid ./hang.sh >& hang.log

You need to unpack the following testcase,
<http://www.openoffice.org/nonav/issues/showattachment.cgi/36076/w32-4nt-hang.zip>
it contains the following files:
-rwxr-xr-x 1 quetschke None 147456 Apr  3 20:19 dmake.exe
-rwxr-xr-x 1 quetschke None      3 Apr 26 10:34 hang.XXX$
-rwxr-xr-x 1 quetschke None 192635 Apr 26 16:45 hang.log
-rwxr-xr-x 1 quetschke None    285 Apr 26 13:30 hang.mk
-rwxr-xr-x 1 quetschke None    133 Apr 26 13:22 hang.sh

The dmake.exe is a native w32 version, from a m164 OO build with W32-4nt.

For me, after entering the above command and letting it run for a few minutes,
I get a 4nt process that is stuck at 99% and no new output reaches hang.log.


It definitely looks like 4nt is hanging, *BUT*
$ ps
    PID    PPID    PGID     WINPID  TTY  UID    STIME COMMAND
   3972       1    3972       3972  con 1006 16:35:12 /usr/bin/rxvt
I    3996    3972    3996       4008    0 1006 16:35:12 /usr/bin/bash
   3804       1    3804        736    ? 1006 16:49:29 /usr/bin/bash
    828    3804    3804       3760    ? 1006 16:52:26
/cygdrive/d/w1/w32-4nt-hang/dmake

if I kill the calling cygwin script, kill 3804 in this case, 4nt stops to
loop.

As you can see in hang.mk, I tried to reproduce the hang with cmd.exe, but I
cannot get to hang that either.

This is a very elusive problem :(


So, if I'm understanding what you're saying correctly, you are seeing a
hang in a non-cygwin process (4nt) which can't be duplicated in a
program with similar functionality (cmd) so therefore, your conclusion
is that there is a cygwin bug?

Please verify what the identity of the actual hung program by running
task manager.  If it really is a non-cygwin program that is having problems
then I'm not tremendously concerned.
The 99% come from the task manager, obviously it is a non-cygwin program
that hangs.

But it looks suspicious that killing the toplevel cygwin
bash script stops the looping 4nt process - Through another native
W32 proc (hang.sh -> dmake -> 4nt). And also that
$ ls /proc/*/fd
now hangs until (see original problem with OOo build)
the 4nt or the script are killed looks strange.

I'm not trying to fix third party programs here, I'm clutching
every straw to produce a reproducible hang so that this problem
can be solved for good.

Volker

--
PGP/GPG key  (ID: 0x9F8A785D)  available  from  wwwkeys.de.pgp.net
key-fingerprint 550D F17E B082 A3E9 F913  9E53 3D35 C9BA 9F8A 785D

Attachment: signature.asc
Description: OpenPGP digital signature


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