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.