Skip to content

Commit ad930e8

Browse files
committed
fix(jobs): classify ENETDOWN, ENETRESET and ENETUNREACH on a database query as connection failures
1 parent 06a6262 commit ad930e8

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

‎packages/utils/src/errors.test.ts‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ describe('classifyDatabaseFailure', () => {
103103
['EHOSTUNREACH', 'connect EHOSTUNREACH', 'connection'],
104104
['ENOTFOUND', 'getaddrinfo ENOTFOUND', 'connection'],
105105
['EAI_AGAIN', 'getaddrinfo EAI_AGAIN', 'connection'],
106+
['ENETDOWN', 'connect ENETDOWN', 'connection'],
107+
['ENETRESET', 'read ENETRESET', 'connection'],
108+
['ENETUNREACH', 'connect ENETUNREACH', 'connection'],
106109
])('classifies %s through a query wrapper', (code, message, expected) => {
107110
const wrapped = failedQuery(code, message)
108111
expect(classifyDatabaseFailure(wrapped)).toBe(expected)
@@ -132,6 +135,9 @@ describe('classifyDatabaseFailure', () => {
132135
'EHOSTUNREACH',
133136
'ENOTFOUND',
134137
'EAI_AGAIN',
138+
'ENETDOWN',
139+
'ENETRESET',
140+
'ENETUNREACH',
135141
])('treats %s with no database query in its chain as permanent', (code) => {
136142
const download = Object.assign(new Error(`socket ${code}`), { code })
137143
expect(classifyDatabaseFailure(download)).toBe('permanent')

‎packages/utils/src/errors.ts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ const SOCKET_CONNECTION_CODES = new Set([
108108
'EHOSTUNREACH',
109109
'ENOTFOUND',
110110
'EAI_AGAIN',
111+
'ENETDOWN',
112+
'ENETRESET',
113+
'ENETUNREACH',
111114
])
112115

113116
const CONNECTION_EXCEPTION_SQLSTATE = /^08[0-9A-Z]{3}$/

0 commit comments

Comments
 (0)