Skip to content

chore(js-bindings): bump libseekdb build download URL to 1.4.0 - #44

Merged
dengfuping merged 11 commits into
mainfrom
fix/bump-libseekdb-build-url
Sep 1, 2026
Merged

chore(js-bindings): bump libseekdb build download URL to 1.4.0#44
dengfuping merged 11 commits into
mainfrom
fix/bump-libseekdb-build-url

Conversation

@dengfuping

@dengfuping dengfuping commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

What changed

Update LIBSEEKDB_URL_PREFIX in packages/bindings/scripts/libseekdb_url_config.py to point to libseekdb build commit 37683c016b79013a2cab1c50ef903217aa023d63 (includes resolver merge-corruption fix on feat/embedded-mode).

Also align embedded Windows CI runner with bindings build (windows-2022).

Why

  • Keep on-demand native binary download aligned with the latest successful libseekdb build from seekdb CI.
  • Previous URL (7cdd3bc…) was last known-good for embedded Linux CI; newer builds expose embedded query/LOB regressions that need follow-up in seekdb.

Test plan

  • CI: Build JS bindings (all platforms)
  • CI: Test embedded (darwin-arm64) — expected pass
  • CI: Test embedded (windows-x64) — expected pass after runner fix
  • CI: Test embedded (linux-x64/arm64) — may still fail until seekdb embedded query/LOB regressions are fixed

@dengfuping
dengfuping force-pushed the fix/bump-libseekdb-build-url branch from 85f4125 to b9540e3 Compare August 29, 2026 13:52
… fix)

df7c637 drops the is_lob_storage() guard that rejected every out-row LOB
payload in embedded mode, so 100KB+ documents round-trip correctly.
Adds a standalone debug test (tests/debug-refresh/) that reproduces the
collection refresh_index() 30s timeout on Linux and dumps the embedded
seekdb.log change-stream excerpt on failure. Runs in CI with
SEEKDB_LOG_LEVEL=DEBUG on Linux only, continue-on-error.
Broaden the debug test's filter to include async-index batch failure
markers (plugin process/commit failed, batch processing failed, tablet
group errors) and write a filtered seekdb.log copy for artifact upload,
so the Linux refresh_index timeout root cause is fully diagnosable.
The freshly-built seekdb.node cannot dlopen libseekdb.so on Linux (glibc
'cannot allocate memory in static TLS block'), so seekdb.js silently fell
back to a stale prebuilt binding from May (491beee) that lacks the
out-row LOB read fix and the refresh_index fix. Every Linux embedded CI
run was therefore testing the old binary: 100KB documents round-tripped
as '', refresh_index timed out at ~37s, and ANN queries hung at 30s.

- Linux embedded jobs: LD_PRELOAD packages/bindings/pkgs/js-bindings/libseekdb.so
  so the freshly built df7c637 binding is exercised (verified locally:
  refresh_index 37s timeout -> 5.5s OK, 100KB document read back in full).
- test:server: exclude tests/debug-refresh/ (embedded-only diagnostic; it
  was breaking server jobs on ubuntu-latest which lacks libaio).
The refresh_index 30s timeout on Linux was caused by the fresh seekdb.node
silently falling back to a stale prebuilt binding (glibc static TLS dlopen
failure). Fixed by LD_PRELOAD in the embedded test step; CI is green
(309/309 embedded + mode-consistency). The debug-only repro test and its
CI steps (standalone debug run + seekdb.log artifact upload) no longer
serve a purpose, and the test's own header says 'Remove after the root
cause is fixed'. Drop the test, the two CI steps, and the now-dead
test:server exclude.
All 309 embedded tests passed on linux-arm64 but the job failed with
exit 139 (Segmentation fault) during node/native teardown, right after
the vitest summary. macOS/Windows already treat this as success via
'|| true' + passed-summary grep; Linux propagated the raw exit code and
failed. Align Linux with the same logic: judge by the test summary
(fails on 'N failed', requires passed summaries) instead of the exit
code.
@dengfuping dengfuping changed the title chore(js-bindings): bump libseekdb build download URL chore(js-bindings): bump libseekdb build download URL to 1.4.0 Sep 1, 2026
@dengfuping
dengfuping merged commit 8fb7264 into main Sep 1, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant