From 1eb76d93b725ddb20953bdb2a8a5a30de8149a08 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 9 Jul 2023 23:37:21 +0800 Subject: [PATCH] streaming: cast the progress to a float before formatting it before this change, we format a `long` using `{:f}`. fmtlib would throw an exception when actually formatting it. so, let's make the percentage a float before formatting it. Fixes #14587 Signed-off-by: Kefu Chai Closes #14588 --- streaming/progress_info.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/streaming/progress_info.cc b/streaming/progress_info.cc index 0afe025113..f7bce68061 100644 --- a/streaming/progress_info.cc +++ b/streaming/progress_info.cc @@ -14,8 +14,9 @@ namespace streaming { std::ostream& operator<<(std::ostream& os, const progress_info& x) { sstring dir = x.dir == progress_info::direction::OUT ? "sent to " : "received from "; - return os << format("{} {:d}/({:f}%) {} {}", x.file_name, x.current_bytes, - x.current_bytes * 100 / x.total_bytes, dir, x.peer); + fmt::print(os, "{} {:d}/({:f}%) {} {}", x.file_name, x.current_bytes, + x.current_bytes * 100.F / x.total_bytes, dir, x.peer); + return os; } }