Skip to content

direct: fail bind when the deployment state cannot be read - #6331

Open
denik wants to merge 1 commit into
mainfrom
denik/bind-state-open-error
Open

direct: fail bind when the deployment state cannot be read#6331
denik wants to merge 1 commit into
mainfrom
denik/bind-state-open-error

Conversation

@denik

@denik denik commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

bundle deployment bind treated any failure to open the state as "resource not bound": it skipped the already-managed check, bound over state whose ownership was never verified, and overwrote it — while reporting success. A crashed deploy that left a WAL behind was enough to trigger this.

A state file that does not exist opens as an empty one, so the absence of a binding is already covered by a successful open. Return the error instead.

Tests

New acceptance test that deploys a job, leaves a WAL from a different lineage next to the state, and binds: it used to print "Successfully bound" and replace the state file.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 134ca03

Run: 32712478766

Env 💚​RECOVERED 🙈​SKIP ✅​pass 🙈​skip Time
💚​ aws linux 1 4 274 1165 5:33
💚​ aws windows 1 4 276 1163 5:58
💚​ azure linux 1 4 273 1165 5:57
💚​ azure windows 1 4 275 1163 5:47
💚​ gcp linux 1 4 274 1165 7:10
💚​ gcp windows 1 4 276 1163 5:21
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
🙈​ TestAccept/bundle/invariant/no_drift 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/ssh/connection 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
Top 3 slowest tests (at least 2 minutes):
duration env testname
4:20 aws windows TestAccept
3:55 gcp windows TestAccept
3:55 azure windows TestAccept

Bind treated any failure to open the state as "resource not bound": it
skipped the already-managed check and then bound over state whose
ownership was never verified, overwriting it. A crashed deploy that left a
WAL behind was enough to trigger this, and bind still reported success.

A state file that does not exist opens as an empty one, so absence of a
binding is already covered; return the error instead.

Co-authored-by: Isaac
@denik
denik force-pushed the denik/bind-state-open-error branch from 70ec539 to 134ca03 Compare August 24, 2026 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants