delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/12/07/08:08:34

X-Spam-Check-By: sourceware.org
From: Dave Silvia <dsilvia AT mchsi DOT com>
To: cygwin general mailing list <cygwin AT cygwin DOT com>,
Dave Silvia <dsilvia AT mchsi DOT com>
X-Mailer: Barca Pro 2.1 (3650) - Licensed Version
Date: Thu, 7 Dec 2006 07:08:20 -0600
Message-ID: <20061277820.556531@privateconcern>
Subject: 1.5.21-1 Release: Windows memory resources do not recover.
Mime-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id kB7D8Tgk023429

Hi!

On further investigation an looking more closely at the areas in the configure
script where they errors and/or reboot was occurring, and with some helpful
pointers from responders on this list, I've constructed the following bash shell
script (exhaustMem.bsh):

----------
#!/bin/sh

if [ "$1" == "--help" -o "$1" == "-h" -o "$1" == "/?" ]
then
	echo "Usage: "`basename "$0"`" [mainIter [execIter [varIter]]]"
	echo "Where: mainIter  outermost loop iterations [default: 50]"
	echo "       execIter  exec file descriptors iterations [default: \$mainIter]"
	echo "       varIter   variable assignment via back tick exec [default:
\$mainIter]"
	echo
	echo "Description:"
	echo "       Execute while monitoring the Task Manager in Windows selecting
the"
	echo "       'Performance' tab and watching the value in the 'Physical Memory
(K)'"
	echo "       table element 'Available'.  Value will steadily decrease and
never"
	echo "       fully recover after all execution has finished. At least, not in
the"
	echo "       short term.  And it can lead to depletion to the point where
reboot"
	echo "       is necessary or precipitated."
	echo
	echo "       Command line parameters can be tweaked to examine which seem to
affect"
	echo "       the severity of the condition the most."
	exit 0
fi

mainIter=$1
: ${mainIter:=10}
mainMax=$mainIter
execIter=$2
: ${execIter:=$mainIter}
execMax=$execIter
varIter=$3
: ${varIter:=$mainIter}
varMax=$varIter

while [ ${mainIter} -ne 0 ]
do

mainIter=`expr ${mainIter} - 1`

echo "Main Output to File Iteration:              " `expr ${mainMax} -
${mainIter}`

tmpIter=$execIter
while [ ${tmpIter} -ne 0 ]
do
	tmpIter=`expr ${tmpIter} - 1`
	echo "Exec to Open File Descriptor Iteration:     " `expr ${execMax} -
${tmpIter}`
	exec 5>data5.txt
	exec 6>data6.txt
	exec 7>data7.txt
done

tmpIter=$varIter
while [ ${tmpIter} -ne 0 ]
do
	tmpIter=`expr ${tmpIter} - 1`
	echo "Variable Backtick Exec Assignment Iteration:" `expr ${varMax} -
${tmpIter}`
	thePath=`echo $PATH`
	theDir=`pwd`
	theDate=`date`
	theMachine=`uname -m`
	theKernel=`uname -s`
	theKernRlse=`uname -r`
	theOpSys=`uname -o`
done

echo Current Path: >&5
echo $thePath >&5
echo >&5

echo Current Directory: ${theDir} >&5
echo >&5

echo Date and Time: ${theDate} >&5
echo >&5

echo Machine Type: ${theMachine} >&5
echo >&5

echo Kernel Name: ${theKernel} >&5
echo >&5

echo Kernel Release: ${theKernRlse} >&5
echo >&5

echo Operating System: ${theOpSys} >&5
echo >&5

echo Current Path: >&6
echo $thePath >&6
echo >&6

echo Current Directory: ${theDir} >&6
echo >&6

echo Date and Time: ${theDate} >&6
echo >&6

echo Machine Type: ${theMachine} >&6
echo >&6

echo Kernel Name: ${theKernel} >&6
echo >&6

echo Kernel Release: ${theKernRlse} >&6
echo >&6

echo Operating System: ${theOpSys} >&6
echo >&6

echo Current Path: >&7
echo $thePath >&7
echo >&7

echo Current Directory: ${theDir} >&7
echo >&7

echo Date and Time: ${theDate} >&7
echo >&7

echo Machine Type: ${theMachine} >&7
echo >&7

echo Kernel Name: ${theKernel} >&7
echo >&7

echo Kernel Release: ${theKernRlse} >&7
echo >&7

echo Operating System: ${theOpSys} >&7
echo >&7

done

exit 0

----------

It pretty well illustrates the problem. It also points to it's being a problem
between Windows (mine is XP Pro SP2) and bash.exe. Possibly the particular build
Cygwin uses (?).

Anyway, it does appear to be an exec error from one source or another (backtick
execution being another form of exec). The severity also seems related to what
is being exec'd more so than how long the exec takes or how large.

If you open Windows Task Manager and monitor the Physical Memory, it's pretty
easy to see.

Use exhaustMem.bsh --help to see details.


thx,
Dave S.

wxMS_developers · Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/

wxWidgets Code Exchange
http://wxcodex.net/


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019