atproto relay in zig zlay.waow.tech
relay zig atproto
Something went wrong. Try again.
fix cross-Io heap corruption: GC loop and health checks were using Threaded pg.Pool from Evented fibers master
- move GC loop from io.concurrent() (Evented fiber) to std.Thread.spawn() with pool_io (Threaded) — dp.gc() takes Threaded mutex + queries pg.Pool, which dereferences NULL Thread.current() threadlocal when called from Evented context → heap corruption / SIGSEGV - replace direct pg.Pool "SELECT 1" health checks with atomic last_db_success timestamp — metrics server and API router both run on Evented, pg.Pool runs on Threaded — isDbHealthy() reads an atomic set by Threaded workers, safe from any Io context Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author zzstoatzz Co-author Claude Opus 4.6 Date (Apr 4, 2026, 6:11 AM UTC) Commit 2156d080 2156d080986824fe9448f35fd855e3a290659521 Parent 72ba680f 72ba680fc7ed5c809fc3dab91ac0854de51daaca