Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <3BCB2D32.8050406@milohedge.com> Date: Mon, 15 Oct 2001 19:38:42 +0100 From: Robert Bogomip User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.5) Gecko/20011011 X-Accept-Language: en-us MIME-Version: 1.0 To: cygwin Subject: Cygwin 1.3.3-2 hangs on semaphore somewhere in NTDLL.DLL Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit $ 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 AT 20 + 11 bytes KERNEL32! WaitForMultipleObjectsEx AT 20 + 158 bytes KERNEL32! WaitForMultipleObjects AT 16 + 23 bytes CYGWIN1! 61053d01() CYGWIN1! 61004ada() KERNEL32! BaseThreadStart AT 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/