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