Repository navigation
Native: let a MySQL node wait out another node's bootstrap - #567
Merged
Merged
Conversation
MySQL commits DDL on its own, so between one node creating dw_server_schema and recording its rust-initializing marker, a second node's read-only preflight saw an empty marker table and refused with unsupported_rust_schema. A node killed in that window left a database no node could start on. Found when three nodes started together in the multi-node harness. Preflight now accepts an empty marker table when it is the only table, so the node waits for the bootstrap lock; under the lock a missing marker is recorded before the migration runs. The kill qualification gains a marker-table phase in which a concurrent start must wait for the lock and then complete. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…to rust-325-mysql-bootstrap-race # Conflicts: # docs/rust-server-port.md
…rap-race # Conflicts: # docs/rust-server-port.md
rmcdaniel
enabled auto-merge
October 21, 2026 03:29
…rap-race # Conflicts: # docs/rust-server-port.md
Member
Author
|
This was referenced Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Part of #325. A native node starting on an empty MySQL or MariaDB database no longer refuses while another node is still bootstrapping it.
Found by
A multi-node smoke run (#549) started three native nodes together on an empty MySQL database. One node exited with
409 unsupported_rust_schema.Cause
dw_server_schema. Before it recorded itsrust-initializingmarker, another node's read-only preflight ran. That preflight runs before the bootstrap lock, saw an empty marker table and refused.Change
Checks
marker-tablephase. It kills a bootstrapping child right after the child creates the marker table, while it holds the bootstrap lock.🤖 Generated with Claude Code