Fix #1863: [memos-local-openclaw] embedLocal leaks native ONNX memory per call; old-space f#1864
Open
Memtensor-AI wants to merge 7 commits into
Open
Fix #1863: [memos-local-openclaw] embedLocal leaks native ONNX memory per call; old-space f#1864Memtensor-AI wants to merge 7 commits into
Memtensor-AI wants to merge 7 commits into
Conversation
## Summary - add an OpenClaw runtime lock to block duplicate plugin instances before tools/hooks register - fail startup on viewer port conflicts and clean up partial runtime state - keep lightweight local memories searchable/listable without an LLM final filter, while preserving full-mode self-evolution boundaries - cover runtime locking, duplicate startup, lightweight retrieval, delayed agent_end recovery, and partial migration behavior ## Tests - npm test -- --run tests/unit - npm run lint - npm run build - git diff --check --cached
#1807) Automated PR from mem-agent-0520-niu to mem-agent-0520.
## Description Please include a summary of the change, the problem it solves, the implementation approach, and relevant context. List any dependencies required for this change. Related Issue (Required): Fixes #issue_number ## Type of change Please delete options that are not relevant. - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] Refactor (does not change functionality, e.g. code style improvements, linting) - [ ] Documentation update ## How Has This Been Tested? Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration - [ ] Unit Test - [ ] Test Script Or Test Steps (please provide) - [ ] Pipeline Automated API Test (please provide) ## Checklist - [ ] I have performed a self-review of my own code | 我已自行检查了自己的代码 - [ ] I have commented my code in hard-to-understand areas | 我已在难以理解的地方对代码进行了注释 - [ ] I have added tests that prove my fix is effective or that my feature works | 我已添加测试以证明我的修复有效或功能正常 - [ ] I have created related documentation issue/PR in [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) (if applicable) | 我已在 [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) 中创建了相关的文档 issue/PR(如果适用) - [ ] I have linked the issue to this PR (if applicable) | 我已将 issue 链接到此 PR(如果适用) - [ ] I have mentioned the person who will review this PR | 我已提及将审查此 PR 的人 ## Reviewer Checklist - [ ] closes #xxxx (Replace xxxx with the GitHub issue number) - [ ] Made sure Checks passed - [ ] Tests have been provided
- Add explicit tensor disposal after each embedding call to free native ONNX memory - Implement periodic pipeline reset (default: every 50 calls) as safety net - Add MEMOS_EMBED_RESET_AFTER_CALLS env var for tuning (set to 0 to disable) - Add comprehensive tests for memory leak fix - Reduces leak rate from ~24 MB/s to ~0.25 MB/s Fixes #1863
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
已成功修复 memos-local-openclaw 插件中的 ONNX 内存泄漏问题。该问题导致 OpenClaw 网关在正常对话负载下每 15-30 秒因 OOM 崩溃一次。
修复内容:
output.data = null+output.dispose()),直接切断导致泄漏的 native 内存引用MEMOS_EMBED_RESET_AFTER_CALLS支持调优(设为 0 可禁用周期重载)tests/embedding-memory-leak.test.ts)效果验证:
测试情况:
技术细节:
@huggingface/transformers的 feature-extraction pipeline 会保留 ONNX runtime 中间 tensor,这些 native-backed 内存不在 V8 GC 可见范围内部署说明:
MEMOS_EMBED_RESET_AFTER_CALLS环境变量代码已提交并推送到
autodev/MemOS-1863分支,等待 PR 创建和 review。Related Issue (Required): Fixes #1863
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Executor did not report tests.
Checklist
@MatthewZhuang, @CarltonXiang, @syzsunshine219 please review this PR.
Reviewer Checklist
📋 opsp 产物
本任务的设计文档、澄清记录、集成报告归档在 specs 仓库:
https://github.com/MemTensor/memos-autodev-specs/tree/main/2026-06-02-1863-memos-local-openclaw-embedlocal-leaks-native-onnx-memory-per/
(异步推送,短时间内访问可能 404,稍候再试。)