From d72cf9306f9869880642660b99d61fb349153d69 Mon Sep 17 00:00:00 2001 From: Justin Bradfield Date: Fri, 16 Jan 2026 18:22:23 -0600 Subject: [PATCH] Better balancer upstream errors when can't connect Error with upstream server not available when balancer can't connect to environmentd. Periovusly it this returned an SSL EOF, which was not helpful. --- src/balancerd/src/lib.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/balancerd/src/lib.rs b/src/balancerd/src/lib.rs index b6b84fd7b0be3..cc02368414e38 100644 --- a/src/balancerd/src/lib.rs +++ b/src/balancerd/src/lib.rs @@ -670,11 +670,21 @@ impl PgwireBalancer { .tenant .as_ref() .map(|tenant| metrics.tenant_connections(tenant)); - let Ok(mut mz_stream) = - Self::init_stream(conn, resolved.addr, resolved.password, params, internal_tls).await - else { - return Ok(()); - }; + let mut mz_stream = + match Self::init_stream(conn, resolved.addr, resolved.password, params, internal_tls) + .await + { + Ok(stream) => stream, + Err(e) => { + error!("failed to connect to upstream server: {e}"); + return conn + .send(ErrorResponse::fatal( + SqlState::SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION, + "upstream server not available", + )) + .await; + } + }; let mut client_counter = CountingConn::new(conn.inner_mut());