Skip to content

fix: IAM bootstrap atomicity and bootstrapper startup ordering#935

Merged
cybermaggedon merged 1 commit into
release/v2.4from
fix/pulsar-bootstrap
May 18, 2026
Merged

fix: IAM bootstrap atomicity and bootstrapper startup ordering#935
cybermaggedon merged 1 commit into
release/v2.4from
fix/pulsar-bootstrap

Conversation

@cybermaggedon

Copy link
Copy Markdown
Contributor

IAM auto-bootstrap could get permanently stuck in a half-done state: _seed_tables wrote the workspace first, so any_workspace_exists() returned true on restart even when user/key/signing-key creation had failed. Remove workspace creation from _seed_tables (WorkspaceInit handles it) and use any_signing_key_exists() as the completion check since the signing key is the last thing written.

Run pre-service initialisers (PulsarTopology) in start() before opening pub/sub connections, breaking the chicken-and-egg where the bootstrapper needed Pulsar namespaces that it was responsible for creating. Guard against empty cluster list when broker isn't ready.

IAM auto-bootstrap could get permanently stuck in a half-done state:
_seed_tables wrote the workspace first, so any_workspace_exists()
returned true on restart even when user/key/signing-key creation had
failed.  Remove workspace creation from _seed_tables (WorkspaceInit
handles it) and use any_signing_key_exists() as the completion check
since the signing key is the last thing written.

Run pre-service initialisers (PulsarTopology) in start() before
opening pub/sub connections, breaking the chicken-and-egg where the
bootstrapper needed Pulsar namespaces that it was responsible for
creating.  Guard against empty cluster list when broker isn't ready.
@github-actions

Copy link
Copy Markdown

Contributor License Agreement ✅

All contributors have signed the CLA. Thank you!

@cybermaggedon cybermaggedon merged commit 29d3100 into release/v2.4 May 18, 2026
3 checks passed
@cybermaggedon cybermaggedon deleted the fix/pulsar-bootstrap branch May 18, 2026 21:08
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.

1 participant