Skip to content

Commit 6dd97ff

Browse files
committed
fix(ci): normalize runtime lease heartbeat
1 parent 7754ddd commit 6dd97ff

1 file changed

Lines changed: 21 additions & 14 deletions

File tree

‎scripts/ci/ordinary-server-upgrade-e2e.sh‎

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -321,12 +321,24 @@ MANAGED_FILES_0138=(
321321
FILES_0138="$(sudo sha256sum "${MANAGED_FILES_0138[@]}" | sha256sum | cut -d' ' -f1)"
322322
echo "released 0.1.38 managed-file fingerprint: captured"
323323
# PostgreSQL 18 randomizes the plain-dump psql restrict key by default.
324-
# Fix it only for this locally controlled, hash-only test dump so repeated
325-
# outputs compare database content rather than transport nonce material.
326-
DATABASE_0138="$(sudo -u agentnet pg_dump \
327-
--no-owner --no-privileges \
328-
--restrict-key=AgentNetReleasedMarkerState0138 \
329-
--dbname=agentnet | sha256sum | cut -d' ' -f1)"
324+
# Fix it only for this locally controlled, hash-only test dump. Core also
325+
# refreshes runtime_leases.heartbeat_at/expires_at while it remains active, so
326+
# exclude only that table's volatile row data and hash its stable custody fields
327+
# separately. Schema plus every other row remain covered by the full dump.
328+
database_fingerprint() {
329+
{
330+
sudo -u agentnet pg_dump \
331+
--no-owner --no-privileges \
332+
--exclude-table-data=public.runtime_leases \
333+
--restrict-key=AgentNetReleasedMarkerState0138 \
334+
--dbname=agentnet
335+
sudo -u agentnet psql -X -Atq --dbname=agentnet -c \
336+
"COPY (SELECT lease_name,owner_id,fence,acquired_at FROM runtime_leases ORDER BY lease_name) TO STDOUT WITH (FORMAT csv, FORCE_QUOTE *)"
337+
} | sha256sum | cut -d' ' -f1
338+
}
339+
LEASE_COUNT_0138="$(sudo -u agentnet psql -X -Atq --dbname=agentnet -c 'SELECT COUNT(*) FROM runtime_leases')"
340+
[[ "$LEASE_COUNT_0138" =~ ^[1-9][0-9]*$ ]]
341+
DATABASE_0138="$(database_fingerprint)"
330342
echo "released 0.1.38 marker baseline: captured"
331343

332344
assert_rejection() {
@@ -357,10 +369,8 @@ assert_released_state_unchanged() {
357369
echo "$phase: marker and state files unchanged"
358370
[[ "$(sudo -u agentnet psql -Atq --dbname=agentnet -c "SELECT value FROM metadata WHERE key='schema_version'")" == "$SCHEMA_0138" ]]
359371
[[ "$(sudo -u agentnet psql -Atq --dbname=agentnet -c 'SELECT COALESCE(MAX(version),0) FROM schema_migrations')" == "$MIGRATION_MAX_0138" ]]
360-
[[ "$(sudo -u agentnet pg_dump \
361-
--no-owner --no-privileges \
362-
--restrict-key=AgentNetReleasedMarkerState0138 \
363-
--dbname=agentnet | sha256sum | cut -d' ' -f1)" == "$DATABASE_0138" ]]
372+
[[ "$(sudo -u agentnet psql -X -Atq --dbname=agentnet -c 'SELECT COUNT(*) FROM runtime_leases')" == "$LEASE_COUNT_0138" ]]
373+
[[ "$(database_fingerprint)" == "$DATABASE_0138" ]]
364374
echo "$phase: database unchanged"
365375
[[ "$(sudo sha256sum "${MANAGED_FILES_0138[@]}" | sha256sum | cut -d' ' -f1)" == "$FILES_0138" ]]
366376
echo "$phase: managed files unchanged"
@@ -387,10 +397,7 @@ plan_setup "$PREFIX_CANDIDATE" "$PLAN_CANDIDATE"
387397
DIGEST_CANDIDATE="$(jq -r '.request_digest' "$PLAN_CANDIDATE")"
388398
assert_released_state_unchanged "candidate plan"
389399
echo "candidate plan: released state unchanged"
390-
[[ "$(sudo -u agentnet pg_dump \
391-
--no-owner --no-privileges \
392-
--restrict-key=AgentNetReleasedMarkerState0138 \
393-
--dbname=agentnet | sha256sum | cut -d' ' -f1)" == "$DATABASE_0138" ]]
400+
[[ "$(database_fingerprint)" == "$DATABASE_0138" ]]
394401
echo "candidate pre-apply: database unchanged"
395402

396403
APPLY_CANDIDATE_EXIT=0

0 commit comments

Comments
 (0)