This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch feature-triple
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
The following commit(s) were added to refs/heads/feature-triple by this push:
new 80a7536f8 fix #2495, panic: http: multiple registrations for
/triple.reflection.v1alpha.ServerReflection (#2496)
80a7536f8 is described below
commit 80a7536f83cd671087b24a5fbfde5dc990633c12
Author: finalt <[email protected]>
AuthorDate: Thu Nov 9 21:55:55 2023 +0800
fix #2495, panic: http: multiple registrations for
/triple.reflection.v1alpha.ServerReflection (#2496)
---
protocol/triple/server.go | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/protocol/triple/server.go b/protocol/triple/server.go
index cc0aba2d2..b6ea60a53 100644
--- a/protocol/triple/server.go
+++ b/protocol/triple/server.go
@@ -115,7 +115,7 @@ func (s *Server) Start(invoker protocol.Invoker, info
*server.ServiceInfo) {
if info != nil {
handleServiceWithInfo(invoker, info, mux, hanOpts...)
} else {
- compatHandleService(mux)
+ compatHandleService(URL, mux)
}
// todo: figure it out this process
//reflection.Register(server)
@@ -151,7 +151,7 @@ func (s *Server) RefreshService(invoker protocol.Invoker,
info *server.ServiceIn
if info != nil {
handleServiceWithInfo(invoker, info, mux, hanOpts...)
} else {
- compatHandleService(mux)
+ compatHandleService(URL, mux)
}
}
@@ -208,13 +208,16 @@ func waitTripleExporter(providerServices
map[string]*config.ServiceConfig) {
// *Important*, this function is responsible for being compatible with old
triple-gen code
// compatHandleService creates handler based on ServiceConfig and provider
service.
-func compatHandleService(mux *http.ServeMux, opts ...tri.HandlerOption) {
+func compatHandleService(url *common.URL, mux *http.ServeMux, opts
...tri.HandlerOption) {
providerServices := config.GetProviderConfig().Services
if len(providerServices) == 0 {
panic("Provider service map is null")
}
//waitTripleExporter(providerServices)
for key, providerService := range providerServices {
+ if providerService.Interface != url.Interface() {
+ continue
+ }
// todo(DMwangnima): judge protocol type
service := config.GetProviderService(key)
ds, ok := service.(dubbo3.Dubbo3GrpcService)