Fix container remove timeouts and make force-remove reliable.
Release rolling / release (push) Successful in 9m13s
Release rolling / release (push) Successful in 9m13s
Lifecycle RPCs now use a 120s operation timeout, remove cleans up stats/terminal/log streams then SIGKILLs before force-remove, and the UI awaits the request instead of a fragile 30s wait race.
This commit is contained in:
@@ -106,3 +106,20 @@ test('presentError can suppress toast when job drawer owns UI', (t) => {
|
||||
t.is(opts.toast, false)
|
||||
t.is(opts.tray, false)
|
||||
})
|
||||
|
||||
test('RPC timeout is operation timeout not connection problem', (t) => {
|
||||
const err = new Error('timeout of 30000ms exceeded')
|
||||
err.code = 'TIMEOUT_EXCEEDED'
|
||||
const info = explainError(err, 'removeContainer')
|
||||
t.is(info.code, 'TIMEOUT_EXCEEDED')
|
||||
t.ok(/timed out|timeout/i.test(info.title + info.message))
|
||||
t.absent(/connection problem/i.test(info.title))
|
||||
t.ok(/refresh|retry|docker/i.test(info.recovery))
|
||||
})
|
||||
|
||||
test('timeout message without code is not connection problem', (t) => {
|
||||
const err = new Error('timeout of 120000ms exceeded')
|
||||
const info = explainError(err, 'removeContainer')
|
||||
t.ok(/timed out|timeout/i.test(info.title))
|
||||
t.absent(/connection problem/i.test(info.title))
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user