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) {
|
||||
main().catch(e => { console.error('[concierge]', e.message); process.exit(1); });
|
||||
|
||||
Reference in New Issue
Block a user