diff --git a/pkg/morph/event/listener.go b/pkg/morph/event/listener.go index a210fd85f..af6ed3049 100644 --- a/pkg/morph/event/listener.go +++ b/pkg/morph/event/listener.go @@ -250,7 +250,12 @@ loop: continue loop } - l.parseAndHandleNotification(notifyEvent) + if err = l.pool.Submit(func() { + l.parseAndHandleNotification(notifyEvent) + }); err != nil { + l.log.Warn("listener worker pool drained", + zap.Int("capacity", l.pool.Cap())) + } case notaryEvent, ok := <-notaryChan: if !ok { l.log.Warn("stop event listener by notary channel")