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]

Reproducible hang with unusual border conditions


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 :(

Oh, yes, currently im using:
$ uname -a
CYGWIN_NT-5.1 Macros 1.5.20s(0.155/4/2) 20060424 12:43:32 i686 Cygwin

cygcheck -svr ->
<http://www.openoffice.org/nonav/issues/showattachment.cgi/36077/cygcheck.log>

I didn't try this testcase with a lot of different cygwin versions yet,
but it fails also with: cygwin1-20060413.dll and the "original" (I mean
the OOo build with 4nt here, not the tcsh build) also hangs with 1.5.19
and all snapshots in between that I tested. (I didn't test all though!)

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]