Subject: 1.3.19: fork() strange memory leak under W2K
From: Victor Antonovich <[email-masked]>
To: [email-masked]
Date: Sun, 9 Feb 2003 01:17:53 +0300

Hello!

Some time ago, when I was using at home 1.3.18 version of CygWin under
Windows  2000  Workstation  +  SP3,  I  discovered  that every command
execution  lead to some memory leak. It's especially noticeably when I
try  to  run large scripts (like "configure") - the memory loading (as
viewed  in  Task  Manager)  grow  to  its physical size and next I get
message like this:

      0 [main] sh 35620 sync_with_child: child 35636(0xDC) died before initialization with status code 0x80
   6847 [main] sh 35620 sync_with_child: *** child state waiting for longjmp
./../ltconfig: fork: Resource temporarily unavailable

After this, any process can't be started without rebooting (or killing
other process).

Recently,  I  upgraded  my  system  to Windows 2000 Server + SP3 (with
total precleanup) and CygWin 1.3.19, but problem is there as before. :(

I made small test program which loops for 1000 times:
--8<----------------------------------
#!/bin/sh
ctr=1
while test `expr "$ctr"` -lt 1000; do
  ctr=`expr $ctr + 1`
#  ps > /dev/null
done
--8<----------------------------------

The result:
--8<----------------------------------
$ ./test
      0 [main] sh 1136 sync_with_child: child 35976(0x134) died before initialization with status code 0x80
   1976 [main] sh 1136 sync_with_child: *** child state waiting for longjmp
./test: fork: Resource temporarily unavailable
--8<----------------------------------

After  this,  the  memory leak average is 28 MBytes. When I
uncomment  line  "ps > /dev/null" in this example, memory leak grow to
42 MBytes. Changing "ps" command in uncommented line on any external
command not affect average memory leak. All looks like every fork()
lead to leak about 13 KBytes of physical memory.

All  utilities  don't  indicate  that memory leak exist in user space,
that I decide that lost memory must be located in kernel space.

It's very strange, but all this works nice at my work on computer with
Windows 2000 Workstation + SP3! My home computer hardware is AMD Duron
800  MHz,  Abit KT7A Motherboard, 256 MB RAM; at work Celeron 800 MHz,
Acorp  i815  Motherboard,  128  MB  RAM. The difference is also in the
filesystems: FAT32 at home and NTFS at work.

I  found  similar messages in cygwin mailing list archive, but without
any  response.  By  the  way, same problem exist in MinGW minimalistic
system  (MSYS).  Is there anybody who can say any considerations about
this problem? The "cygcheck" program out is attached to this message.

Regards,
Victor.

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