]
Tristan Tarrant updated ISPN-9113:
----------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
SITE_UNREACHABLE not handled by JGroupsTransport
------------------------------------------------
Key: ISPN-9113
URL:
https://issues.jboss.org/browse/ISPN-9113
Project: Infinispan
Issue Type: Bug
Components: Cross-Site Replication
Affects Versions: 9.2.2.Final, 9.3.0.Alpha1
Reporter: Galder ZamarreƱo
Assignee: Dan Berindei
Fix For: 9.3.0.Beta1
If a user defineds a site with SYNC x-site replication and the site is unavailable,
requests will timeout instead of quickly failing. See below for a summary discussion:
{code}
Galder: @Dan Berindei @Pedro Ruivo @Bela Ban Any thoughts on my dev thread?
Galder: In essence, @Dan Berindei you made ChannelCallbacks implement UpHandler, but
JChannel.invokeCallback()
won't pass any events to receive instance variable because it doesn't check
whether the receiver is UpHandler //cc @Tristan
Bela Ban: @Galder yes, this won't work
Bela Ban: @Galder You need to call RELAY2.setRouterStatusListener() directly
Bela Ban: Implementing this as part of Receiver won't help
Galder: Don't think RELAY2.setRouterStatusListener() is what I want - I can see
RELAY2.handleMessage() passing up the
stack Event.SITE_UNREACHABLE though, the problem is that there's no handler for that
Bela Ban: @Galder Yes, but the SITE_UNREACHABLE event is only handled by
RequestCorrelator, not by JChannel
Galder: Ah ok, let me check what that does
Bela Ban: The thing is that RequestCorrelator is not used anymore (AFAIK), as Infinispan
moved from
MessageDispatcher to JChannel
Galder: the RequestCorrelator is never called
Galder: exactly
Bela Ban: So this is a regression caused by that move then
Galder: Yeah, that's my feeling too. That's why I was asking Dan about the move
to make ChannelCallbacks class an
UpHandler, because I noticed that happened when the move to JChannel happened
Galder: The impact of this is the following: if any site in SYNC and the site is
unreachable, you'd get a timeout eventually
instead of a immediate failure
Galder: I'm trying to implement auto x-site state transfer for protobuf metadata
cache and I cannot do it until this is fixed
Galder: I'll see if I can get something working with ASYNC, but ASYNC is not a good
option for protobuf metadata.
If a node does not succesfully get it, it won't be able to work properly
{code}