From 8a8f48c944cc4430ab76cf12b12a3530963ce398 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;