diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go
index 1bae7b20ae4e962d4436b2d2c25889417efef2e3..697574b9e3c83a8413b9b313883a7e5977fdd2da 100644
--- a/registry/zookeeper/registry.go
+++ b/registry/zookeeper/registry.go
@@ -153,7 +153,6 @@ func (r *ZkRegistry) handleZkRestart() {
 		flag      bool
 		failTimes int
 		confIf    config.URL
-		services  []config.URL
 	)
 
 	defer r.wg.Done()
@@ -184,8 +183,7 @@ LOOP:
 					r.client.zkAddrs, jerrors.ErrorStack(err))
 				if err == nil {
 					// copy r.services
-					r.cltLock.Lock()
-					services = []config.URL{}
+					services := []config.URL{}
 					for _, confIf = range r.services {
 						services = append(services, confIf)
 					}
@@ -199,8 +197,8 @@ LOOP:
 							flag = false
 							break
 						}
+						log.Info("success to re-register service :%v", confIf.Key())
 					}
-					r.cltLock.Unlock()
 					if flag {
 						break
 					}
diff --git a/registry/zookeeper/zk_client.go b/registry/zookeeper/zk_client.go
index 729163755d6852fd73e130f8885bb0542a497730..3c3524f9f53b95d438dd99d9f67fa69410f18c62 100644
--- a/registry/zookeeper/zk_client.go
+++ b/registry/zookeeper/zk_client.go
@@ -294,8 +294,9 @@ func (z *zookeeperClient) RegisterTemp(basePath string, node string) (string, er
 		tmpPath, err = z.conn.Create(zkPath, data, zk.FlagEphemeral, zk.WorldACL(zk.PermAll))
 	}
 	z.Unlock()
-	if err != nil && err != zk.ErrNodeExists {
-		log.Error("conn.Create(\"%s\", zk.FlagEphemeral) = error(%v)\n", zkPath, jerrors.ErrorStack(err))
+	//if err != nil && err != zk.ErrNodeExists {
+	if err != nil {
+		log.Warn("conn.Create(\"%s\", zk.FlagEphemeral) = error(%v)\n", zkPath, jerrors.ErrorStack(err))
 		return "", jerrors.Trace(err)
 	}
 	log.Debug("zkClient{%s} create a temp zookeeper node:%s\n", z.name, tmpPath)