Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4797490617 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
Alanxtl merged PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4699102844 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
jieguo-coder commented on code in PR #3367:
URL: https://github.com/apache/dubbo-go/pull/3367#discussion_r3407738748
##
metadata/metadata.go:
##
@@ -34,27 +39,37 @@ func GetMetadataService() MetadataService {
}
func GetMetadataInfo(registryId string) *info.MetadataInfo {
+ registryMetadataLock.RLock()
+ defer registryMetadataLock.RUnlock()
return registryMetadataInfo[registryId]
}
func AddService(registryId string, url *common.URL) {
+ registryMetadataLock.Lock()
Review Comment:
我已经更新了 `metadata/metadata.go` 中的 `RemoveService` 和
`RemoveSubscribeURL`。现在,它们会获取
`registryMetadataLock.RLock()`,执行映射查找,并在调用实例自身的方法之前立即释放 `RUnlock()`
>
全局锁粒度最小化,并与 `AddService` 完全对称,在不引入任何死锁的情况下解决并发读写风险
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4698072942 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4697996069 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
AlexStocks commented on code in PR #3367:
URL: https://github.com/apache/dubbo-go/pull/3367#discussion_r3400205545
##
metadata/metadata.go:
##
@@ -34,27 +39,37 @@ func GetMetadataService() MetadataService {
}
func GetMetadataInfo(registryId string) *info.MetadataInfo {
+ registryMetadataLock.RLock()
+ defer registryMetadataLock.RUnlock()
return registryMetadataInfo[registryId]
}
func AddService(registryId string, url *common.URL) {
+ registryMetadataLock.Lock()
Review Comment:
[P1] 这里仍然裸读 registryMetadataInfo。这个 PR 让
AddService/AddSubscribeURL/GetMetadataInfo 通过 registryMetadataLock 保护同一个全局
map,但 RemoveService/RemoveSubscribeURL 还在没有 RLock 的情况下做 map
lookup;当服务导出/订阅与注销并发发生时,Add 分支可能正在写入 registryMetadataInfo,Remove 分支同时读会继续触发
concurrent map read/write。这里需要先在 registryMetadataLock 下取出
metadataInfo,再释放全局锁后调用 metadataInfo.RemoveService,和 AddService 的锁粒度保持一致。
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
jieguo-coder commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4682714086 @Alanxtl, 我已经成功解决了最近整合 #3369 引发的合并冲突。 在 metadata/report_instance.go 合并过程中,我小心保留了所有新的业务逻辑(确定性排序、DefaultKey 回归和 ClearMetadataReportInstances),同时成功保留了细粒度的并发优化(将 I/O 重的 CreateMetadataReport 置于全局锁之外) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
jieguo-coder commented on code in PR #3367:
URL: https://github.com/apache/dubbo-go/pull/3367#discussion_r3397434680
##
metadata/info/metadata_info.go:
##
@@ -159,13 +176,29 @@ func (info *MetadataInfo) GetExportedServiceURLs()
[]*common.URL {
}
func (info *MetadataInfo) GetSubscribedURLs() []*common.URL {
+ info.mu.RLock()
+ defer info.mu.RUnlock()
+
res := make([]*common.URL, 0)
for _, urls := range info.subscribedServiceURLs {
res = append(res, urls...)
}
return res
}
+// GetServices returns a deep copy of the Services map for safe iteration by
external callers.
+// Each ServiceInfo is fully copied with lazy fields eagerly populated to
prevent write-on-read races.
+func (info *MetadataInfo) GetServices() map[string]*ServiceInfo {
+ info.mu.Lock()
+ defer info.mu.Unlock()
+
+ cp := make(map[string]*ServiceInfo, len(info.Services))
+ for k, v := range info.Services {
+ cp[k] = v.DeepCopy()
+ }
+ return cp
+}
+
func (info *MetadataInfo) ReplaceExportedServices(urls []*common.URL) {
info.Services = make(map[string]*ServiceInfo)
Review Comment:
好的,我现在使用了内部无锁辅助模式重构逻辑,并提取 `addServiceWithoutLock`
来处理核心映射更新。现在,`ReplaceExportedServices` 在入口获取 `info.mu.Lock()` 一次,并在循环中安全地重用辅助函数。
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4682474379 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4682317893 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4682170932 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
AlexStocks commented on code in PR #3367:
URL: https://github.com/apache/dubbo-go/pull/3367#discussion_r3396155611
##
metadata/info/metadata_info.go:
##
@@ -159,13 +176,29 @@ func (info *MetadataInfo) GetExportedServiceURLs()
[]*common.URL {
}
func (info *MetadataInfo) GetSubscribedURLs() []*common.URL {
+ info.mu.RLock()
+ defer info.mu.RUnlock()
+
res := make([]*common.URL, 0)
for _, urls := range info.subscribedServiceURLs {
res = append(res, urls...)
}
return res
}
+// GetServices returns a deep copy of the Services map for safe iteration by
external callers.
+// Each ServiceInfo is fully copied with lazy fields eagerly populated to
prevent write-on-read races.
+func (info *MetadataInfo) GetServices() map[string]*ServiceInfo {
+ info.mu.Lock()
+ defer info.mu.Unlock()
+
+ cp := make(map[string]*ServiceInfo, len(info.Services))
+ for k, v := range info.Services {
+ cp[k] = v.DeepCopy()
+ }
+ return cp
+}
+
func (info *MetadataInfo) ReplaceExportedServices(urls []*common.URL) {
info.Services = make(map[string]*ServiceInfo)
Review Comment:
[P1] 这里仍然绕过 `MetadataInfo.mu` 直接重置 `Services` 和 `exportedServiceURLs`。本 PR
已经让 `AddService`、`RemoveService`、`GetServices`、`GetExportedServiceURLs` 通过同一个
mutex 保护这些字段,但 `ReplaceExportedServices` 由 `service_discovery_registry.go`
调用时会无锁写 map;如果同时有 metadata 读取或实例变更处理在调用
`GetServices`/`GetExportedServiceURLs`,仍然可能触发 data race
或读到半重建状态。这里需要在函数入口持有写锁,并避免在持锁后直接调用会再次加锁的 `AddService`,可以拆出一个内部 no-lock helper
来复用写入逻辑。
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
Alanxtl commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4646159918 pls update to latest develop branch to fix ci fail -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
Alanxtl commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4645074242 奇怪了 为啥有的pr这个ci没问题 有的就报错 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
jieguo-coder commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4643277837 > 哦 这是因为你的target branch不对 应该是develop 而不是main @Alanxtl, 我已经将`main`分支改为`develop`,也解决了合并冲突和格式问题,单元测试也都通过了 CI 又在 Codecov 这一步挂了,仍然出现GPG签名验证错误: `gpg: Can't check signature: No public key` 是直接无视这个错误吗,还是等会儿重跑 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4643183013 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
Alanxtl commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4642715022 哦 这是因为你的target branch不对 应该是develop 而不是main -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
jieguo-coder commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4641702299 > pls fix ci fail Hi @Alanxtl, The previous CI failure was actually an infrastructure issue from Codecov during the upload step, not a code or test failure. The log showed: gpg: Can't check signature: No public key ==> Could not verify signature. Please contact Codecov if problem continues I just pushed an empty commit to re-trigger the CI workflow. Hopefully, the Codecov network issue is resolved now -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4641699313 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4641444374 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
Copilot commented on code in PR #3367:
URL: https://github.com/apache/dubbo-go/pull/3367#discussion_r3367022869
##
metadata/report_instance.go:
##
@@ -47,11 +49,19 @@ func addMetadataReport(registryId string, url *common.URL)
error {
logger.Warnf("no metadata report factory of protocol %s found,
please check if the metadata report factory is imported", url.Protocol)
return nil
}
+ instancesMu.Lock()
instances[registryId] = &DelegateMetadataReport{instance:
fac.CreateMetadataReport(url)}
+ instancesMu.Unlock()
Review Comment:
addMetadataReport holds instancesMu while calling
fac.CreateMetadataReport(url). Factory creation may be slow or may block (e.g.,
dialing/config loading), so doing it under the global lock can unnecessarily
stall readers and other writers. Create the report instance first, then take
the lock only to publish it into the map.
##
metadata/info/metadata_info.go:
##
@@ -155,13 +172,28 @@ func (info *MetadataInfo) GetExportedServiceURLs()
[]*common.URL {
}
func (info *MetadataInfo) GetSubscribedURLs() []*common.URL {
+ info.mu.RLock()
+ defer info.mu.RUnlock()
+
res := make([]*common.URL, 0)
for _, urls := range info.subscribedServiceURLs {
res = append(res, urls...)
}
return res
}
+// GetServices returns a copy of the Services map for safe iteration by
external callers.
+func (info *MetadataInfo) GetServices() map[string]*ServiceInfo {
+ info.mu.RLock()
+ defer info.mu.RUnlock()
+
+ cp := make(map[string]*ServiceInfo, len(info.Services))
+ for k, v := range info.Services {
+ cp[k] = v
+ }
+ return cp
+}
Review Comment:
GetServices currently returns a shallow copy of the Services map but reuses
the original *ServiceInfo pointers. Because ServiceInfo has lazily-populated
fields (e.g., GetMatchKey/GetServiceKey write back to MatchKey/ServiceKey when
empty), concurrent readers iterating over the snapshot can still race on those
shared ServiceInfo objects. Consider returning deep-copied ServiceInfo values
(and Params map) and eagerly populating derived keys in the snapshot to avoid
any write-on-read behavior.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
Alanxtl commented on code in PR #3367:
URL: https://github.com/apache/dubbo-go/pull/3367#discussion_r3360099261
##
registry/servicediscovery/service_instances_changed_listener_impl.go:
##
@@ -215,7 +218,9 @@ func (lstn *ServiceInstancesChangedListenerImpl)
AddListenerAndNotify(serviceKey
// RemoveListener remove notify listener
func (lstn *ServiceInstancesChangedListenerImpl) RemoveListener(serviceKey
string) {
+ lstn.mutex.Lock()
delete(lstn.listeners, serviceKey)
+ lstn.mutex.Unlock()
Review Comment:
这里为啥不用defer
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4620840373 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4620727626 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4620655074 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4620403779 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4620224629 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
Alanxtl commented on code in PR #3367:
URL: https://github.com/apache/dubbo-go/pull/3367#discussion_r3353337550
##
metadata/metadata.go:
##
@@ -34,25 +39,33 @@ func GetMetadataService() MetadataService {
}
func GetMetadataInfo(registryId string) *info.MetadataInfo {
+ registryMetadataLock.RLock()
+ defer registryMetadataLock.RUnlock()
return registryMetadataInfo[registryId]
}
func AddService(registryId string, url *common.URL) {
+ registryMetadataLock.Lock()
if _, exist := registryMetadataInfo[registryId]; !exist {
registryMetadataInfo[registryId] = info.NewMetadataInfo(
url.GetParam(constant.ApplicationKey, ""),
url.GetParam(constant.ApplicationTagKey, ""),
)
}
+ registryMetadataLock.Unlock()
+
registryMetadataInfo[registryId].AddService(url)
}
func AddSubscribeURL(registryId string, url *common.URL) {
+ registryMetadataLock.Lock()
if _, exist := registryMetadataInfo[registryId]; !exist {
registryMetadataInfo[registryId] = info.NewMetadataInfo(
url.GetParam(constant.ApplicationKey, ""),
url.GetParam(constant.ApplicationTagKey, ""),
)
}
+ registryMetadataLock.Unlock()
+
registryMetadataInfo[registryId].AddSubscribeURL(url)
}
Review Comment:
`AddService` / `AddSubscribeURL` 解锁后又无锁读取全局 map
[metadata.go:55-L57](https://github.com/apache/dubbo-go/blob/ea83f92151d134927b8620ac560b2109f716f352/metadata/metadata.go#L55),
[L68-L70](https://github.com/apache/dubbo-go/blob/ea83f92151d134927b8620ac560b2109f716f352/metadata/metadata.go#L68)
这两个函数只把 get-or-create 包在写锁里,但随后解锁,再执行
`registryMetadataInfo[registryId].AddService(url)` /
`AddSubscribeURL(url)`。这仍然是对全局 map 的无锁读;只要另一个 goroutine 正在为其他 registryId 插入
map,就可能发生读写 race。
修法建议:在锁内取出 `metadataInfo :=
registryMetadataInfo[registryId]`,解锁后只操作这个指针,不再访问全局 map。
##
metadata/metadata_service.go:
##
Review Comment:
`DefaultMetadataService` still races on `registryMetadataInfo`**
[metadata_service.go:98](https://github.com/apache/dubbo-go/blob/ea83f92151d134927b8620ac560b2109f716f352/metadata/metadata_service.go#L98),
[L110](https://github.com/apache/dubbo-go/blob/ea83f92151d134927b8620ac560b2109f716f352/metadata/metadata_service.go#L110),
[L128](https://github.com/apache/dubbo-go/blob/ea83f92151d134927b8620ac560b2109f716f352/metadata/metadata_service.go#L128)
PR 给 `registryMetadataInfo` 增加了 `registryMetadataLock`,但
`metadataService` 仍持有同一个 map,并在 `GetMetadataInfo` / `GetExportedServiceURLs` /
`GetSubscribedURLs` 里无锁遍历。注册或订阅并发写入 map 时,metadata service 查询仍会 race,正好是 issue
#3353 要修的场景。
我用临时 race 测试复现了:
`metadata.AddService()` 在
[metadata.go:50](https://github.com/apache/dubbo-go/blob/ea83f92151d134927b8620ac560b2109f716f352/metadata/metadata.go#L50)
写 map,同时 `DefaultMetadataService.GetExportedServiceURLs()` 在
`metadata_service.go:110` 迭代 map,race detector 报 `WARNING: DATA RACE`。
修法建议:不要让 `DefaultMetadataService` 直接遍历裸 map。可以加受锁保护的 snapshot helper,或者让
`DefaultMetadataService` 共享同一把锁并在遍历期间持 `RLock`。
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
codecov-commenter commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4611815820 ## [Codecov](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report :x: Patch coverage is `76.19048%` with `10 lines` in your changes missing coverage. Please review. :white_check_mark: Project coverage is 52.42%. Comparing base ([`e6e14fd`](https://app.codecov.io/gh/apache/dubbo-go/commit/e6e14fd3076a056808a2f844bbc851a23f42865a?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`ea83f92`](https://app.codecov.io/gh/apache/dubbo-go/commit/ea83f92151d134927b8620ac560b2109f716f352?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)). | [Files with missing lines](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines | |---|---|---| | [metadata/info/metadata\_info.go](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?src=pr&el=tree&filepath=metadata%2Finfo%2Fmetadata_info.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-bWV0YWRhdGEvaW5mby9tZXRhZGF0YV9pbmZvLmdv) | 63.15% | [7 Missing :warning: ](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | | [...scovery/service\_instances\_changed\_listener\_impl.go](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?src=pr&el=tree&filepath=registry%2Fservicediscovery%2Fservice_instances_changed_listener_impl.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-cmVnaXN0cnkvc2VydmljZWRpc2NvdmVyeS9zZXJ2aWNlX2luc3RhbmNlc19jaGFuZ2VkX2xpc3RlbmVyX2ltcGwuZ28=) | 60.00% | [2 Missing :warning: ](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | | [metadata/metadata\_service.go](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?src=pr&el=tree&filepath=metadata%2Fmetadata_service.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-bWV0YWRhdGEvbWV0YWRhdGFfc2VydmljZS5nbw==) | 0.00% | [1 Missing :warning: ](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Additional details and impacted files ```diff @@Coverage Diff @@ ## main#3367 +/- ## == + Coverage 52.40% 52.42% +0.01% == Files 492 492 Lines 3778537824 +39 == + Hits1980019828 +28 - Misses 1638016391 +11 Partials 1605 1605 ``` [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/dubbo-go/pull/3367?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache). :rocket: New features to boost your workflow: - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4611664192 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
jieguo-coder commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4611659285 > our project use `import-formatter` to format import blocks, that's the reason why ur CI fails. For you, u should > > 1. run `go install github.com/dubbogo/tools/cmd/imports-formatter@latest` > 2. cd to the root dir of `dubbo-go` > 3. run `imports-formatter` Thanks for the guidance! @Alanxtl I have formatted the import blocks using and pushed the updates. The CI should be happy now. 😊 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4611297954 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
Alanxtl commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4611062079 our project use `import-formatter` to format import blocks, that's the reason why ur CI fails. For you, u should 1. run `go install github.com/dubbogo/tools/cmd/imports-formatter@latest` 2. cd to the root dir of `dubbo-go` 3. run `imports-formatter` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] feat(metadata): add concurrency safety for application-level metadata state (#3353) [dubbo-go]
sonarqubecloud[bot] commented on PR #3367: URL: https://github.com/apache/dubbo-go/pull/3367#issuecomment-4610811518 ## [](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) **Quality Gate passed** Issues  [0 New issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_dubbo-go&pullRequest=3367&issueStatuses=ACCEPTED) Measures  [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_dubbo-go&pullRequest=3367&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_coverage&view=list)  [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_dubbo-go&pullRequest=3367&metric=new_duplicated_lines_density&view=list) [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_dubbo-go&pullRequest=3367) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
