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