Call for testing Cygwin snapshot

Jerry D. Hedden jerry@hedden.us
Tue Apr 25 18:01:00 GMT 2006


Jerry D. Hedden wrote:
>I have a cron job (a bash script) that runs every 6 minutes, polling
>and downloading info off the web.
>>The problem is the script hangs at various places and the stuck
>processes keep building up.
>>Further, I have to kill these processes using the task monitor: kill
>reports 'No such process'.

Christopher Faylor replied:
>As mentioned above, a test case showing the problem sure would be
>nifty.

Jerry D. Hedden responded:
>I agree and would have provided one if I could. However, I have no
>idea what is causing this, nor how to write a test case for it.
>>As I said, it's a cron job running a bash script - nothing fancy. The
>hang does not happen on every invokation of the script, but it does
>occur frequently. Where in the script it gets stuck seems to be
>random: wget, mkdir, mv, date, diff, etc..

Christopher Faylor asked:
> Can you at least post the script?

Certainly. Attached.
Christopher Faylor asked:
> Also, knowing the first snapshot which shows the problem would be helpful.

Jerry D. Hedden responded:
>As I said, these sort of problems started after the 2006年03月09日 snapshot.
> I double checked, and the problem does occur with the 2006年03月13日
>snapshot.

Christopher Faylor replied:
>What you said was "However, I have experienced problems with most
>snapshots after it", where "it" was the 2006年03月09日 snapshot. The use of
>the word "most" rather than "all" there implies, to me at least, that
>there were snapshots that worked. You seem to now be saying that this
>is not the case, which implies that something stopped working for you
>on 2006年03月13日 and that no snapshot on or after that point worked.

Let me clarify. Starting with the 2006年03月13日 snapshot, every snapshot I
tried caused problems. Although I did not try every one (sorry, but I
did not keep track of which ones), I know I tried over half of the 18
or so snapshots in question. Since none that I tried worked, I have
been held at the 2006年03月09日 snapshot.
The basic problem noted in each case had to do with forks - either a
cron script hangs (as reported), a build script fails because of fork
failures ('resource not available' type messages), or couldn't bring up
shell windows (as reported in
http://cygwin.com/ml/cygwin/2006-03/msg00487.html).
All of this started with Christopher Faylor's changes related to 'fork'
that started with the 2006年03月13日 snapshot. As I did report one problem
related to this matter on the 3/15 but go no response, I figured the
work was ongoing. I just kept trying subsequent snapshots hoping the
problem would be cleared up eventually, but it hasn't.
-------------- next part --------------
#!/usr/bin/bash
#####
#
# weather - Downloads weather maps
#
# Usage: weather [ pause | resume ] [ show | unshow ] [ clean ]
#
# $RCSfile: weather,v $
# $Revision: 1.15 $
# $Date: 2006年03月20日 15:01:54 $
#
#####
function get_it
{
 file=1ドル
 url=2ドル
 /usr/bin/wget -q --no-cache -T 15 -t 2 -O $file $url >>weather.log 2>&1
 if [[ ! -s $file ]]; then
 rm -f $file
 echo "Failure getting $file: $url" >>weather.log
 date >>weather.log
 exit 1
 fi
}
if [[ $LOGNAME == 'Jerry' ]]; then
 cd /y
else
 cd /x
fi
if [[ ! -d Weather ]]; then
 mkdir Weather
fi
cd Weather
# Pause in weather processing
if [[ -n 1ドル ]]; then
 if [[ 1ドル == 'pause' ]]; then
 touch PAUSE
 echo 'Weather paused'
 exit 0
 elif [[ 1ドル == 'resume' ]]; then
 rm -f PAUSE
 echo 'Weather resumed'
 elif [[ 1ドル == 'show' ]]; then
 weatherx
 exit 0
 elif [[ 1ドル == 'unshow' ]]; then
 kill `cat /var/run/weatherx.pid`
 rm -f /var/run/weatherx.pid
 exit 0
 elif [[ 1ドル == 'clean' ]]; then
 echo 'Cleaning...'
 today=`date +%m%d`
 for dir in map rsm rlg cur sat vis; do
 keep="$dir/$today"
 for x in $dir/????; do
 if [[ $x != $keep ]]; then
 rm -fr $x
 fi
 done
 done
 echo 'Done'
 exit 0
 else
 echo "Unknown arg: 1ドル"
 exit 1
 fi
fi
if [[ -f PAUSE ]]; then
 exit 0 # Paused
fi
# Current weather
get_it map.jpg http://image.weather.com/images/maps/current/curwx_720x486.jpg
get_it rsm.jpg http://image.weather.com/web/radar/us_phl_ultraradar_large_usen.jpg
get_it rlg.jpg http://image.weather.com/web/radar/us_har_closeradar_large_usen.jpg
get_it cur.jpg http://image.weather.com/images/maps/current/cur_ec_720x486.jpg
get_it sat.jpg http://image.weather.com/images/sat/regions/east_cen_sat_720x486.jpg
get_it vis.jpg http://image.weather.com/images/sat/regions/ec_vis_sat_720x486.jpg
today=`date +%m%d`
now=`date +%H%M`
for x in map rsm rlg cur sat vis; do
 if [[ ! -f $x.jpg ]]; then
 continue
 fi
 if [[ ! -s $x.jpg ]]; then
 rm -f $x.jpg
 continue
 fi
 if [[ ! -d $x/$today ]]; then
 mkdir -p $x/$today
 fi
 if [[ -f $x/.last ]]; then
 if [[ -f `cat $x/.last` ]]; then
 if diff -q `cat $x/.last` $x.jpg >/dev/null; then
 rm -f $x.jpg
 fi
 fi
 fi
 if [[ -f $x.jpg ]]; then
 echo $x/$today/$now.jpg >$x/.last
 mv $x.jpg $x/$today/$now.jpg
 fi
done
# Forecasts
if [[ -d fore ]]; then
 rm -f fore/*.jpg
else
 mkdir -p fore
fi
day=`date +%w`
if [[ $day -ne 0 ]]; then
 day=$(( 7 - $day ))
fi
get_it fore/${day}_sun.jpg http://image.weather.com/images/maps/forecast/trend7_720x486.jpg
day=$(( $day + 1 ))
if [[ $day -eq 7 ]]; then
 day=0
fi
get_it fore/${day}_mon.jpg http://image.weather.com/images/maps/forecast/fore1_720x486.jpg
day=$(( $day + 1 ))
if [[ $day -eq 7 ]]; then
 day=0
fi
get_it fore/${day}_tue.jpg http://image.weather.com/images/maps/forecast/fore2_720x486.jpg
day=$(( $day + 1 ))
if [[ $day -eq 7 ]]; then
 day=0
fi
get_it fore/${day}_wed.jpg http://image.weather.com/images/maps/forecast/fore3_720x486.jpg
day=$(( $day + 1 ))
if [[ $day -eq 7 ]]; then
 day=0
fi
get_it fore/${day}_thu.jpg http://image.weather.com/images/maps/forecast/fore4_720x486.jpg
day=$(( $day + 1 ))
if [[ $day -eq 7 ]]; then
 day=0
fi
get_it fore/${day}_fri.jpg http://image.weather.com/images/maps/forecast/fore5_720x486.jpg
day=$(( $day + 1 ))
if [[ $day -eq 7 ]]; then
 day=0
fi
get_it fore/${day}_sat.jpg http://image.weather.com/images/maps/forecast/trend6_720x486.jpg
get_it fore/_0_cur.jpg http://image.weather.com/images/maps/current/curwx_720x486.jpg
if [[ $now < '0400' || $now > '1900' ]]; then
 get_it fore/_1_am.jpg http://image.weather.com/images/maps/forecast/amfcst_720x486.jpg
 get_it fore/_2_mid.jpg http://image.weather.com/images/maps/forecast/midfcst_720x486.jpg
 get_it fore/_3_pm.jpg http://image.weather.com/images/maps/forecast/pmfcst_720x486.jpg
elif [[ $now < '1300' ]]; then
 get_it fore/_3_am.jpg http://image.weather.com/images/maps/forecast/amfcst_720x486.jpg
 get_it fore/_1_mid.jpg http://image.weather.com/images/maps/forecast/midfcst_720x486.jpg
 get_it fore/_2_pm.jpg http://image.weather.com/images/maps/forecast/pmfcst_720x486.jpg
else
 get_it fore/_2_am.jpg http://image.weather.com/images/maps/forecast/amfcst_720x486.jpg
 get_it fore/_3_mid.jpg http://image.weather.com/images/maps/forecast/midfcst_720x486.jpg
 get_it fore/_1_pm.jpg http://image.weather.com/images/maps/forecast/pmfcst_720x486.jpg
fi
if [[ -s weather.log ]]; then
 date >>weather.log
else
 rm weather.log
fi
# EOF
-------------- next part --------------
--
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/


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /