From 95f0445d83f6808aaf3806654be9004815474f7b Mon Sep 17 00:00:00 2001 From: John Coffey Date: Thu, 24 Sep 2026 08:29:20 -0700 Subject: [PATCH] Coordinator: join the cluster when NATS comes up, report the connection A node that started while NATS was down never got a coordinator. The connect failed at boot, bootstrap recorded a build error and the node ran with Coordinator::None until restarted. It had no broadcast subscriber or publisher, so cross-node push and cache invalidation to it stayed broken, and its healthcheck said nothing about it. Losing NATS after startup was silent too. - The NATS client now connects in the background (retry_on_initial_connect): startup never waits on NATS or fails over it, the node gets its coordinator, subscriber and publisher at once, and the client keeps trying (async-nats's backoff, at most 4 s apart) until NATS answers. Subscriptions made meanwhile start delivering when it does. A configured maxReconnects still ends the attempts. - Three new events report the connection: cluster.coordinator-connected (info), cluster.coordinator-disconnected (warn: lost, closed, gave up, or not connected within the connection timeout at startup) and cluster.coordinator-error (warn: a failed attempt, reported once per outage rather than every retry, and server errors, slow consumers and lame duck mode). They are in the packaged schema, ids 644 to 646. - GET /healthz/cluster reports the coordinator: 200 {"coordinator":"connected"}, 503 {"coordinator":"disconnected"}, or 200 with "none" (no coordinator) or "unknown" (a backend that doesn't track its connection). /healthz/live and /healthz/ready are unchanged on purpose: a node without its coordinator still serves mail, and failing those would have orchestrators restart, or pull out of service, every node at once whenever NATS is down. Only NATS connects lazily; the other coordinator backends still fail at boot as before. cluster::coordinator::coordinator_reconnect_tests starts a node against a NATS port with nothing behind it, checks it boots with a coordinator and reports it disconnected, subscribes, then starts NATS on that port: the node connects on its own and the subscription receives a message from a second client. Stopping and restarting NATS shows disconnected, then connected, and the same subscription keeps working. --- crates/coordinator/Cargo.toml | 2 +- crates/coordinator/src/backend/nats/mod.rs | 120 ++++++++++++++++- crates/coordinator/src/dispatch.rs | 13 ++ crates/http/src/request.rs | 21 +++ crates/trc/src/event/enums.rs | 9 +- crates/trc/src/event/enums_impl.rs | 32 +++++ resources/schema/schema.json.gz | Bin 150493 -> 150752 bytes resources/schema/schema.json.sha256 | 2 +- tests/src/cluster/coordinator.rs | 145 +++++++++++++++++++++ tests/src/cluster/mod.rs | 4 + 10 files changed, 342 insertions(+), 6 deletions(-) create mode 100644 tests/src/cluster/coordinator.rs diff --git a/crates/coordinator/Cargo.toml b/crates/coordinator/Cargo.toml index ea63a67..2a88b21 100644 --- a/crates/coordinator/Cargo.toml +++ b/crates/coordinator/Cargo.toml @@ -8,7 +8,7 @@ store = { path = "../store" } registry = { path = "../registry" } trc = { path = "../trc" } futures = { version = "0.3", optional = true } -tokio = { version = "1.53", features = ["sync", "fs", "io-util"] } +tokio = { version = "1.53", features = ["sync", "fs", "io-util", "rt", "time"] } async-nats = { version = "0.50", default-features = false, features = ["server_2_10", "server_2_11", "aws-lc-rs"], optional = true } zenoh = { version = "1.10.0", default-features = false, features = ["auth_pubkey", "transport_multilink", "transport_compression", "transport_quic", "transport_tcp", "transport_tls", "transport_udp"], optional = true } rdkafka = { version = "0.39", features = ["cmake-build"], optional = true } diff --git a/crates/coordinator/src/backend/nats/mod.rs b/crates/coordinator/src/backend/nats/mod.rs index ee01fd5..6d4d918 100644 --- a/crates/coordinator/src/backend/nats/mod.rs +++ b/crates/coordinator/src/backend/nats/mod.rs @@ -2,13 +2,22 @@ * SPDX-FileCopyrightText: 2020 Stalwart Labs LLC * * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL + * + * Modified by Coffey Labs in 2026 for INBUXA. */ -use std::sync::Arc; +use std::{ + sync::{ + Arc, + atomic::{AtomicBool, Ordering}, + }, + time::Duration, +}; use crate::Coordinator; use async_nats::Client; use registry::schema::structs::NatsCoordinator; +use trc::ClusterEvent; pub mod pubsub; @@ -47,9 +56,116 @@ impl NatsPubSub { opts = opts.token(credentials); } + // inbuxa: connect in the background and keep trying, so a node that + // starts while NATS is down still joins the cluster once NATS is + // back, instead of running without a coordinator until restarted; + // and report the connection going and coming back + let reporter = Arc::new(Reporter::default()); + opts = opts.retry_on_initial_connect().event_callback({ + let reporter = reporter.clone(); + move |event| { + let reporter = reporter.clone(); + async move { reporter.report(event) } + } + }); + let connection_timeout = config.timeout_connection.into_inner(); + async_nats::connect_with_options(config.addresses.into_inner(), opts) .await - .map(|client| Coordinator::Nats(Arc::new(NatsPubSub { client }))) + .map(|client| { + reporter.watch_first_connection(client.clone(), connection_timeout); + Coordinator::Nats(Arc::new(NatsPubSub { client })) + }) .map_err(|err| format!("Failed to connect to Nats: {}", err)) } + + /// inbuxa: whether the client is connected to a NATS server right now. + pub fn is_connected(&self) -> bool { + matches!( + self.client.connection_state(), + async_nats::connection::State::Connected + ) + } +} + +/// inbuxa: reports the client's connection events as the server's own. +#[derive(Default)] +struct Reporter { + connected_once: AtomicBool, + // A failed attempt raises an error each time the client retries, every + // few seconds while NATS is down: report the first after each change + error_reported: AtomicBool, +} + +impl Reporter { + fn report(&self, event: async_nats::Event) { + match event { + async_nats::Event::Connected => { + self.connected_once.store(true, Ordering::Relaxed); + self.error_reported.store(false, Ordering::Relaxed); + trc::event!(Cluster(ClusterEvent::CoordinatorConnected), Type = "nats"); + } + async_nats::Event::Disconnected => { + self.error_reported.store(false, Ordering::Relaxed); + trc::event!( + Cluster(ClusterEvent::CoordinatorDisconnected), + Type = "nats", + Details = "Connection lost; reconnecting in the background", + ); + } + async_nats::Event::Closed => { + trc::event!( + Cluster(ClusterEvent::CoordinatorDisconnected), + Type = "nats", + Details = "Connection closed; no further attempts will be made", + ); + } + async_nats::Event::ClientError(async_nats::ClientError::MaxReconnects) => { + trc::event!( + Cluster(ClusterEvent::CoordinatorDisconnected), + Type = "nats", + Details = "Gave up reconnecting (maxReconnects reached)", + ); + } + async_nats::Event::ClientError(err) => { + if !self.error_reported.swap(true, Ordering::Relaxed) { + trc::event!( + Cluster(ClusterEvent::CoordinatorError), + Type = "nats", + Details = "Connection attempt failed; retrying", + Reason = err.to_string(), + ); + } + } + event => { + trc::event!( + Cluster(ClusterEvent::CoordinatorError), + Type = "nats", + Details = event.to_string(), + ); + } + } + } + + /// The first connection is made in the background, so say so when it + /// hasn't been made within the connection timeout. The client keeps + /// trying, and reports the connection when it comes. + fn watch_first_connection(self: &Arc, client: Client, timeout: Duration) { + let reporter = self.clone(); + tokio::spawn(async move { + tokio::time::sleep(timeout).await; + if !reporter.connected_once.load(Ordering::Relaxed) + && !matches!( + client.connection_state(), + async_nats::connection::State::Connected + ) + { + trc::event!( + Cluster(ClusterEvent::CoordinatorDisconnected), + Type = "nats", + Details = "Not connected at startup; retrying in the background", + ); + } + }); + } } diff --git a/crates/coordinator/src/dispatch.rs b/crates/coordinator/src/dispatch.rs index bd84b67..6f10adb 100644 --- a/crates/coordinator/src/dispatch.rs +++ b/crates/coordinator/src/dispatch.rs @@ -2,6 +2,8 @@ * SPDX-FileCopyrightText: 2020 Stalwart Labs LLC * * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL + * + * Modified by Coffey Labs in 2026 for INBUXA. */ use crate::{Coordinator, Msg, PubSubStream}; @@ -43,6 +45,17 @@ impl Coordinator { pub fn is_none(&self) -> bool { matches!(self, Coordinator::None) } + + /// inbuxa: whether the coordinator is connected right now, for the + /// backends that track it (NATS); `None` for the others and when no + /// coordinator is configured. + pub fn is_connected(&self) -> Option { + match self { + #[cfg(feature = "nats")] + Coordinator::Nats(store) => Some(store.is_connected()), + _ => None, + } + } } impl PubSubStream { diff --git a/crates/http/src/request.rs b/crates/http/src/request.rs index 5366e6c..576b003 100644 --- a/crates/http/src/request.rs +++ b/crates/http/src/request.rs @@ -562,6 +562,27 @@ impl ParseHttp for Server { }) .into_http_response()); } + // inbuxa: the cluster coordinator's connection, for + // monitoring. It stays out of live and ready on purpose: + // a node without its coordinator still serves mail, and + // failing those would have an orchestrator restart, or + // take out of service, every node at once when the + // coordinator goes down + "cluster" => { + let coordinator = &self.core.storage.coordinator; + let (status, state) = match coordinator.is_connected() { + Some(true) => (StatusCode::OK, "connected"), + Some(false) => (StatusCode::SERVICE_UNAVAILABLE, "disconnected"), + None if coordinator.is_none() => (StatusCode::OK, "none"), + None => (StatusCode::OK, "unknown"), + }; + return Ok(http_proto::JsonResponse::with_status( + status, + serde_json::json!({ "coordinator": state }), + ) + .no_cache() + .into_http_response()); + } _ => (), } } diff --git a/crates/trc/src/event/enums.rs b/crates/trc/src/event/enums.rs index 1725ed7..dd5ee4b 100644 --- a/crates/trc/src/event/enums.rs +++ b/crates/trc/src/event/enums.rs @@ -10,8 +10,9 @@ // inbuxa: 637 to 641 are the fork's SCIM events (SCIM-54); 642 is // auth.legacy-protocol-refused (legacy-protocols LP-6); 643 is -// security.legacy-protocols-changed (LP-8) -pub const TOTAL_EVENT_COUNT: usize = 644; +// security.legacy-protocols-changed (LP-8); 644 to 646 are the cluster +// coordinator's connection events +pub const TOTAL_EVENT_COUNT: usize = 647; pub const TOTAL_METRIC_COUNT: usize = 369; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] @@ -150,6 +151,10 @@ pub enum ClusterEvent { MessageSkipped = 47, MessageInvalid = 49, NodeIdRenewed = 275, + // inbuxa: the coordinator's connection + CoordinatorConnected = 644, + CoordinatorDisconnected = 645, + CoordinatorError = 646, } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] diff --git a/crates/trc/src/event/enums_impl.rs b/crates/trc/src/event/enums_impl.rs index a0864e5..d4ebe88 100644 --- a/crates/trc/src/event/enums_impl.rs +++ b/crates/trc/src/event/enums_impl.rs @@ -81,6 +81,10 @@ impl EventType { b"cluster.message-skipped" => EventType::Cluster(ClusterEvent::MessageSkipped), b"cluster.message-invalid" => EventType::Cluster(ClusterEvent::MessageInvalid), b"cluster.node-id-renewed" => EventType::Cluster(ClusterEvent::NodeIdRenewed), + // inbuxa: coordinator connection + b"cluster.coordinator-connected" => EventType::Cluster(ClusterEvent::CoordinatorConnected), + b"cluster.coordinator-disconnected" => EventType::Cluster(ClusterEvent::CoordinatorDisconnected), + b"cluster.coordinator-error" => EventType::Cluster(ClusterEvent::CoordinatorError), b"dane.authentication-success" => EventType::Dane(DaneEvent::AuthenticationSuccess), b"dane.authentication-failure" => EventType::Dane(DaneEvent::AuthenticationFailure), b"dane.no-certificates-found" => EventType::Dane(DaneEvent::NoCertificatesFound), @@ -742,6 +746,14 @@ impl EventType { EventType::Cluster(ClusterEvent::MessageSkipped) => "cluster.message-skipped", EventType::Cluster(ClusterEvent::MessageInvalid) => "cluster.message-invalid", EventType::Cluster(ClusterEvent::NodeIdRenewed) => "cluster.node-id-renewed", + // inbuxa: coordinator connection + EventType::Cluster(ClusterEvent::CoordinatorConnected) => { + "cluster.coordinator-connected" + } + EventType::Cluster(ClusterEvent::CoordinatorDisconnected) => { + "cluster.coordinator-disconnected" + } + EventType::Cluster(ClusterEvent::CoordinatorError) => "cluster.coordinator-error", EventType::Dane(DaneEvent::AuthenticationSuccess) => "dane.authentication-success", EventType::Dane(DaneEvent::AuthenticationFailure) => "dane.authentication-failure", EventType::Dane(DaneEvent::NoCertificatesFound) => "dane.no-certificates-found", @@ -1524,6 +1536,10 @@ impl EventType { EventType::Cluster(ClusterEvent::MessageSkipped) => 47, EventType::Cluster(ClusterEvent::MessageInvalid) => 49, EventType::Cluster(ClusterEvent::NodeIdRenewed) => 275, + // inbuxa: coordinator connection + EventType::Cluster(ClusterEvent::CoordinatorConnected) => 644, + EventType::Cluster(ClusterEvent::CoordinatorDisconnected) => 645, + EventType::Cluster(ClusterEvent::CoordinatorError) => 646, EventType::Dane(DaneEvent::AuthenticationSuccess) => 67, EventType::Dane(DaneEvent::AuthenticationFailure) => 66, EventType::Dane(DaneEvent::NoCertificatesFound) => 69, @@ -2176,6 +2192,10 @@ impl EventType { 47 => Some(EventType::Cluster(ClusterEvent::MessageSkipped)), 49 => Some(EventType::Cluster(ClusterEvent::MessageInvalid)), 275 => Some(EventType::Cluster(ClusterEvent::NodeIdRenewed)), + // inbuxa: coordinator connection + 644 => Some(EventType::Cluster(ClusterEvent::CoordinatorConnected)), + 645 => Some(EventType::Cluster(ClusterEvent::CoordinatorDisconnected)), + 646 => Some(EventType::Cluster(ClusterEvent::CoordinatorError)), 67 => Some(EventType::Dane(DaneEvent::AuthenticationSuccess)), 66 => Some(EventType::Dane(DaneEvent::AuthenticationFailure)), 69 => Some(EventType::Dane(DaneEvent::NoCertificatesFound)), @@ -3114,6 +3134,10 @@ impl EventType { EventType::Auth(AuthEvent::TooManyAttempts) => Level::Warn, EventType::Calendar(CalendarEvent::AlarmFailed) => Level::Warn, EventType::Cluster(ClusterEvent::SubscriberDisconnected) => Level::Warn, + // inbuxa: coordinator connection + EventType::Cluster(ClusterEvent::CoordinatorConnected) => Level::Info, + EventType::Cluster(ClusterEvent::CoordinatorDisconnected) => Level::Warn, + EventType::Cluster(ClusterEvent::CoordinatorError) => Level::Warn, EventType::Delivery(DeliveryEvent::MissingOutboundHostname) => Level::Warn, EventType::Delivery(DeliveryEvent::ConcurrencyLimitExceeded) => Level::Warn, EventType::Delivery(DeliveryEvent::RateLimitExceeded) => Level::Warn, @@ -3244,6 +3268,10 @@ impl EventType { EventType::Cluster(ClusterEvent::MessageSkipped) => "PubSub message skipped", EventType::Cluster(ClusterEvent::MessageInvalid) => "Invalid PubSub message", EventType::Cluster(ClusterEvent::NodeIdRenewed) => "Node ID renewed", + // inbuxa: coordinator connection + EventType::Cluster(ClusterEvent::CoordinatorConnected) => "Coordinator connected", + EventType::Cluster(ClusterEvent::CoordinatorDisconnected) => "Coordinator unavailable", + EventType::Cluster(ClusterEvent::CoordinatorError) => "Coordinator error", EventType::Dane(DaneEvent::AuthenticationSuccess) => "DANE authentication successful", EventType::Dane(DaneEvent::AuthenticationFailure) => "DANE authentication failed", EventType::Dane(DaneEvent::NoCertificatesFound) => "No certificates found for DANE", @@ -4322,6 +4350,10 @@ impl EventType { EventType::Cluster(ClusterEvent::MessageSkipped), EventType::Cluster(ClusterEvent::MessageInvalid), EventType::Cluster(ClusterEvent::NodeIdRenewed), + // inbuxa: coordinator connection + EventType::Cluster(ClusterEvent::CoordinatorConnected), + EventType::Cluster(ClusterEvent::CoordinatorDisconnected), + EventType::Cluster(ClusterEvent::CoordinatorError), EventType::Dane(DaneEvent::AuthenticationSuccess), EventType::Dane(DaneEvent::AuthenticationFailure), EventType::Dane(DaneEvent::NoCertificatesFound), diff --git a/resources/schema/schema.json.gz b/resources/schema/schema.json.gz index 09e6ff743334459b493baa4c36fcd511f58e37a3..daec882483357abefc849d780752cb1166f62351 100644 GIT binary patch delta 55265 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 delta 55085 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 qNoXA)L|Dk1ZUGaD?xV&SYyRv~YAYbwMb{O_ (u16, Value) { + let response = reqwest::Client::builder() + .danger_accept_invalid_certs(true) + .timeout(Duration::from_secs(5)) + .build() + .unwrap() + .get(format!("https://127.0.0.1:{HTTP_PORT}/healthz/cluster")) + .send() + .await + .unwrap(); + let status = response.status().as_u16(); + (status, response.json().await.unwrap()) +} + +async fn wait_for_health(status: u16, state: &str) { + let started = Instant::now(); + loop { + let health = cluster_health().await; + if health == (status, json!({"coordinator": state})) { + return; + } + assert!( + started.elapsed() < Duration::from_secs(30), + "expected {status} {state}, still {health:?}" + ); + tokio::time::sleep(Duration::from_millis(250)).await; + } +} + +async fn wait_until_connected(coordinator: &Coordinator) { + let started = Instant::now(); + while coordinator.is_connected() != Some(true) { + assert!(started.elapsed() < Duration::from_secs(30), "not connected"); + tokio::time::sleep(Duration::from_millis(100)).await; + } +} + +/// Another node publishes; this one's subscription receives it. +async fn round_trip(from: &Coordinator, stream: &mut coordinator::PubSubStream, payload: &[u8]) { + from.publish(TOPIC, payload.to_vec()).await.unwrap(); + let message = tokio::time::timeout(Duration::from_secs(10), stream.next()) + .await + .expect("no message within 10 seconds") + .expect("subscription ended"); + assert_eq!(message.payload(), payload); +} diff --git a/tests/src/cluster/mod.rs b/tests/src/cluster/mod.rs index 95c1604..6d06c6f 100644 --- a/tests/src/cluster/mod.rs +++ b/tests/src/cluster/mod.rs @@ -2,7 +2,11 @@ * SPDX-FileCopyrightText: 2020 Stalwart Labs LLC * * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL + * + * Modified by Coffey Labs in 2026 for INBUXA. */ pub mod broadcast; +#[cfg(feature = "nats")] +pub mod coordinator; // inbuxa: coordinator reconnects pub mod stress; -- 2.54.0