Repository navigation
1.1.1 - 2026-06-17
·
408 commits
to 7dc3517a0ede5d985b61aed648635dab3a8b5989
since this release
Release Notes
Bounds warm-worker memory so a misconfigured idle timeout can no longer
accumulate resident workers until the host runs out of memory.
Fixed
- Warm-worker accumulation / OOM: the warm worker keeps the embedding model
(~400 MB on CPU) resident, and the idle timeout was the only reaper for
idle/orphaned workers. WithMEMD_WARM_IDLE_TIMEOUT_SECS=0every per-data-dir
worker became immortal, so many ephemeral data dirs (e.g. per-test / per-run
.memddirectories) could pile up hundreds of workers and exhaust host RAM.
Three independent guards now prevent this and makeidle=0safe again:- a resident-worker cap (
MEMD_WARM_MAX_WORKERS, default 16, cannot be
disabled):warm startrefuses to spawn beyond the cap and the client falls
back to the cold path (or errors under--warm required); - idle-independent orphan eviction: a worker whose published pid file no
longer names it has been replaced (bind+rename race) and exits within ~60 s,
even when the idle reaper is disabled; - an ephemeral-data-dir guard: auto-warm is skipped for
pytest-of-data
dirs (the accumulation vector), overridable withMEMD_WARM_ALLOW_EPHEMERAL=1.
- a resident-worker cap (
Added
MEMD_WARM_MAX_WORKERS: hard ceiling on concurrent warm workers (default
16);0or an invalid value falls back to the default — the cap cannot be
disabled.MEMD_WARM_ALLOW_EPHEMERAL: opt ephemeral (pytest-of-) data dirs back
into auto-warm.
Install memd 1.1.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/fmschulz/memd/releases/download/v1.1.1/memd-installer.sh | shDownload memd 1.1.1
| File | Platform | Checksum |
|---|---|---|
| memd-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| memd-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| memd-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| memd-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |