It's a concurrent problem of Registry notification thread and RPC invoking 
thread.
I think your patch can reduce the chances of meeting this problem to some 
extent but makes no essential differences. If the `destroy` status of an 
Invoker was set, most likely, the remote connection and some other resources 
may have also been destroyed, which may still cause the invoke to fail. One 
side effect if the invoke fails later is that the user may finally get a raw 
connection exception which may further confuse them.

https://github.com/apache/incubator-dubbo/blob/6938d487a388cc8cd0a2bc8740fe9ee8d378767e/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java#L132

How about add a retry policy in AbstractClusterInvoker.invoke() for this 
scenario, and we can decide whether retry or not by recognize the RpcException 
with a special code?  I am still thinking of some other better solutions.

[ Full content available at: 
https://github.com/apache/incubator-dubbo/pull/2679 ]
This message was relayed via gitbox.apache.org for 
[email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to