Ladybug version
0.18.1
What operating system are you using?
Windows 11 x64
What happened?
Problem
On a clean Windows installation, the FTS extension cannot load because it depends on two OpenSSL 3 libraries that are not distributed with either @ladybugdb/core or the downloaded extension:
libssl-3-x64.dll
libcrypto-3-x64.dll
INSTALL fts successfully downloads libfts.lbug_extension, but LOAD EXTENSION fts fails with Windows error 126: “The specified module could not be found.”
Inspection of the extension's import table confirms that it imports both OpenSSL DLLs.
Diagnostic workaround
Prepending an existing OpenSSL 3 installation to PATH makes the same extension load successfully. For example, Git for Windows happens to contain compatible DLLs on some machines:
$env:Path = "C:\Program Files\Git\mingw64\bin;$env:Path"
node .\repro.mjs
This confirms the missing dependency, but relying on another application's private DLLs is not a safe deployment solution.
Expected behavior
The Windows FTS extension should work on a clean supported Windows installation.
Possible fixes include:
- Distribute the required OpenSSL DLLs beside
libfts.lbug_extension.
- Statically link OpenSSL into the Windows extension.
- If users must install OpenSSL themselves, document the requirement and report the exact missing DLL rather than the generic Windows error 126.
A clean-Windows CI test should install and load FTS without inheriting OpenSSL from Git, Conda, or another tool's PATH.
Impact
Applications using LadybugDB cannot reliably enable FTS on Windows. Behavior currently depends on unrelated software having placed compatible OpenSSL DLLs on the machine's PATH.
Related issues
Are there known steps to reproduce?
// repro.mjs
import lbug from "@ladybugdb/core";
const db = new lbug.Database("./fts-repro.lbug");
const conn = new lbug.Connection(db);
try {
await conn.query("INSTALL fts");
await conn.query("LOAD EXTENSION fts");
console.log("FTS loaded successfully");
} catch (error) {
console.error(error);
process.exitCode = 1;
} finally {
await conn.close();
await db.close();
}
npm install @ladybugdb/core@0.18.1
where.exe libssl-3-x64.dll
where.exe libcrypto-3-x64.dll
node .\repro.mjs
On a clean machine, both where.exe checks report that the files cannot be found and the extension fails to load.
Ladybug version
0.18.1
What operating system are you using?
Windows 11 x64
What happened?
Problem
On a clean Windows installation, the FTS extension cannot load because it depends on two OpenSSL 3 libraries that are not distributed with either
@ladybugdb/coreor the downloaded extension:libssl-3-x64.dlllibcrypto-3-x64.dllINSTALL ftssuccessfully downloadslibfts.lbug_extension, butLOAD EXTENSION ftsfails with Windows error 126: “The specified module could not be found.”Inspection of the extension's import table confirms that it imports both OpenSSL DLLs.
Diagnostic workaround
Prepending an existing OpenSSL 3 installation to
PATHmakes the same extension load successfully. For example, Git for Windows happens to contain compatible DLLs on some machines:This confirms the missing dependency, but relying on another application's private DLLs is not a safe deployment solution.
Expected behavior
The Windows FTS extension should work on a clean supported Windows installation.
Possible fixes include:
libfts.lbug_extension.A clean-Windows CI test should install and load FTS without inheriting OpenSSL from Git, Conda, or another tool's
PATH.Impact
Applications using LadybugDB cannot reliably enable FTS on Windows. Behavior currently depends on unrelated software having placed compatible OpenSSL DLLs on the machine's
PATH.Related issues
Are there known steps to reproduce?
On a clean machine, both
where.exechecks report that the files cannot be found and the extension fails to load.