diff --git a/tools/attack/adv-mixer-3/queue/17-adv-mixer-3-lease-rest.sh b/tools/attack/adv-mixer-3/queue/17-adv-mixer-3-lease-rest.sh index bb1aaadf..4f6afd62 100644 --- a/tools/attack/adv-mixer-3/queue/17-adv-mixer-3-lease-rest.sh +++ b/tools/attack/adv-mixer-3/queue/17-adv-mixer-3-lease-rest.sh @@ -6,8 +6,11 @@ set -uo pipefail X=/srv/builds/_adv-mixer-3/bin/adv-mixer-3; X2=$X-v2; L=/srv/builds/_adv-mixer-3/logs; C=/srv/builds/_adv-mixer-3/cnf; S=$HOME/adv-mixer-3-tools/cadical/build/cadical T=${THREADS:-48} # the lease hands the command the cores it took: {cores} is the count, so every harness run sizes its threads from it -lease() { /srv/builds/_bin/lease pool "$T" --min 16 --label "adv-mixer-3 $1" --owner adv-mixer-3 -- "${@:2}"; } -lease1() { /srv/builds/_bin/lease pool 1 --min 1 --label "adv-mixer-3 $1" --owner adv-mixer-3 -- "${@:2}"; } +# main's pool rule (19:2x UTC): the release builds and the class v5 suites outrank every sweep; while a waiter labelled +# "v5 gate" or "v5 kit" is in the lease queue, no adversarial lease competes: finish the shard in hand, then wait here. +yield_v5() { while /srv/builds/_bin/lease status 2>/dev/null | sed -n '/^waiting/,$p' | grep -qiE "v5 gate|v5 kit"; do sleep 30; done; } +lease() { yield_v5; /srv/builds/_bin/lease pool "$T" --min 16 --label "adv-mixer-3 $1" --owner adv-mixer-3 -- "${@:2}"; } +lease1() { yield_v5; /srv/builds/_bin/lease pool 1 --min 1 --label "adv-mixer-3 $1" --owner adv-mixer-3 -- "${@:2}"; } echo "start $(hostname) $(date -u +%FT%TZ) lease pool up to $T cores, min 16" for k in 5 6 7 8; do echo "== sac day 20729 k=$k $(date -u +%FT%TZ)"; lease "sac 20729 k$k" $X sac --day 20729 --apps $k --states 2^24 --threads {cores} > "$L/sac-20729-k$k.log" 2>&1; grep -E 'holes=|verdict' "$L/sac-20729-k$k.log"; done for k in 5 6 7 8; do echo "== sac day 20733 k=$k $(date -u +%FT%TZ)"; lease "sac 20733 k$k" $X sac --day 20733 --apps $k --states 2^24 --threads {cores} > "$L/sac-20733-k$k.log" 2>&1; grep -E 'holes=|verdict' "$L/sac-20733-k$k.log"; done diff --git a/tools/attack/adv-mixer-3/queue/18-adv-mixer-3-lease-sat.sh b/tools/attack/adv-mixer-3/queue/18-adv-mixer-3-lease-sat.sh index ff3e223e..74ae038a 100644 --- a/tools/attack/adv-mixer-3/queue/18-adv-mixer-3-lease-sat.sh +++ b/tools/attack/adv-mixer-3/queue/18-adv-mixer-3-lease-sat.sh @@ -6,8 +6,11 @@ set -uo pipefail X=/srv/builds/_adv-mixer-3/bin/adv-mixer-3; X2=$X-v2; L=/srv/builds/_adv-mixer-3/logs; C=/srv/builds/_adv-mixer-3/cnf; S=$HOME/adv-mixer-3-tools/cadical/build/cadical T=${THREADS:-48} # the lease hands the command the cores it took: {cores} is the count, so every harness run sizes its threads from it -lease() { /srv/builds/_bin/lease pool "$T" --min 16 --label "adv-mixer-3 $1" --owner adv-mixer-3 -- "${@:2}"; } -lease1() { /srv/builds/_bin/lease pool 1 --min 1 --label "adv-mixer-3 $1" --owner adv-mixer-3 -- "${@:2}"; } +# main's pool rule (19:2x UTC): the release builds and the class v5 suites outrank every sweep; while a waiter labelled +# "v5 gate" or "v5 kit" is in the lease queue, no adversarial lease competes: finish the shard in hand, then wait here. +yield_v5() { while /srv/builds/_bin/lease status 2>/dev/null | sed -n '/^waiting/,$p' | grep -qiE "v5 gate|v5 kit"; do sleep 30; done; } +lease() { yield_v5; /srv/builds/_bin/lease pool "$T" --min 16 --label "adv-mixer-3 $1" --owner adv-mixer-3 -- "${@:2}"; } +lease1() { yield_v5; /srv/builds/_bin/lease pool 1 --min 1 --label "adv-mixer-3 $1" --owner adv-mixer-3 -- "${@:2}"; } echo "start $(hostname) $(date -u +%FT%TZ) lease pool up to $T cores, min 16" for d in 20729 20733; do for k in 2 3 4; do [ $d = 20729 ] && [ $k = 1 ] && continue diff --git a/tools/attack/adv-mixer-3/x-lock.sh b/tools/attack/adv-mixer-3/x-lock.sh index 3421f9cc..9d8306e0 100755 --- a/tools/attack/adv-mixer-3/x-lock.sh +++ b/tools/attack/adv-mixer-3/x-lock.sh @@ -5,4 +5,8 @@ # Usage: x-lock.sh [v2]