From 454d7cf9af128e2163083007fde2d31c8f6b7b7f Mon Sep 17 00:00:00 2001 From: pantianying <pantianying@gmail.com> Date: Sat, 4 Jul 2020 14:46:47 +0800 Subject: [PATCH] fix waitGroup --- registry/zookeeper/listener.go | 1 - registry/zookeeper/registry.go | 3 ++- remoting/zookeeper/listener.go | 12 ++++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/registry/zookeeper/listener.go b/registry/zookeeper/listener.go index c5b2f33c6..816e39bef 100644 --- a/registry/zookeeper/listener.go +++ b/registry/zookeeper/listener.go @@ -111,7 +111,6 @@ type RegistryConfigurationListener struct { // NewRegistryConfigurationListener for listening the event of zk. func NewRegistryConfigurationListener(client *zk.ZookeeperClient, reg *zkRegistry) *RegistryConfigurationListener { - reg.WaitGroup().Add(1) return &RegistryConfigurationListener{client: client, registry: reg, events: make(chan *config_center.ConfigChangeEvent, 32), isClosed: false, close: make(chan struct{}, 1)} } diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go index 1e7bd08ad..04316bd9d 100644 --- a/registry/zookeeper/registry.go +++ b/registry/zookeeper/registry.go @@ -134,6 +134,7 @@ func (r *zkRegistry) InitListeners() { regConfigListener.Close() } newDataListener.SubscribeURL(conf, NewRegistryConfigurationListener(r.client, r)) + r.WaitGroup().Add(1) go r.listener.ListenServiceEvent(conf, fmt.Sprintf("/dubbo/%s/"+constant.DEFAULT_CATEGORY, url.QueryEscape(conf.Service())), newDataListener) } @@ -259,7 +260,7 @@ func (r *zkRegistry) getListener(conf *common.URL) (*RegistryConfigurationListen //Interested register to dataconfig. r.dataListener.SubscribeURL(conf, zkListener) - + r.WaitGroup().Add(1) go r.listener.ListenServiceEvent(conf, fmt.Sprintf("/dubbo/%s/"+constant.DEFAULT_CATEGORY, url.QueryEscape(conf.Service())), r.dataListener) return zkListener, nil diff --git a/remoting/zookeeper/listener.go b/remoting/zookeeper/listener.go index 5188ce8c4..1ffea88a8 100644 --- a/remoting/zookeeper/listener.go +++ b/remoting/zookeeper/listener.go @@ -77,13 +77,21 @@ func (l *ZkEventListener) ListenServiceNodeEvent(zkPath string, listener ...remo case zk.EventNodeDataChanged: logger.Warnf("zk.ExistW(key{%s}) = event{EventNodeDataChanged}", zkPath) if len(listener) > 0 { - content, _, _ := l.client.Conn.Get(zkEvent.Path) + content, _, err := l.client.Conn.Get(zkEvent.Path) + if err != nil { + logger.Warnf("zk.Conn.Get{key:%s} = error{%v}", zkPath, err) + return false + } listener[0].DataChange(remoting.Event{Path: zkEvent.Path, Action: remoting.EventTypeUpdate, Content: string(content)}) } case zk.EventNodeCreated: logger.Warnf("zk.ExistW(key{%s}) = event{EventNodeCreated}", zkPath) if len(listener) > 0 { - content, _, _ := l.client.Conn.Get(zkEvent.Path) + content, _, err := l.client.Conn.Get(zkEvent.Path) + if err != nil { + logger.Warnf("zk.Conn.Get{key:%s} = error{%v}", zkPath, err) + return false + } listener[0].DataChange(remoting.Event{Path: zkEvent.Path, Action: remoting.EventTypeAdd, Content: string(content)}) } case zk.EventNotWatching: -- GitLab