[JIRA] (OVIRT-899) Create locking on experimental flow
Barak Korren (oVirt JIRA)
jira at ovirt-jira.atlassian.net
Fri Dec 2 07:53:03 UTC 2016
[ https://ovirt-jira.atlassian.net/browse/OVIRT-899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=23700#comment-23700 ]
Barak Korren commented on OVIRT-899:
------------------------------------
As we've talked, the code will probably work better over time if the loop is not infinite, like so:
{code}
MAX_LOCK_ATTEMPTS=120
LOCK_WAIT_INTERVAL=5
LOCK_PATH=$HOME/experimental_repo.lock
wait_for_lock() {
trap "rm -f '$LOCK_PATH'" EXIT
for ((i = 0; i < $MAX_LOCK_ATTEMPTS; i++)); do
(set -o noclobber; > $LOCK_PATH) 2> /dev/null && return
sleep $LOCK_WAIT_INTERVAL
done
echo "Timed out waiting for lock" >&2
exit 1
}
{code}
> Create locking on experimental flow
> -----------------------------------
>
> Key: OVIRT-899
> URL: https://ovirt-jira.atlassian.net/browse/OVIRT-899
> Project: oVirt - virtualization made easy
> Issue Type: Task
> Reporter: Gil Shinar
> Assignee: infra
>
> In order to make experimental flow atomic, we need to do as follows:
> in deploy.sh script and in start_testing_latest.sh we need to add a loop in the beginning of each script that does the following:
> *while 1:
> do
> is_locked=$((echo aaa > my.lock) 2> /dev/null || echo is locked)
> if [[ -z $is_locked ]]; then
> break
> else
> sleep 5
> fi
> done*
> Wrap the whole script with a trap so in the end if each script we will be able to remove my.lock no matter what happened.
--
This message was sent by Atlassian JIRA
(v1000.610.1#100023)
More information about the Infra
mailing list