-
Notifications
You must be signed in to change notification settings - Fork 574
Description
Summary
memory-lancedb-pro can crash OpenClaw Gateway with Illegal instruction (core dumped) on an older Intel CPU (Celeron J1800, likely non-AVX2). After fixing config/schema mismatches and validating the config successfully, the plugin still caused repeated gateway crashes in the LanceDB native module.
This does not look like a pure config problem anymore. It appears to be a native binary / CPU instruction compatibility problem in @lancedb/lancedb-linux-x64-gnu on older x86_64 hardware.
At the same time, I observed that stable v1.0.32 with a minimal config appears much more stable than v1.1.0-beta.6 on the same host.
Environment
- OpenClaw:
2026.3.8 - OS: Linux x86_64
- Node:
v22.x - CPU: Intel Celeron J1800
- Host type: older x86_64 machine, likely non-AVX2
- Plugin repo tested locally from source checkout
Plugin versions tested:
v1.1.0-beta.6v1.0.32
Dependency state observed:
memory-lancedb-pro@1.1.0-beta.6@lancedb/lancedb = ^0.26.2- local lockfile / installed version resolved to
0.26.2
Initial config problems (already solved)
Before reaching the actual crash, I also hit config/schema mismatches. These were corrected and are not the final blocker, but I’m including them because they may help improve docs.
Examples that caused schema validation failures:
-
selfImprovement.managementTools- current schema does not accept this under
selfImprovement - the accepted field is top-level
enableManagementTools
- current schema does not accept this under
-
memoryReflection.enabled- current schema does not accept this field
- current behavior is controlled via
sessionStrategy
After removing those unsupported fields and using a schema-valid config, the gateway still later crashed with Illegal instruction.
So there are really two separate issues:
- README / example config mismatch with current schema
- native crash after successful plugin registration on older CPU
What happens on v1.1.0-beta.6
With a schema-valid config, the plugin successfully registers:
memory-lancedb-pro@1.1.0-beta.6: plugin registeredself-improvement: integrated hooks registeredsession-strategy: using none
The gateway then continues booting, starts providers, and later crashes with core dump.
Observed systemd / journal signals:
Process ... dumped corestatus=4/ILLFailed with result 'core-dump'- repeated restart loop via systemd
The stack trace repeatedly points to:
/home/.../plugins/memory-lancedb-pro/node_modules/@lancedb/lancedb-linux-x64-gnu/lancedb.linux-x64-gnu.node
Example stack snippet:
#0 0x... n/a (.../lancedb.linux-x64-gnu.node + 0x4b83700)
#1 0x... n/a (.../lancedb.linux-x64-gnu.node + 0x4e4c144)
This happened repeatedly after apparently successful registration / startup.
What happens on stable v1.0.32
After checking out v1.0.32 and re-applying a minimal plugin config, I observed a much better result on the same host.
Relevant log lines:
memory-lancedb-pro@1.0.32: plugin registered (db: ..., model: jina-embeddings-v5-text-small)memory-lancedb-pro: initialized successfully (embedding: OK, retrieval: OK, mode: hybrid, FTS: enabled)memory-lancedb-pro: backup completed (52 entries -> ...memory-backup-2026-03-12.jsonl)
At least in this test window, stable did not immediately fall into the same crash loop that I saw with beta.
That said, stable v1.0.32 still declares:
@lancedb/lancedb ^0.26.2
So I’m not yet certain whether the difference comes from:
- a safer execution path in stable,
- different runtime behavior before hitting the problematic native code path,
- or something subtle in plugin feature flow rather than dependency version alone.
Why I suspect AVX2 / instruction-set compatibility
The crash mode is highly consistent with known older-CPU incompatibility:
- signal is
ILL/ illegal instruction - the failing module is the LanceDB native binary
- this machine is an old Intel Celeron J1800
This also appears consistent with similar upstream reports, for example:
lance-format/lance#2195lancedb/lancedb#592lancedb/lancedb#865
In particular, issue discussions around older Intel CPUs point toward AVX2-related incompatibility.
Minimal config used for the stable retest
This reduced config was used to minimize variables:
{
enabled: true,
config: {
embedding: {
provider: 'openai-compatible',
apiKey: '${JINA_API_KEY}',
model: 'jina-embeddings-v5-text-small',
baseURL: 'https://api.jina.ai/v1',
dimensions: 1024,
taskQuery: 'retrieval.query',
taskPassage: 'retrieval.passage',
normalized: true
},
dbPath: '~/.openclaw/memory/lancedb-pro',
autoCapture: true,
autoRecall: false,
retrieval: {
mode: 'hybrid',
vectorWeight: 0.7,
bm25Weight: 0.3,
minScore: 0.3,
rerank: 'cross-encoder',
rerankApiKey: '${JINA_API_KEY}',
rerankModel: 'jina-reranker-v3',
rerankProvider: 'jina',
candidatePoolSize: 20,
recencyHalfLifeDays: 14,
recencyWeight: 0.1,
filterNoise: true,
lengthNormAnchor: 500,
hardMinScore: 0.35,
timeDecayHalfLifeDays: 60,
reinforcementFactor: 0.5,
maxHalfLifeMultiplier: 3
}
}
}This config was successfully validated by OpenClaw before restart.
Questions
- Is
@lancedb/lancedb 0.26.2known to require AVX2 (or other newer CPU instructions) on Linux x64 builds? - Is there a recommended LanceDB version range for older non-AVX2 Intel CPUs?
- Is beta
v1.1.0-beta.6known to exercise a code path that is more likely to trigger this native crash than stablev1.0.32? - Is there a supported way to build / install LanceDB with more conservative CPU flags for older hardware?
- Could the README / docs explicitly warn about:
- schema differences in newer config examples,
- old Intel / non-AVX2 CPU compatibility,
- whether stable is safer than beta on older hosts?
Suggested documentation improvements
It would help a lot if the repo documented:
- supported CPU instruction assumptions for the prebuilt LanceDB native binary
- whether old x86_64 Intel CPUs (non-AVX2) are expected to work
- whether source build is required on such hosts
- which config fields are current / accepted vs obsolete README examples
Practical impact
On this machine, the plugin is not just failing its own features — in beta it can destabilize the entire OpenClaw gateway through repeated core dumps.
That makes CPU compatibility and documentation especially important for users deploying OpenClaw on older low-power x86 boxes.