Skip to content

OmnXT Node v0.1.62

Choose a tag to compare

@EUForest EUForest released this 03 Aug 03:39
· 3 commits to main since this release

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.