VOIP-1279-Asterisk-proxy-fail-fast-listen-handler - #1156
Merged
Conversation
Fail fast when the RabbitMQ listen handler cannot establish its consumer topology at startup, so restart policy can heal a broken proxy instead of it running indefinitely with zero consumers. - voip-asterisk-proxy: ListenHandler.Run() now declares all listen queues synchronously (no retry) and validates the combined permanent+volatile queue name list for empty/duplicate entries before any broker call, returning an error immediately on failure - voip-asterisk-proxy: Run() returns a buffered error channel that consumer goroutines use to report ConsumeRPC failures after a successful start - voip-asterisk-proxy: main() now exits non-zero (log.Fatalf) when getAsteriskIDAddress fails or when the listen handler cannot be established at startup or loses a consumer permanently; Redis registration, Kubernetes annotation patching, and the ARI/AMI event handler keep their existing soft-failure behavior by design - voip-asterisk-proxy: add unit tests for queue validation, declare failure paths, and consumer error delivery on the buffered channel - voip-asterisk-proxy: update docs/architecture.md, docs/operations.md, docs/subsystems.md to describe the new fail-fast startup behavior, operational signature, and the single-container deployment risk - docs: add design and implementation plan documents for this change
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.
Make asterisk-proxy exit non-zero when its RabbitMQ listen handler cannot establish or permanently loses its consumer topology at startup, so restart policy heals the instance instead of it running indefinitely with zero consumers. Found during VOIP-1275 live internal-mode verification, where a missing delayed-message exchange plugin left three proxy instances "Up" but unable to service any RPC request.
Design trade-offs accepted (detailed in the design doc):
Still pending before merge (implementation plan steps 5b/6/7, need live infra access):
Test plan: