diff --git a/packages/db/src/buffers/buffer.ts b/packages/db/src/buffers/buffer.ts index 20c8d61b..0b02e923 100644 --- a/packages/db/src/buffers/buffer.ts +++ b/packages/db/src/buffers/buffer.ts @@ -29,7 +29,7 @@ const getError = (e: unknown) => { 'Name: ' + e.name, 'Message: ' + e.message, 'Stack: ' + e.stack, - 'Cause: ' + e.cause, + 'Cause: ' + (e.cause ? String(e.cause) : ''), ].join('\n'); } return 'Unknown error'; diff --git a/packages/db/src/clickhouse-client.ts b/packages/db/src/clickhouse-client.ts index c9615674..0581fcf1 100644 --- a/packages/db/src/clickhouse-client.ts +++ b/packages/db/src/clickhouse-client.ts @@ -7,9 +7,10 @@ export const originalCh = createClient({ password: process.env.CLICKHOUSE_PASSWORD, database: process.env.CLICKHOUSE_DB, max_open_connections: 10, + request_timeout: 10000, keep_alive: { enabled: true, - idle_socket_ttl: 5000, + idle_socket_ttl: 8000, }, compression: { request: true, @@ -29,10 +30,11 @@ export const ch = new Proxy(originalCh, { } catch (error: unknown) { if ( error instanceof Error && - error.message.includes('socket hang up') + (error.message.includes('socket hang up') || + error.message.includes('Timeout error')) ) { - console.error( - `Caught socket hang up error on ${property.toString()}, retrying once.` + console.info( + `Caught ${error.message} error on ${property.toString()}, retrying once.` ); await new Promise((resolve) => setTimeout(resolve, 500)); try {