Skip to content

fix(server): avoid reference leaks on rejected session deletion - #1803

Merged
malatewang merged 2 commits into
MemMachine:mainfrom
mikemikimike:fix/1765-ref-leak
Oct 9, 2026
Merged

malatewang merged 2 commits into
MemMachine:mainfrom
mikemikimike:fix/1765-ref-leak

Conversation

@mikemikimike

Copy link
Copy Markdown
Contributor

Summary

  • Check a session's cache reference count before retrieving its instance, so a rejected deletion does not retain an extra reference.
  • Cover zero-capacity and bounded caches, including a successful retry after the active request releases its reference.

Validation

  • Focused manager tests: uv run --frozen --all-extras pytest packages/server/server_tests/memmachine_server/episodic_memory/test_episodic_memory_manager.py (15 passed).
  • Client tests: uv run --frozen --all-extras pytest packages/client/client_tests --cov=memmachine_client --cov-append (258 passed, 79 deselected).
  • Ruff lint/format, uv lock --check, and type checks for common/client (Python 3.10 and 3.14) and server (Python 3.12 and 3.14) passed.
  • Full server suite: 2,099 passed, 3 skipped, 3 failed due to OpenAI API request timeouts; the same timeouts were reproduced on the clean base.

Fixes #1765

Issue: #1765

@malatewang
malatewang merged commit 6fe7c2f into MemMachine:main Oct 9, 2026
44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A refused session delete leaks an instance reference: the session stays pinned in that process and every later delete there is refused

2 participants