Github user jasobrown commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/184#discussion_r160495552
  
    --- Diff: src/java/org/apache/cassandra/gms/Gossiper.java ---
    @@ -1207,12 +1239,27 @@ private void applyNewStates(InetAddress addr, 
EndpointState localState, Endpoint
             assert remoteState.getHeartBeatState().getGeneration() == 
localState.getHeartBeatState().getGeneration();
             localState.addApplicationStates(remoteStates);
     
    -        for (Entry<ApplicationState, VersionedValue> remoteEntry : 
remoteStates)
    +        //Filter out pre-4.0 versions of data for more complete 4.0 
versions
    +        Set<Entry<ApplicationState, VersionedValue>> filtered = 
remoteStates.stream().filter(entry -> {
    --- End diff --
    
    I'm not sure this is wise. 
    a) by returning the alternate `WITH_PORT` variant, we will execute 
`doOnChangeNotifications` twice for it. I'm not confident that the 
`IEndpointStateChangeSubscriber` implementations (read: `StorageService`) will 
be intelligently idempotent. If some block of logic happen to execute twice, 
tracking down the effects could be miserable.
    b) there may be `IEndpointStateChangeSubscriber` implementations (read: 
DSE) that might not update correctly and still be expecting the old AppState to 
work correctly. tbqh, I'm not really worried about this case.



---

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

Reply via email to