Skip to content

SIGSEGV in CREATE_FTS_INDEX on WSL2 (kernel 6.18, glibc 2.39) — @ladybugdb/core 0.15.4 #635

Description

@Ftarganski

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions