[infinispan-issues] [JBoss JIRA] (ISPN-8504) View change during cluster listener registration can throw SuspectException

Pedro Ruivo (JIRA) issues at jboss.org
Wed Nov 8 05:45:00 EST 2017


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

Pedro Ruivo updated ISPN-8504:
------------------------------
    Fix Version/s: 9.2.0.Beta1
                       (was: 9.2.0.Final)


> View change during cluster listener registration can throw SuspectException
> ---------------------------------------------------------------------------
>
>                 Key: ISPN-8504
>                 URL: https://issues.jboss.org/browse/ISPN-8504
>             Project: Infinispan
>          Issue Type: Bug
>            Reporter: Pedro Ruivo
>            Assignee: William Burns
>             Fix For: 9.2.0.Beta1, 9.1.3.Final
>
>
> when registering a cluster listener, if a view change happens, it tries to register the listener in the joiner. However, if the joiner doesn't have the cache, a {{SuspectException}} is thrown. 
> I noticed also the cluster listener registration uses the view and not the cache members. 
> In the first iteration, the {{SuspectException}} is ignored:
> Line 872:
> {code:java}
> for (int i = 0; i < members.size() - 1; ++i) {
>   try {
>      decs.take().get();
>   } catch (InterruptedException e) {
>      throw new CacheListenerException(e);
>   } catch (ExecutionException e) {
>      Throwable cause = e.getCause();
>      // If we got a SuspectException it means the remote node hasn't started this cache yet.
>      // Just ignore, when it joins it will retrieve the listener
>      if (!(cause instanceof SuspectException)) {
>         throw new CacheListenerException(cause);
>      }
>   }
> }
> {code}
> However, when trying in the joiners, the exception isn't ignored:
> Line 902
> {code:java}
> for (int i = 0; i < extraCount; ++i) {
>   try {
>      decs.take().get();
>   } catch (InterruptedException e) {
>      throw new CacheListenerException(e);
>   } catch (ExecutionException e) {
>      throw new CacheListenerException(e);
>   }
> }
> {code}



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


More information about the infinispan-issues mailing list