retransmission on worker->master communication failure

This commit is contained in:
Vincent Riquer 2013-03-26 17:30:23 +01:00
parent eb977b91bd
commit 87ff257cf0

29
atom
View File

@ -1237,6 +1237,11 @@ worker() {
do do
echo work echo work
read line read line
until [[ $line != AtOM:ComFail ]]
do
echo work
read line
done
if [[ $line == AtOM:Die ]] if [[ $line == AtOM:Die ]]
then then
break break
@ -1325,8 +1330,20 @@ worker() {
if "${cmd_arg[@]}" >/dev/null 2>>"$tempdir/errors.log" if "${cmd_arg[@]}" >/dev/null 2>>"$tempdir/errors.log"
then then
echo "finished $taskid|$sourcefileid|$destfileid|$destfilename" echo "finished $taskid|$sourcefileid|$destfileid|$destfilename"
read line
until [[ $line == AtOM:OK ]]
do
echo "finished $taskid|$sourcefileid|$destfileid|$destfilename"
read line
done
else else
echo "failed $taskid" echo "failed $taskid"
read line
until [[ $line == AtOM:OK ]]
do
echo "failed $taskid"
read line
done
[ -n "$filename" ] \ [ -n "$filename" ] \
&& eval rm -f $filename && eval rm -f $filename
fi fi
@ -1335,6 +1352,11 @@ worker() {
then then
echo "cleanup $required" echo "cleanup $required"
read answer read answer
until [[ $answer != AtOM:ComFail ]]
do
echo "cleanup $required"
read answer
done
if (( answer == 1 )) if (( answer == 1 ))
then then
eval rm -f $cleanup eval rm -f $cleanup
@ -1453,7 +1475,8 @@ master() {
rm "$tempdir"/worker${workerid}{in,out} rm "$tempdir"/worker${workerid}{in,out}
fi fi
;; ;;
?(f)'inished') 'finished')
eval 'echo AtOM:OK >&'$((workerid+100))
(( active-- )) || true (( active-- )) || true
taskid=${workerquery%%|*} taskid=${workerquery%%|*}
rest="${workerquery#*|}|" rest="${workerquery#*|}|"
@ -1478,6 +1501,7 @@ master() {
fi fi
;; ;;
'failed') 'failed')
eval 'echo AtOM:OK >&'$((workerid+100))
(( --active )) || true (( --active )) || true
(( ++failed )) (( ++failed ))
taskid=$workerquery taskid=$workerquery
@ -1504,6 +1528,9 @@ master() {
eval echo 0 '>&'$((100+workerid)) eval echo 0 '>&'$((100+workerid))
fi fi
;; ;;
*)
eval 'echo "AtOM:ComFail" >&'$((100+workerid))
;;
esac esac
fi fi
} }