New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ISPN-7377 RPCs to non-members throw spurious TimeoutException #4784
ISPN-7377 RPCs to non-members throw spurious TimeoutException #4784
Conversation
dee6d29
to
a04bdc1
Compare
if (rsp.wasReceived() || rsp.wasSuspected() || rsp.wasUnreachable()) { | ||
responses.set(i, rsp); | ||
public Responses(Collection<Address> dests, RspList<Response> results) { | ||
if (dests != null && dests.size() < results.size()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't really understand when this happens: is dest
strict subset of addresses in results
? Does this mean that there is a result from node we have not sent the message to? On the other hand, it seems that an address from dests
could be missing in results
so I don't understand why are you comparing the size of the sets this way...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, the condition should have been the other way around, and that's why the fix didn't really work.
Is it possible to add an unit test? |
d7916f2
to
ee9ce6c
Compare
I fixed the comparison and added a test. |
@danberindei Okay, looks better :) However, I would rather like to see this as a fix to JGroups than a workaround like this. Or, even better, we could get rid of the |
cc9cce6
to
a8c9406
Compare
I've been thinking about changing this to use a more reactive pattern like onNext() for each response, terminated by onCompletion() / onError(). |
@danberindei How do we remember to remove this burden once Infinispan stops using MD, then? |
@rvansa If we stop using MD then we automatically stop using RspList as well, we'll keep only the I've already started working on this, and for now I'm still using @belaban Still, @rvansa is right, it would be better if we didn't need this workaround, and |
a8c9406
to
815730d
Compare
Not sure I follow... why do you still need Rsp or Responses (from JGroups?) if you use the channel directly? |
@danberindei I don't want to push it into JGroups if that wouldn't be of use; I want to avoid RspList -> Responses transformations. |
fb6f838
to
5561c3a
Compare
So, what's the conclusion to this? |
I think it's ready to go in, and we'll resume the |
5561c3a
to
ea16b05
Compare
MessageDispatcher.cast() removes missing members from the destinations list
ea16b05
to
dbb362e
Compare
Integrated thanks! |
… members
https://issues.jboss.org/browse/ISPN-7377
MessageDispatcher.cast() removes missing members from the destinations list