diff --git a/remoting/kubernetes/listener.go b/remoting/kubernetes/listener.go
index c87559e7f4b5496dc9cced711b8aabbb4b630a51..da6d8351590c29ab6ce7f53cee3263d235620c6f 100644
--- a/remoting/kubernetes/listener.go
+++ b/remoting/kubernetes/listener.go
@@ -166,6 +166,12 @@ func (l *EventListener) ListenServiceEvent(key string, listener remoting.DataLis
 	}
 
 	l.keyMapLock.Lock()
+	// double check
+	if _, ok := l.keyMap[key]; ok {
+		// another goroutine already set it
+		l.keyMapLock.Unlock()
+		return
+	}
 	l.keyMap[key] = struct{}{}
 	l.keyMapLock.Unlock()