sleep version 1.16 stackdump on Win2000 (cygwin 1001/6 ?)
Townsend, Stig
stig.townsend@fox-europe.com
Tue May 8 03:20:00 GMT 2001
I run a script which loops with a 10-second sleep in it. It runs unattended
overnight. A couple of times I have come in to find a sleep.exe.stackdump,
although the script appears to have kept running OK well beyond the dump
time.
I cannot find any way to predict the occurrence or to provoke it.
I attack the script, the latest stackdump, and a cygcheck.out. Can anyone
explain why it dumps and whether I should worry?
Stig Townsend,
Fox IT
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cygcheck.out
Type: text/x-algol68
Size: 9802 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20010508/8050f74b/attachment.bin>
-------------- next part --------------
# The file schedule.txt ($SCHEDULE) holds a set of lines of the form:
# date time action
# where
# date is of the form yymmdd
# time is of the form hhmmss
# action is a command of the form cmd [param]...
#
# The script periodically awakes and scans the schedule file. An action
# whose scheduled time has been reached or exceeded is invoked. An
# action which has not yet reached activation time is left unchanged
# in the schedule.
#
# An action may return information specifying a next invocation. If
# that information specifies a time that has been reached or exceeded,
# the process repeats. If the action does not return a response, it
# is removed from the schedule file and so is not invoked again.
#
# Each action is invoked with THREE EXTRA PARAMETERS:
# cmd file date time [param]...
# where
# cmd is taken from the schedule file
# file is the name of a file (schedule.rslt - $COMMFILE)
# into which to write a result
# date is the SCHEDULED date of this invocation
# time is the SCHEDULED time of this invocation
# param... is taken from the schedule file
#
# The format of the result written to $COMMFILE is a line
# to go into a schedule file.
#
# The schedule is maintained by writing lines for to-be-scheduled
# actions to a temporary file (schedule.tmp - $TEMPSCHED). At the end
# of the scan, this file replaces the main schedule file. Thus a
# schedule is never partially updated.
#
# To stop the scheduler, create a file schedule.stop ($STOPPER).
# If the scheduler sees this file on awaking, it deletes the file
# and stops.
# - - - - - - - - - - - - - - - - - - - - - - -
SCHEDBASE="D:/Scheduler/schedule"
SCHEDULE="$SCHEDBASE.txt"
TEMPSCHED="$SCHEDBASE.tmp"
STOPPER="$SCHEDBASE.stop"
COMMFILE="$SCHEDBASE.rslt"
# - - - - - - - - - - - - - - - - - - - - - - -
while [ -f $SCHEDULE ] && [ ! -f $STOPPER ]
do
DATENOW=`date '+%y%m%d %H%M%S'`
TIMENOW=`echo $DATENOW | awk '{print \$2}'`
DATENOW=`echo $DATENOW | awk '{print \$1}'`
cat $SCHEDULE | sort | while read LINE
do
DID_OWT=""
while [ -n "$LINE" ]
do
DOATDATE=`echo $LINE | awk '{print \$1}'`
DOATTIME=`echo $LINE | awk '{print \$2}'`
ACTION=`echo $LINE | awk '{print \$3}'`
PARAMS=`echo $LINE | cut -d ' ' -f 4-`
# if [ $DATENOW -ge $DOATDATE ] && [ $TIMENOW -ge $DOATTIME ]
if [ ! $DOATDATE$DOATTIME \> $DATENOW$TIMENOW ]
then
DID_OWT="Y"
echo C: Beyond $DOATDATE at $DOATTIME so $ACTION
LINE=""
echo > $COMMFILE
eval "$ACTION $COMMFILE $DOATDATE $DOATTIME $PARAMS"
LINE=`cat $COMMFILE`
# An to-run-now LINE will be logged above as it is executed;
# a future one will be logged below.
else
break
fi
done
if [ -z "$LINE" ]
then
echo W: No response from action
else
if [ -n "$DID_OWT" ]
then
echo C: Rewriting: $LINE
fi
echo $LINE >> $TEMPSCHED
fi
done
mv $TEMPSCHED $SCHEDULE
sleep 10
done
rm $STOPPER 2>/dev/null
-------------- next part --------------
Exception: STATUS_ACCESS_VIOLATION at eip=00000000
eax=00000000 ebx=00000006 ecx=6108367C edx=610832A4 esi=6108C15C edi=6108C164
ebp=0240FA04 esp=0240FEA0 program=C:\cygwin\bin\sleep.exe
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
Stack trace:
Frame Function Args
End of stack trace
More information about the Cygwin
mailing list