Skip to content

v1.2.12: Mirror refresh runs in a child process, keeping search responsive

Choose a tag to compare

@cyanheads cyanheads released this 02 Jun 04:37
· 8 commits to main since this release
v1.2.12
e33b362

Mirror refresh runs in a child process, keeping search responsive

The scheduled HTTP-mode OAI-PMH refresh now spawns a child process for its
SQLite writes. The harvest's synchronous applyBatch transactions and the
closing SELECT COUNT(*) execute off the request event loop, so arxiv_search
and arxiv_get_metadata stay responsive throughout the harvest window. (#22)

Fixed:

  • runRefreshSubprocess() replaces the in-process runHarvest() call in the
    HTTP cron — harvest writes no longer block request serving (#22)

Added:

  • ARXIV_MIRROR_REFRESH_TIMEOUT_MS (default 7200000, 2h) caps a single
    refresh; SIGTERM then SIGKILL on overrun

356 tests pass; bun run devcheck clean.