Mail Archives: cygwin/2001/10/15/14:42:38
$ 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/
- Raw text -