Repository navigation
OmnXT Node v0.1.62
Node memory stabilization
This release follows the production investigation of slow RSS growth on long-lived, busy SimNet Node servers.
- Reclaim an empty SimNet FrameQueue entry immediately after its final frame is written, so a long-lived H2 carrier no longer retains one allocation per historical stream.
- Avoid creating an empty stream queue when a stream first hits the scheduler buffer limit.
- After a large SimNet user-registry refresh (10,000 or more users), drop the temporary working set and ask GNU libc to return completely free heap pages with malloc_trim(0).
- Keep the existing bounded glibc arena configuration from v0.1.61.
Source: SunGreatSage/OmnXT PR #47, merged into development as c88c0bf1c51eceefc5b9df225102d575e790b556.
Local build and verification
- Built locally with cargo-zigbuild 0.22.3 and Zig 0.14.0; GitHub Actions was not used.
- Targets: x86_64-unknown-linux-gnu.2.28 and aarch64-unknown-linux-gnu.2.28.
- Both omnxt-node and omncli are stripped ELF binaries with a maximum required glibc symbol version of 2.28.
- SimNet protocol tests passed: 126 unit tests and 5 protocol E2E tests.
- A 100,000-stream long-lived scheduler regression proves completed stream queues return to zero retained entries.
- The Node SimNet user hot-reload test and full-stack H2/TLS E2E test passed.
- Package checksums were verified after copying to /Users/mac/Project/Go/NP/OmnXT.