metropolis/pkg/supervisor: simplify error unwrap and comparison
Change-Id: I09ac13eb507197b8326820eef49760831683787f
Reviewed-on: https://review.monogon.dev/c/monogon/+/3044
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/pkg/supervisor/supervisor_processor.go b/metropolis/pkg/supervisor/supervisor_processor.go
index b88d1a0..2c583ff 100644
--- a/metropolis/pkg/supervisor/supervisor_processor.go
+++ b/metropolis/pkg/supervisor/supervisor_processor.go
@@ -274,19 +274,9 @@
return
}
- // Find innermost error to check if it's a context canceled error.
- perr := r.err
- for {
- if inner := errors.Unwrap(perr); inner != nil {
- perr = inner
- continue
- }
- break
- }
-
// Simple case: the context was canceled and the returned error is the
// context error.
- if err := ctx.Err(); err != nil && perr == err {
+ if r.err != nil && ctx.Err() != nil && errors.Is(r.err, ctx.Err()) {
// Mark the node as canceled successfully.
n.state = nodeStateCanceled
return