engine: Add non-blocking send in the shard's notification channel #1238

Merged
fyrchik merged 1 commit from acid-ant/frostfs-node:bugfix/unblock-send-new-epoch into master 2024-07-10 11:45:23 +00:00
2 changed files with 4 additions and 0 deletions

View file

@ -252,6 +252,7 @@ const (
ShardCantInitializeMetabaseMoveToADegradedreadonlyMode = "can't initialize metabase, move to a degraded-read-only mode"
ShardStopEventListenerByClosedEventChannel = "stop event listener by closed `event` channel"
ShardStopEventListenerByClosedStopChannel = "stop event listener by closed `stop` channel"
ShardEventProcessingInProgress = "event processing is in progress, skip the received"
ShardStopEventListenerByContext = "stop event listener by context"
ShardCouldNotSubmitGCJobToWorkerPool = "could not submit GC job to worker pool"
ShardGCIsStopped = "GC is stopped"

View file

@ -340,6 +340,9 @@ func (e *StorageEngine) HandleNewEpoch(ctx context.Context, epoch uint64) {
case <-ctx.Done():
return
case sh.NotificationChannel() <- ev:
default:
e.log.Debug(logs.ShardEventProcessingInProgress,
zap.Uint64("epoch", epoch), zap.Stringer("shard", sh.ID()))
}
}
}