keep CLI units current during rebuilds

This commit is contained in:
udo
2026-07-13 14:20:29 +00:00
parent 97ecc6edd6
commit cd2fa163e6
4 changed files with 19 additions and 7 deletions
+13 -3
View File
@@ -84,14 +84,24 @@ rebuild_lock_pid=$!
sleep 0.2
sed -i 's/dependency-marker-b/dependency-marker-d/' "$source_dir/child.uce"
started_at=$(date +%s%N)
assert_marker parent dependency-marker-b
http_during_lock=$(http_marker)
elapsed_ms=$(( ($(date +%s%N) - started_at) / 1000000 ))
if [[ "$http_during_lock" != *"dependency-marker-b"* ]]; then
echo "HTTP request did not serve the last complete artifact during rebuild: $http_during_lock" >&2
exit 1
fi
if (( elapsed_ms >= 2000 )); then
echo "request waited ${elapsed_ms}ms for an active transitive rebuild" >&2
echo "HTTP request waited ${elapsed_ms}ms for an active transitive rebuild" >&2
exit 1
fi
started_at=$(date +%s%N)
assert_marker parent dependency-marker-d
elapsed_ms=$(( ($(date +%s%N) - started_at) / 1000000 ))
if (( elapsed_ms < 2000 )); then
echo "CLI request returned before the locked rebuild published the current artifact (${elapsed_ms}ms)" >&2
exit 1
fi
wait "$rebuild_lock_pid"
assert_marker parent dependency-marker-d
# Warm every configured worker, then replace the artifact while retaining its
# whole-second mtime. The worker cache must notice the nanosecond/ctime change.