mirror of https://github.com/minio/minio.git
fix: avoid waiting on rebalance metadata (#20392)
rebalance metadata is good to have only, if it cannot be loaded when starting MinIO for some reason we can possibly ignore it and move on and let user start rebalance again if needed.
This commit is contained in:
parent
a0f9e9f661
commit
64e803b136
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2015-2023 MinIO, Inc.
|
||||
// Copyright (c) 2015-2024 MinIO, Inc.
|
||||
//
|
||||
// This file is part of MinIO Object Storage stack
|
||||
//
|
||||
|
@ -490,13 +490,10 @@ const (
|
|||
// in 'pool.bin', this is eventually used for decommissioning the pool.
|
||||
func (z *erasureServerPools) Init(ctx context.Context) error {
|
||||
// Load rebalance metadata if present
|
||||
err := z.loadRebalanceMeta(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to load rebalance data: %w", err)
|
||||
}
|
||||
|
||||
// Start rebalance routine
|
||||
if err := z.loadRebalanceMeta(ctx); err == nil {
|
||||
// Start rebalance routine if we can reload rebalance metadata.
|
||||
z.StartRebalance()
|
||||
}
|
||||
|
||||
meta := poolMeta{}
|
||||
if err := meta.load(ctx, z.serverPools[0], z.serverPools); err != nil {
|
||||
|
|
|
@ -110,19 +110,14 @@ var errRebalanceNotStarted = errors.New("rebalance not started")
|
|||
|
||||
func (z *erasureServerPools) loadRebalanceMeta(ctx context.Context) error {
|
||||
r := &rebalanceMeta{}
|
||||
err := r.load(ctx, z.serverPools[0])
|
||||
if err != nil {
|
||||
if errors.Is(err, errConfigNotFound) {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
if err := r.load(ctx, z.serverPools[0]); err == nil {
|
||||
z.rebalMu.Lock()
|
||||
z.rebalMeta = r
|
||||
z.updateRebalanceStats(ctx)
|
||||
z.rebalMu.Unlock()
|
||||
|
||||
} else if !errors.Is(err, errConfigNotFound) {
|
||||
rebalanceLogIf(ctx, fmt.Errorf("failed to load rebalance metadata, continue to restart rebalance as needed: %w", err))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue