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]

Cygwin 1.3.3-2 hangs on semaphore somewhere in NTDLL.DLL


   $ uname -a
   CYGWIN_NT-5.0 MACH 1.3.3(0.46/3/2) 2001-09-12 23:54 i686 unknown

Right then. On my Win2000 (service pack 2) machine I've got two CPUs (733
Coppermines). Thus I often do "make -j 3" for fast builds. Unfortunately,
make often hangs on 1.3.3-2.  This appears to be a bug of 1.3.3-2 (i.e.,
it has always worked/continues to work with previous cygwin dll releases).
The stack trace for a hung make is:

   NTDLL! NtWaitForMultipleObjects@20 + 11 bytes
   KERNEL32! WaitForMultipleObjectsEx@20 + 158 bytes
   KERNEL32! WaitForMultipleObjects@16 + 23 bytes
   CYGWIN1! 61053d01()
   CYGWIN1! 61004ada()
   KERNEL32! BaseThreadStart@8 + 82 bytes

[I don't know what the CYGWIN1 addresses refer to. Both nm and dumpbin seem
to choke on the cygwin1.dll file (dumpbin even gets an "internal error").
(Why is this file so non-standard?) Microsoft's dependency viewer can see
the exports, but those addresses do not appear.]

Here's a Makefile to show this problem:

   100targets:= \
   test00 test01 test02 test03 test04 test05 test06 test07 test08 test09 \
   test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 \
   test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 \
   test30 test31 test32 test33 test34 test35 test36 test37 test38 test39 \
   test40 test41 test42 test43 test44 test45 test46 test47 test48 test49 \
   test50 test51 test52 test53 test54 test55 test56 test57 test58 test59 \
   test60 test61 test62 test63 test64 test65 test66 test67 test68 test69 \
   test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \
   test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \
   test90 test91 test92 test93 test94 test95 test96 test97 test98 test99

   all: ${100targets}
   	echo Done

   .PHONY: ${100targets}
   ${100targets}:
   	sleep 1; : $@

Usually, the following (dos) command line will hang:

   c:> make -j 25 -f Makefile.partest
   sleep 1; : test00
   sleep 1; : test01
   sleep 1; : test02
   .
   .
   .
   sleep 1; : test33

Once hung, from a bash session I try to kill the hung make:

   bash-2.05$ ps
         PID    PPID    PGID     WINPID  TTY  UID    STIME COMMAND
        1164       1    1164       1164  con  500 17:06:34 /usr/bin/bash
        1284       1    1284       1284  con  500 17:10:04 /usr/bin/telnet
        1268    1164    1268       1120  con  500 17:17:56 /usr/bin/bash
        7984       1    7984       7984  con  500 18:42:56 /usr/bin/make
        1480    1268    1480       9000  con  500 18:44:00 /usr/bin/bash
        7920    1480    7920       8000  con  500 18:44:05 /usr/bin/bash
        8364    7920    8364       7116  con  500 18:44:08 /usr/bin/ps
   bash-2.05$ kill 7984
   bash-2.05$

Mostly this achieves nothing. Occasionally the hung make prints a message
something like "0 [unknown (0x1EB4)] make 1284 sig_send: wait for
sig_complete event failed, signal 2, rc 258, Win32 error 0"

[Stop press: it also hangs on a single CPU Pentium 4 win2k (sp2) machine
we've got lying around (it seems fine with "-j 25", but hardly ever
completes for "-j 30").]

I'm using the previous cygwin for now (1.3.2-1) which exhibits none of
this problem.

-- 
Robert Bogomip /// mailto:bob.bogo :at: milohedge.com



--
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]