[ 
https://issues.apache.org/jira/browse/CASSANDRA-15677?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17140680#comment-17140680
 ] 

Bryn Cooke commented on CASSANDRA-15677:
----------------------------------------

Quick update.
It looks like the behaviour since 
https://issues.apache.org/jira/browse/CASSANDRA-10052 has changed.

Pre-11052 when the node was dropped the events received for 
test_restart_node_localhost had the wrong node listed.

On trunk the events received are for the correct node. So on the face of it is 
looks like something has been fixed since 10052 that means that is it now OK to 
receive events when running on the same interface.

However, when testing using the in-jvm dTests decommissioning a node still 
produces extra remove and add events for nodes that should not have been 
affected. This probably related to the original problem in 10052 in some way.

 

> Topology events are not sent to clients if the nodes use the same network 
> interface
> -----------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-15677
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15677
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Messaging/Client
>            Reporter: Alan Boudreault
>            Assignee: Bryn Cooke
>            Priority: Normal
>              Labels: pull-request-available
>             Fix For: 4.0-alpha5
>
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> *This bug only happens when the cassandra nodes are configured to use a 
> single network interface (ip) but different ports.  See CASSANDRA-7544.*
> Issue: The topology events aren't sent to clients. The problem is that the 
> port is not taken into account when determining if we send it or not:
> https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/transport/Server.java#L624
> To reproduce:
> {code}
> # I think the cassandra-test branch is required to get the -S option 
> (USE_SINGLE_INTERFACE)
> ccm create -n4 local40 -v 4.0-alpha2 -S
> {code}
>  
> Then run this small python driver script:
> {code}
> import time
> from cassandra.cluster import Cluster
> cluster = Cluster()
> session = cluster.connect()
> while True:
>     print(cluster.metadata.all_hosts())
>     print([h.is_up for h in cluster.metadata.all_hosts()])
>     time.sleep(5)
> {code}
> Then decommission a node:
> {code}
> ccm node2 nodetool disablebinary
> ccm node2 nodetool decommission
> {code}
>  
> You should see that the node is never removed from the client cluster 
> metadata and the reconnector started.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to