You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Bryn Cooke (Jira)" <ji...@apache.org> on 2020/06/08 15:02:00 UTC

[jira] [Commented] (CASSANDRA-15677) Topology events are not sent to clients if the nodes use the same network interface

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

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

Looks like dtest-api got bumped recently. I've created a new PR and will move to review after CI tests complete.

> 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-rc
>
>          Time Spent: 1h
>  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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org