Skip to content

Commit d1097c5

Browse files
authored
join ops before in format (#6370)
when there are several subscribers, i get: ``` thread '...' (7476) panicked at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.14.0/src/format.rs:95:21: Format: was already formatted once stack backtrace: 0: std::panicking::begin_panic at /rustc/c23ed3ef28b3cc30658310f771ddc66e5b687cf4/library/std/src/panicking.rs:762:5 1: <itertools::format::Format<core::slice::iter::Iter<alloc::string::String>>>::format at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.14.0/src/format.rs:95:21 2: <itertools::format::Format<core::slice::iter::Iter<alloc::string::String>> as core::fmt::Display>::fmt at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.14.0/src/format.rs:119:26 3: core::fmt::rt::Argument::fmt at /rustc/c23ed3ef28b3cc30658310f771ddc66e5b687cf4/library/core/src/fmt/rt.rs:152:76 4: core::fmt::write 5: <&dyn core::fmt::Debug as core::fmt::Debug>::fmt at /home/runner/.rustup/toolchains/nightly-2025-11-24-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:2865:62 6: core::fmt::rt::Argument::fmt at /rustc/c23ed3ef28b3cc30658310f771ddc66e5b687cf4/library/core/src/fmt/rt.rs:152:76 7: core::fmt::write 8: <&mut tracing_subscriber::fmt::format::escape::EscapingWriter as core::fmt::Write::write_fmt::SpecWriteFmt>::spec_write_fmt at /home/runner/.rustup/toolchains/nightly-2025-11-24-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:236:21 9: <tracing_subscriber::fmt::format::escape::EscapingWriter as core::fmt::Write>::write_fmt at /home/runner/.rustup/toolchains/nightly-2025-11-24-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:241:14 10: <tracing_subscriber::fmt::format::escape::Escape<&dyn core::fmt::Debug> as core::fmt::Debug>::fmt at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.22/src/fmt/format/escape.rs:42:9 11: core::fmt::rt::Argument::fmt at /rustc/c23ed3ef28b3cc30658310f771ddc66e5b687cf4/library/core/src/fmt/rt.rs:152:76 12: core::fmt::write 13: <&mut alloc::string::String as core::fmt::Write::write_fmt::SpecWriteFmt>::spec_write_fmt ``` --------- Signed-off-by: blaginin <github@blaginin.me>
1 parent 28acfa4 commit d1097c5

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

vortex-array/src/executor.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ use std::fmt::Display;
77
use std::sync::Arc;
88
use std::sync::atomic::AtomicUsize;
99

10-
use itertools::Itertools;
1110
use vortex_error::VortexResult;
1211
use vortex_session::VortexSession;
1312

@@ -116,8 +115,21 @@ impl Display for ExecutionCtx {
116115

117116
impl Drop for ExecutionCtx {
118117
fn drop(&mut self) {
119-
if !self.ops.is_empty() {
120-
tracing::debug!("exec[{}] trace:\n{}", self.id, self.ops.iter().format("\n"));
118+
if !self.ops.is_empty() && tracing::enabled!(tracing::Level::DEBUG) {
119+
// Unlike itertools `.format()` (panics in 0.14 on second format)
120+
struct FmtOps<'a>(&'a [String]);
121+
impl Display for FmtOps<'_> {
122+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
123+
for (i, op) in self.0.iter().enumerate() {
124+
if i > 0 {
125+
f.write_str("\n")?;
126+
}
127+
f.write_str(op)?;
128+
}
129+
Ok(())
130+
}
131+
}
132+
tracing::debug!("exec[{}] trace:\n{}", self.id, FmtOps(&self.ops));
121133
}
122134
}
123135
}

0 commit comments

Comments
 (0)