From 648ea40d11684125530cf9dceaeb52ba030264b7 Mon Sep 17 00:00:00 2001 From: "zed-zippy[bot]" <234243425+zed-zippy[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 16:40:16 -0500 Subject: [PATCH] remote_server: Avoid panic when writing to stderr (#47683) (cherry-pick to preview) (#47685) Cherry-pick of #47683 to preview ---- Closes ZED-4JM Release Notes: - N/A --------- Co-authored-by: Cole Miller --- crates/remote_server/src/main.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/crates/remote_server/src/main.rs b/crates/remote_server/src/main.rs index 114787f5950a1f8bf5b1ca0290ae82aa156bf466..965043e40e2185d36193b35e991b969cfa6d05a3 100644 --- a/crates/remote_server/src/main.rs +++ b/crates/remote_server/src/main.rs @@ -1,5 +1,6 @@ use clap::Parser; use remote_server::Commands; +use std::io::Write as _; use std::path::PathBuf; #[derive(Parser)] @@ -46,7 +47,7 @@ fn main() -> anyhow::Result<()> { if let Err(e) = &res && let Some(e) = e.downcast_ref::() { - eprintln!("{e:#}"); + std::io::stderr().write_fmt(format_args!("{e:#}\n")).ok(); // It is important for us to report the proxy spawn exit code here // instead of the generic 1 that result returns // The client reads the exit code to determine if the server process has died when trying to reconnect @@ -55,16 +56,22 @@ fn main() -> anyhow::Result<()> { } res } else { - eprintln!("usage: remote "); + std::io::stderr() + .write_all(b"usage: remote \n") + .ok(); std::process::exit(1); } #[cfg(windows)] if let Some(_) = cli.command { - eprintln!("run is not supported on Windows"); + std::io::stderr() + .write_all(b"run is not supported on Windows\n") + .ok(); std::process::exit(2); } else { - eprintln!("usage: remote "); + std::io::stderr() + .write_all(b"usage: remote \n") + .ok(); std::process::exit(1); } }