You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OperationalError: disk I/O error
(4 additional frame(s) were not displayed)
...
File "github_agent_bridge/persistence/runtime.py", line 71, in record_worker_heartbeat
with self.database.transaction(
File "contextlib.py", line 141, in __enter__
return next(self.gen)
File "github_agent_bridge/persistence/database.py", line 111, in transaction
con = self.read_write()
File "github_agent_bridge/persistence/database.py", line 70, in read_write
self._configure(con, read_only=False)
File "github_agent_bridge/persistence/database.py", line 185, in _configure
journal_mode = str(con.execute("PRAGMA journal_mode").fetchone()[0]).lower()
This issue was automatically created by Sentry via Github Issue
He obert la PR #348 amb un fix fail-closed: el disk I/O error del heartbeat no es tracta com a contenció ni es reintenta, sinó que ara queda supervisat, atura tot l’executor i deixa que systemd el reiniciï. Abans moria només el thread daemon de heartbeat i el pool podia continuar treballant sense senyal de salut.
També s’evita que una segona escriptura de heartbeat emmascari l’excepció original del worker. Regressió coberta i suite completa verificada: 714 tests passats.
Si l’error d’I/O es repeteix després del deploy, caldrà revisar filesystem/dispositiu: el canvi el conté correctament, però no intenta amagar ni “curar” una fallada física de storage.
Revalidació final de la PR #348 contra el main actual:
branca 0 commits darrere i 1 davant; estat MERGEABLE/CLEAN al commit 3eadccc;
regressió específica: 4 tests passats;
suite local completa: 714 tests passats;
CI: Python 3.11, Python 3.12 i dashboard, tots verds;
diff-check i worktree nets.
He revisat també el camí de fallada: un error fatal del heartbeat queda registrat al canal supervisat de workers, activa el shutdown global i permet que systemd reiniciï el procés; el tractament existent de contenció SQLite es manté intacte. No cal ampliar el patch.
Això resol la contenció fail-closed del procés, però no substitueix la recuperació ni la vigilància de capacitat del filesystem, que continua separada a #350.
Activity
giscebot commentedon Nov 11, 2026
He obert la PR #348 amb un fix fail-closed: el
disk I/O errordel heartbeat no es tracta com a contenció ni es reintenta, sinó que ara queda supervisat, atura tot l’executor i deixa que systemd el reiniciï. Abans moria només el thread daemon de heartbeat i el pool podia continuar treballant sense senyal de salut.També s’evita que una segona escriptura de heartbeat emmascari l’excepció original del worker. Regressió coberta i suite completa verificada: 714 tests passats.
PR: #348
Si l’error d’I/O es repeteix després del deploy, caldrà revisar filesystem/dispositiu: el canvi el conté correctament, però no intenta amagar ni “curar” una fallada física de storage.
giscebot commentedon Nov 11, 2026
Revalidació final de la PR #348 contra el main actual:
He revisat també el camí de fallada: un error fatal del heartbeat queda registrat al canal supervisat de workers, activa el shutdown global i permet que systemd reiniciï el procés; el tractament existent de contenció SQLite es manté intacte. No cal ampliar el patch.
Això resol la contenció fail-closed del procés, però no substitueix la recuperació ni la vigilància de capacitat del filesystem, que continua separada a #350.
PR preparada per revisió i merge: #348