Files
RustProxy/docs/V0.24.4_AUDIT.md
T
2026-10-03 00:27:09 +01:00

1.9 KiB

RustProxy 0.24.4 specification audit

Scope

0.24.4 is a focused Linux memory-retention maintenance release over 0.24.3. Production diagnostics showed that a large share of anonymous RSS could be backed by 2 MiB Transparent Huge Pages while the live RustProxy cache residency was much smaller. A host-wide switch from THP always to madvise removed those huge-page mappings after restart. 0.24.4 internalizes that mitigation for RustProxy only.

Source/spec matrix

Requirement Source contract Status
Do not require a host-wide THP policy change src/main.rs calls prctl(PR_SET_THP_DISABLE, 1, 0, 0, 0) on Linux implemented in source
Apply the policy before runtime worker heaps are created disable_transparent_huge_pages() runs before tokio::runtime::Builder::new_multi_thread() implemented in source
Keep non-Linux platforms unchanged the THP call is guarded by cfg(target_os = "linux"); other platforms use a no-op helper implemented in source
Avoid turning kernel capability into a startup dependency a failed prctl emits a warning and startup continues implemented in source
Retain the 0.24.3 glibc mitigation managed systemd units still set MALLOC_ARENA_MAX=2; existing bounded malloc_trim(0) paths remain retained

Runtime acceptance

Source inspection cannot establish steady-state RSS. On a Linux release host, return /sys/kernel/mm/transparent_hugepage/enabled to the host's normal policy, restart the 0.24.4 binary, and verify /proc/<pid>/status reports THP_enabled: 0. Under representative sustained traffic, /proc/<pid>/smaps_rollup should keep AnonHugePages at zero or negligible levels without changing the global THP setting. Record RSS, anonymous RSS, cache resident/transient bytes and request rate for the same 10-12 hour acceptance window used by 0.24.3.

Compiler/type/runtime acceptance remains open in this source workspace because the Rust toolchain is unavailable.