diff --git a/backend/controller/sql/queries.sql b/backend/controller/sql/queries.sql index 4b1a023888..0a72d5910d 100644 --- a/backend/controller/sql/queries.sql +++ b/backend/controller/sql/queries.sql @@ -110,7 +110,8 @@ RETURNING deployment_id; -- name: KillStaleRunners :one WITH matches AS ( UPDATE runners - SET state = 'dead' + SET state = 'dead', + deployment_id = NULL WHERE state <> 'dead' AND last_seen < (NOW() AT TIME ZONE 'utc') - sqlc.arg('timeout')::INTERVAL RETURNING 1) SELECT COUNT(*) @@ -119,7 +120,8 @@ FROM matches; -- name: DeregisterRunner :one WITH matches AS ( UPDATE runners - SET state = 'dead' + SET state = 'dead', + deployment_id = NULL WHERE key = $1 RETURNING 1) SELECT COUNT(*) @@ -160,7 +162,7 @@ SELECT d.min_replicas, r.endpoint, r.labels AS runner_labels FROM deployments d - LEFT JOIN runners r on d.id = r.deployment_id + LEFT JOIN runners r on d.id = r.deployment_id AND r.state != 'dead' WHERE d.min_replicas > 0 ORDER BY d.name; diff --git a/backend/controller/sql/queries.sql.go b/backend/controller/sql/queries.sql.go index 26f94eaf5f..edb0b58296 100644 --- a/backend/controller/sql/queries.sql.go +++ b/backend/controller/sql/queries.sql.go @@ -98,7 +98,8 @@ func (q *Queries) CreateIngressRoute(ctx context.Context, arg CreateIngressRoute const deregisterRunner = `-- name: DeregisterRunner :one WITH matches AS ( UPDATE runners - SET state = 'dead' + SET state = 'dead', + deployment_id = NULL WHERE key = $1 RETURNING 1) SELECT COUNT(*) @@ -749,7 +750,7 @@ SELECT d.min_replicas, r.endpoint, r.labels AS runner_labels FROM deployments d - LEFT JOIN runners r on d.id = r.deployment_id + LEFT JOIN runners r on d.id = r.deployment_id AND r.state != 'dead' WHERE d.min_replicas > 0 ORDER BY d.name ` @@ -1198,7 +1199,8 @@ func (q *Queries) KillStaleControllers(ctx context.Context, timeout time.Duratio const killStaleRunners = `-- name: KillStaleRunners :one WITH matches AS ( UPDATE runners - SET state = 'dead' + SET state = 'dead', + deployment_id = NULL WHERE state <> 'dead' AND last_seen < (NOW() AT TIME ZONE 'utc') - $1::INTERVAL RETURNING 1) SELECT COUNT(*)