Summary
CALL CREATE_FTS_INDEX(...) segfaults (SIGSEGV, process exit 139) via the Node binding @ladybugdb/core@0.15.4 on WSL2. It is fully reproducible with a 2-row table and any stemmer (porter and none both crash), so it is not data-, scale-, or stemmer-dependent.
Everything else works: module load, Database/Connection, CREATE NODE TABLE, COPY, MATCH, and even LOAD EXTENSION fts all succeed. Only the CREATE_FTS_INDEX call crashes the process.
Environment
|
|
| @ladybugdb/core |
0.15.4 (VERSION 0.15.4, STORAGE_VERSION 40) |
| Binding |
Node.js (@ladybugdb/core-linux-x64/lbugjs.node) |
| OS |
Ubuntu 24.04.1 LTS on WSL2 |
| Kernel |
6.18.33.1-microsoft-standard-WSL2 |
| glibc |
2.39 |
| Node |
v22.23.1 |
| CPU |
Intel Core i3-10100 — flags include avx avx2 but no avx512 |
ldd lbugjs.node shows no missing shared libraries (libm, libgcc_s, libc only).
Minimal reproduction
// node repro.mjs → exits with signal SIGSEGV (139) on the last line
import lbug from '@ladybugdb/core';
const db = new lbug.Database('/tmp/ladybug_fts_probe');
const conn = new lbug.Connection(db);
await conn.query("CREATE NODE TABLE Doc(id STRING, body STRING, PRIMARY KEY(id))"); // ok
// /tmp/docs.csv contains: id,body\n1,hello world alpha\n2,beta gamma text
await conn.query('COPY Doc FROM "/tmp/docs.csv" (HEADER=true)'); // ok
await conn.query('LOAD EXTENSION fts'); // ok
await conn.query("CALL CREATE_FTS_INDEX('Doc','doc_idx',['body'], stemmer := 'porter')"); // 💥 SIGSEGV
Observed:
stemmer := 'none' → same SIGSEGV.
- Single-row table → same SIGSEGV.
- The crash is a hard native signal — it cannot be caught by a JS
try/catch, so it takes down the whole process.
Impact
This makes the FTS extension unusable on this platform. Downstream tools that build an FTS index during indexing crash mid-run. Consumers can only work around it by skipping CREATE_FTS_INDEX entirely (losing full-text search).
Questions / possible leads
- Does the prebuilt
linux-x64 FTS extension assume an instruction set (e.g. AVX-512) not present on this CPU? (A missing-ISA crash would more typically be SIGILL, but worth ruling out.)
- Is this specific to the very recent WSL2 kernel line (6.18) / glibc 2.39?
- Would a debug build or a stack trace from the native side help? Happy to run further diagnostics.
Summary
CALL CREATE_FTS_INDEX(...)segfaults (SIGSEGV, process exit 139) via the Node binding@ladybugdb/core@0.15.4on WSL2. It is fully reproducible with a 2-row table and any stemmer (porterandnoneboth crash), so it is not data-, scale-, or stemmer-dependent.Everything else works: module load,
Database/Connection,CREATE NODE TABLE,COPY,MATCH, and evenLOAD EXTENSION ftsall succeed. Only theCREATE_FTS_INDEXcall crashes the process.Environment
0.15.4(VERSION0.15.4, STORAGE_VERSION40)@ladybugdb/core-linux-x64/lbugjs.node)6.18.33.1-microsoft-standard-WSL2avx avx2but no avx512ldd lbugjs.nodeshows no missing shared libraries (libm,libgcc_s,libconly).Minimal reproduction
Observed:
stemmer := 'none'→ same SIGSEGV.try/catch, so it takes down the whole process.Impact
This makes the FTS extension unusable on this platform. Downstream tools that build an FTS index during indexing crash mid-run. Consumers can only work around it by skipping
CREATE_FTS_INDEXentirely (losing full-text search).Questions / possible leads
linux-x64FTS extension assume an instruction set (e.g. AVX-512) not present on this CPU? (A missing-ISA crash would more typically be SIGILL, but worth ruling out.)