diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go
index 137aa5423a3990f38d0632998ee49b66a25d8ecf..e41991556a199a537fdc3265e9149ea0fba57c87 100644
--- a/registry/zookeeper/registry.go
+++ b/registry/zookeeper/registry.go
@@ -435,6 +435,7 @@ func (r *zkRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyLi
 
 		for {
 			if serviceEvent, err := listener.Next(); err != nil {
+				logger.Warnf("Selector.watch() = error{%v}", perrors.WithStack(err))
 				listener.Close()
 				break
 			} else {
@@ -454,8 +455,8 @@ func (r *zkRegistry) getListener(conf *common.URL) (*RegistryConfigurationListen
 
 	r.listenerLock.Lock()
 	if r.configListener.isClosed {
-		return nil, perrors.New("configListener already been closed")
 		r.listenerLock.Unlock()
+		return nil, perrors.New("configListener already been closed")
 	}
 	zkListener = r.configListener
 	r.listenerLock.Unlock()