This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
The following commit(s) were added to refs/heads/main by this push:
new 12f5211c8 ignore zk node already exist when store provider/consumer
metadata (#2311)
12f5211c8 is described below
commit 12f5211c8013d97bf16159e9ff2eb0e67644873b
Author: Leo Shen <[email protected]>
AuthorDate: Sat Jun 3 15:49:46 2023 +0800
ignore zk node already exist when store provider/consumer metadata (#2311)
---
metadata/report/zookeeper/report.go | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/metadata/report/zookeeper/report.go
b/metadata/report/zookeeper/report.go
index 6e2525da9..9a55865a8 100644
--- a/metadata/report/zookeeper/report.go
+++ b/metadata/report/zookeeper/report.go
@@ -28,6 +28,7 @@ import (
gxset "github.com/dubbogo/gost/container/set"
gxzookeeper "github.com/dubbogo/gost/database/kv/zk"
"github.com/dubbogo/gost/log/logger"
+ perrors "github.com/pkg/errors"
)
import (
@@ -79,7 +80,7 @@ func (m *zookeeperMetadataReport)
PublishAppMetadata(metadataIdentifier *identif
return err
}
err = m.client.CreateWithValue(k, data)
- if err == zk.ErrNodeExists {
+ if perrors.Is(err, zk.ErrNodeExists) {
logger.Debugf("Try to create the node data failed. In most
cases, it's not a problem. ")
return nil
}
@@ -89,13 +90,23 @@ func (m *zookeeperMetadataReport)
PublishAppMetadata(metadataIdentifier *identif
// StoreProviderMetadata stores the metadata.
func (m *zookeeperMetadataReport) StoreProviderMetadata(providerIdentifier
*identifier.MetadataIdentifier, serviceDefinitions string) error {
k := m.rootDir + providerIdentifier.GetFilePathKey()
- return m.client.CreateWithValue(k, []byte(serviceDefinitions))
+ err := m.client.CreateWithValue(k, []byte(serviceDefinitions))
+ if perrors.Is(err, zk.ErrNodeExists) {
+ logger.Debugf("Try to store provider metadata failed. In most
cases, it's not a problem. ")
+ return nil
+ }
+ return err
}
// StoreConsumerMetadata stores the metadata.
func (m *zookeeperMetadataReport)
StoreConsumerMetadata(consumerMetadataIdentifier
*identifier.MetadataIdentifier, serviceParameterString string) error {
k := m.rootDir + consumerMetadataIdentifier.GetFilePathKey()
- return m.client.CreateWithValue(k, []byte(serviceParameterString))
+ err := m.client.CreateWithValue(k, []byte(serviceParameterString))
+ if perrors.Is(err, zk.ErrNodeExists) {
+ logger.Debugf("Try to store consumer metadata failed. In most
cases, it's not a problem. ")
+ return nil
+ }
+ return err
}
// SaveServiceMetadata saves the metadata.