[ANNOUNCE] stalld v1.28.1

Clark Williams <[email protected]> Wed, 17 Jun 2026 17:16:03 -0500
Newsgroups org.kernel.vger.linux-rt-users
Message-ID <ajMco4CZyWrgwnNs@lysander>
Hello,

stalld v1.28.1 is available at:

  https://git.kernel.org/pub/scm/utils/stalld/stalld.git

  tag: v1.28.1

This is a hardening and test reliability release. It contains 17 bug
fixes addressing buffer safety, data races, signal safety, type
correctness, and a logic error in starvation timing. There is one
behavioral change (--force_fifo rejection in single-threaded mode), one
BPF performance improvement (hash map replaces linear scan), and a
major test suite overhaul for reliability and speed.

Changes since v1.27.1:

Bug Fixes — stalld core:

  Memory safety & buffer handling:
  - Fix buffer underflow in read_proc_stat and sched_debug_get
  - Fix uninitialized buffer use in find_debugfs_mount_point
  - Fix missing null-termination in is_runnable
  - Fix snprintf truncation check in is_runnable
  - Remove NULL deref in fill_waiting_task error handler

  Type correctness:
  - Fix format string type mismatch for time_t
  - Fix format string type mismatch in set_cpu_affinity
  - Fix type mismatches in detect_task_format

  Concurrency & signal safety:
  - Fix data race on config_buffer_size
  - Fix data race on thread_running
  - Remove async-signal-unsafe calls from signal handler
  - Check pthread_create return in both aggressive_main and
    conservative_main

  Logic fixes:
  - Fix signed integer overflow in set_reservation
  - Fix error return in queue_track_get_cpu
  - Fix inverted DAEMON_UMASK value
  - Guard nextline() returns in sched_debug parsing
  - Use CLOCK_MONOTONIC for starvation detection

New behavior:
  - Reject --force_fifo in single-threaded mode (runtime validation)

BPF:
  - Replace linear task scan with hash map

Test infrastructure overhaul:

  New helpers and assertions:
  - assert_success(), assert_log_contains(), assert_stalld_rejects()
  - find_starved_child(), cleanup_scenario(), test_section()
  - wait_for_process_exit, process helpers, starvation/boost asserts
  - init_functional_test() consolidation

  Reliability fixes:
  - Fix subshell swallowing test results
  - Fix boost verification in runtime and duration tests
  - Fix journal flush race in logging destinations test
  - Fix async-signal-unsafe handler in tests
  - Fix repeated log match finding same line
  - Fix CPU selection grep substring matches
  - Fix task exit timing in test_boost_restoration

  Cleanup & speed:
  - Remove dead code, redundant sleeps, weak/assertion-free test blocks
  - Replace sleep-based waits with event waits
  - Reduce starvation_gen durations and default wait timeouts
  - Abort immediately on test failure

Chore:
  - Remove legacy test infrastructure and stale docs

 57 files changed, 969 insertions(+), 10781 deletions(-)

Contributors:
  Clark Williams (2):
        tests: Fix journal flush race in logging destinations test
        stalld: bump version to 1.28.1

  Wander Lairson Costa (52):
        stalld: Reject --force_fifo in single-threaded mode
        bpf: Replace linear task scan with hash map
        stalld: 16 bug fixes (see above)
        tests: 30 test infrastructure commits
        chore: Remove legacy test infrastructure and stale docs

Clark
-- 
The United States Coast Guard
Ruining Natural Selection since 1790