• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

carlobeltrame / ecamp3 / 30014186416
34%
devel: 43%

Build:
Build:
LAST BUILD BRANCH: investigate/pdf-hang-determinism
DEFAULT BRANCH: devel
Ran 23 Jul 2026 02:08PM UTC
Jobs 2
Files 635
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Jul 2026 02:05PM UTC coverage: 33.791%. Remained the same
30014186416

push

github

carlobeltrame
fix(print): patch pdfkit nextTick to use queueMicrotask instead of setTimeout(0)

Fix the Firefox worker hang at its true source instead of working around it.

pdfkit's browser build drives all of its async work - zlib for object and image
compression, and readable-stream completion ('data'/'end') - through its bundled
process/browser nextTick polyfill, which schedules via setTimeout(fun, 0). Under
heavy load (a Firefox web worker on a busy CI host) those setTimeout(0) callbacks
starve, so the final deflate/flush callbacks never run, 'end' never fires and
toBlob() hangs forever. Disabling compression only removed the object-compression
part; image zlib and stream completion still stalled, so the flake persisted.

Patch runTimeout() to schedule via queueMicrotask instead. Microtasks run at the
end of the current microtask checkpoint and never starve behind macrotask/CPU
load, which matches Node's process.nextTick semantics more closely. This drains
the whole pipeline promptly regardless of load.

With the scheduler fixed, revert the app-side workaround: toBlob() goes back to
the simple 'data'/'end' drain and the sync-drain helper/test are removed.
compress=false is kept for now and will be revisited once CI confirms this holds.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KQ8DeKNRbyq2fLVAqdJfof

671 of 4489 branches covered (14.95%)

Branch coverage included in aggregate %.

4444 of 10648 relevant lines covered (41.74%)

63.95 hits per line

Jobs
ID Job ID Ran Files Coverage
1 api - 30014186416.1 23 Jul 2026 02:09PM UTC 242
88.23
GitHub Action Run
2 frontend - 30014186416.2 23 Jul 2026 02:08PM UTC 393
16.16
GitHub Action Run
Source Files on build 30014186416
  • Tree
  • List 635
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30014186416
  • a632596e on github
  • Prev Build on fix-react-pdf-upgrade (#30009113026)
  • Next Build on fix-react-pdf-upgrade (#30015143028)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc