fix: wrapped error will not equal in decommissioning (#16113)

This commit is contained in:
jiuker 2022-11-25 00:00:42 +08:00 committed by GitHub
parent 97eb7dbf5f
commit fe8eed963e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -539,21 +539,18 @@ func (z *erasureServerPools) Init(ctx context.Context) error {
r := rand.New(rand.NewSource(time.Now().UnixNano())) r := rand.New(rand.NewSource(time.Now().UnixNano()))
for { for {
if err := z.Decommission(ctx, pool.ID); err != nil { if err := z.Decommission(ctx, pool.ID); err != nil {
switch err { if errors.Is(err, errDecommissionAlreadyRunning) {
// we already started decommission
case errDecommissionAlreadyRunning:
// A previous decommission running found restart it. // A previous decommission running found restart it.
z.doDecommissionInRoutine(ctx, idx) z.doDecommissionInRoutine(ctx, idx)
return return
default:
if configRetriableErrors(err) {
logger.LogIf(ctx, fmt.Errorf("Unable to resume decommission of pool %v: %w: retrying..", pool, err))
time.Sleep(time.Second + time.Duration(r.Float64()*float64(5*time.Second)))
continue
}
logger.LogIf(ctx, fmt.Errorf("Unable to resume decommission of pool %v: %w", pool, err))
return
} }
if configRetriableErrors(err) {
logger.LogIf(ctx, fmt.Errorf("Unable to resume decommission of pool %v: %w: retrying..", pool, err))
time.Sleep(time.Second + time.Duration(r.Float64()*float64(5*time.Second)))
continue
}
logger.LogIf(ctx, fmt.Errorf("Unable to resume decommission of pool %v: %w", pool, err))
return
} }
break break
} }