Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/notes/2.34.x.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ Published Pants binaries are now compiled with a new `dist` Cargo profile that e

Pants option config files are now parsed as TOML 1.1 rather than TOML 1.0. This covers `pants.toml` and any other file named by `[GLOBAL].pants_config_files`, the rcfiles named by `[GLOBAL].pantsrc_files` (`/etc/pantsrc`, `~/.pants.rc` and `.pants.rc` by default), and `.toml` files referenced by `@fromfile` option values. Inline tables may now span multiple lines and end with a trailing comma, strings may use the `\e` and `\xHH` escapes, and times may omit their seconds. TOML 1.1 only adds syntax to TOML 1.0, so existing files continue to parse unchanged. TOML files read by backends, such as `pyproject.toml`, are unaffected.

Fixed "Long running tasks:" straggler logging not printing when `dynamic_ui = false`. A memory-leak optimization in [#23485](https://github.com/pantsbuild/pants/pull/23485) disabled the heavy-hitters workunit channel when the dynamic UI was off, but that channel is also used by the non-dynamic-UI `Logging` display to report long-running tasks. This caused CI builds (where `dynamic_ui` defaults to `false`) to lose their heartbeat output and potentially time out.

### Goals

### Backends
Expand Down
7 changes: 4 additions & 3 deletions src/rust/engine/src/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,10 @@ impl Session {
}
// Only queue workunit messages for consumers which will actually poll for them: the
// streaming channel is enabled later iff a streaming workunit consumer registers (see
// `enable_streaming_workunits`), and the heavy hitters consumer only exists for the
// dynamic UI.
let workunit_store = WorkunitStore::new(!dynamic_ui, max_workunit_level, false, dynamic_ui);
// `enable_streaming_workunits`). The heavy hitters channel is always enabled because it
// feeds both the dynamic UI (via `heavy_hitters`) and the non-dynamic-UI straggler
// logging (via `straggling_workunits`).
let workunit_store = WorkunitStore::new(!dynamic_ui, max_workunit_level, false, true);
let display = tokio::sync::Mutex::new(SessionDisplay::new(
&workunit_store,
core.local_parallelism,
Expand Down
Loading