concierge: ecouteur 'error' sur le client pg (evite une mort silencieuse)
Un 'error' socket du client pg SANS ecouteur = exception non capturee qui echappe au
try/catch et TUE le process -- donc l'alerte d'echec d'auth ne partirait jamais ("un
battement dans un process mort ne bat pas", piege signale par EVCS). makeClient attache
desormais un ecouteur : l'erreur devient non fatale, l'await en cours rejette et reste
rattrape par l'etage live.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZsbhyGmRwZogdoBwT6C6y
This commit is contained in:
@@ -207,7 +207,15 @@ async function main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function makeClient() { return new Client({ ...PG_BASE, password: readPgPassword() }); }
|
function makeClient() {
|
||||||
|
const c = new Client({ ...PG_BASE, password: readPgPassword() });
|
||||||
|
// Un 'error' socket (backend qui tombe, connexion coupée) SANS écouteur devient une
|
||||||
|
// exception NON capturée qui échappe au try/catch et TUE le process (piège signalé par
|
||||||
|
// EVCS 16/09 : « un battement dans un process mort ne bat pas »). On l'écoute pour le
|
||||||
|
// rendre non fatal ; l'opération await en cours rejette et reste rattrapée normalement.
|
||||||
|
c.on('error', (e) => { console.error('[pg] socket error (non fatal):', e.message); });
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
main().catch(e => { console.error('[concierge]', e.message); process.exit(1); });
|
main().catch(e => { console.error('[concierge]', e.message); process.exit(1); });
|
||||||
|
|||||||
Reference in New Issue
Block a user