bug report: cygwin lib can't recover after out of memory

2002-02-06 Thread Frank Seide

Hi,

I observed cygwin getting into a bad state after a
memory-allocation failure, from which I only can
recover by terminating all cygwin processes to unload
the cygwin1.dll.

I run a perl script that gradually allocates memory
until the memory limit of 256 MB (default) is reached.
Perl, as expected, terminates with Out of Memory!

However, _after_ the script terminates,
subsequently executed cygwin programs have a problem:

 - a simple ls gives
   Segmentation fault (core dumped)

% ls -l
... (works correctly)
% ./test.pl -- script to reach mem limit
Out of memory!
% ls -l
Segmentation fault (core dumped)
%

 - trying to open another rxvt window (while the shell in which
  the script terminated is still open) shows the msg
handle_exceptions: Exception: STATUS_ACCESS_VIOLATION

To recover, I need to exit the shell in which the script
terminated first, such that all cygwin processes are gone
(and cygwin1.dll gets unloaded, I guess).

Thanks,

Frank

Version info:

 - This is perl, version 5.005_03 built for cygwin32
 - WinNT Ver 5.0 build 2195 Service Pack 2
 - Cygwin DLL version info:
dll major: 1003
dll minor: 2
dll epoch: 19
dll bad signal mask: 19005
dll old termios: 5
dll malloc env: 28
api major: 0
api minor: 39
shared data: 3
dll identifier: cygwin1
mount registry: 2
cygnus registry name: Cygnus Solutions
cygwin registry name: Cygwin
program options name: Program Options
cygwin mount registry name: mounts v2
cygdrive flags: cygdrive flags
cygdrive prefix: cygdrive prefix
cygdrive default prefix: 
build date: Sun May 20 23:28:17 EDT 2001
shared id: cygwin1S3


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




lock down cygwin1.dl in memory to avoid paging in a network installation?

2002-02-06 Thread Frank Seide

Hi,

does anyone have an idea how to force cygwin1.dll
to be loaded entirely and then locked down in physical
memory so that NT won't page it out?

In our compute server farm, to reduce maintainance overhead,
I installed Cygwin UNIX-like in the network,
i.e. the cygwin root (/) and everything below like
/bin, /etc etc is on an NT network drive.
With this I can install Cygwin on any computer by using a
single Cygwin-mount command, and all installations are
guaranteed to be identical, works well.

However, once the NT file server crashes or falls
into meditation or the network hangs for ~1 minute,
cygwin does not function anymore reliably.
Programs (running or newly started) sooner or later
crash with seg fault or STATUS_ACCESS_VIOLATION.
It seems the file handle to cygwin1.dll becomes invalid
due to a timeout, and subsequent requests for
paging in dll code fail.

The only way to recover is to terminate _all_ cygwin
processes which unloads cygwin1.dll. Our jobs often
run many days, and there are multiple cygwin jobs
on each multi-CPU server.

Anyone any idea?

Thanks!

Frank


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