[infinispan-issues] [JBoss JIRA] (ISPN-9113) SITE_UNREACHABLE not handled by JGroupsTransport

Galder Zamarreño (JIRA) issues at jboss.org
Wed May 2 08:30:02 EDT 2018


     [ https://issues.jboss.org/browse/ISPN-9113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Galder Zamarreño updated ISPN-9113:
-----------------------------------
    Description: 
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}

  was:
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}



> 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
>
> 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}



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the infinispan-issues mailing list