marsevilspirit commented on code in PR #2908:
URL: https://github.com/apache/dubbo-go/pull/2908#discussion_r2123417526


##########
protocol/dubbo/dubbo_invoker.go:
##########
@@ -93,24 +93,16 @@ func (di *DubboInvoker) Invoke(ctx context.Context, ivc 
base.Invocation) result.
                // Generally, the case will not happen, because the invoker has 
been removed
                // from the invoker list before destroy,so no new request will 
enter the destroyed invoker
                logger.Warnf("this dubboInvoker is destroyed")
-               res.Err = base.ErrDestroyedInvoker
+               res.SetError(base.ErrDestroyedInvoker)
                return &res
        }
 
        di.clientGuard.RLock()
        defer di.clientGuard.RUnlock()
 
        if di.client == nil {
-               res.Err = base.ErrClientClosed
-               logger.Debugf("result.Err: %v", res.Err)
-               return &res
-       }
-
-       if !di.BaseInvoker.IsAvailable() {
-               // Generally, the case will not happen, because the invoker has 
been removed

Review Comment:
   You need to take a look at the complete Invoke method of dubbo Invoker. This 
function checks available twice, and the Invoke function is called very 
frequently, so it shouldn't spend extra time checking twice. The triple invoker 
only checks once, and the dubbo invoker should be synchronized with the triple 
invoker.



-- 
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: notifications-unsubscr...@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@dubbo.apache.org
For additional commands, e-mail: notifications-h...@dubbo.apache.org

Reply via email to