bunqueue v2.6.21
blog · release
bunqueue v2.6.21
Fixes 1 bug and ships 2 performance improvements. Batch push notifyBatch(): Batch push now wakes all waiting workers correctly via notifyBatch(N) instead of a single notify() call.
To install bunqueue v2.6.21
Section titled “To install bunqueue v2.6.21”bun add bunqueue@2.6.21npm install bunqueue@2.6.21To upgrade bunqueue
Section titled “To upgrade bunqueue”bun add bunqueue@latestPerformance
Section titled “Performance”- Batch push notifyBatch(): Batch push now wakes all waiting workers correctly via
notifyBatch(N)instead of a singlenotify()call. Each waiter is woken up individually, fixing a bug where only 1 of N workers received jobs immediately. - Pre-compiled HTTP route regexes: All 40+ regex patterns in HTTP route files are now compiled once at module load instead of per-request (~100µs/request savings).
Security
Section titled “Security”- constantTimeEqual timing fix: Removed early return on length mismatch that leaked token length via timing side-channel.
- Batch PUSHB data validation: Individual job data size is now validated in batch push (was only checked in single PUSH), preventing 10MB limit bypass.
- Dashboard queue name validation:
GET /dashboard/queues/:queuenow validates queue names like all other endpoints. - Error message sanitization: SQLite/database error messages are no longer leaked to clients in TCP and HTTP error responses.
Bugfixes
Section titled “Bugfixes”- Silent error swallowing: Replaced 7 empty
.catch(() => {})blocks with proper error logging in addBatcher flush, sandboxed worker stop/kill/restart/heartbeat paths.
Thanks to 1 contributor!
Section titled “Thanks to 1 contributor!”← bunqueue v2.6.20 · Release on GitHub · Commits since v2.6.19 · Full changelog · All posts