cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-11332) nodes connect to themselves when NTS is used
Date Thu, 10 Mar 2016 10:26:40 GMT

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

Sylvain Lebresne commented on CASSANDRA-11332:
----------------------------------------------

bq. I can't think of any reason for a node to connect to itself

There is quite a few places where we don't special case the local case and just go through
{{MessagingService}} even for localhost out of simplicity. Of the top of my head I believe
that's at least the case for truncation, repair and most of Paxos messages, but I'm sure I'm
missing some. And {{MessagingService}} don't special case the local host either.

I'll note that afaict normal writes and schema both do special case the local host so I'm
not sure why you can reproduce with just adding a keyspace and doing a few writes (unless
those write include LWT in which that's definitively due to Paxos), but I'm sure I'm forgotting
something that is not special cases and I'm not surprised at all.

Now, we could modify {{MessagingService}} I suppose to special case local messages, though
we still want sending to be non-blocking so we'll still need a specific thread with a queue,
and we probably still want to preserve the protection we have like dropping messages too old
(which, while I'm fine implementing that solution, make me uncomfortable doing it on an old
branch).

But truth is, I'm not sure I understand the concrete consequence this has for {{PropertyFileSnitch}}
(that is, have you noticed a genuine bug due to this?) but we could also fix it so it recognize
that both broadcast and listen addresses mean the same thing.

> nodes connect to themselves when NTS is used
> --------------------------------------------
>
>                 Key: CASSANDRA-11332
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11332
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Brandon Williams
>             Fix For: 2.1.x
>
>
> I tested this with both the simple snitch and PFS.  It's quite easy to repro, setup a
cluster, start it.  Mine looks like this:
> {noformat}
> tcp        0      0 10.208.8.123:48003      10.208.8.63:7000        ESTABLISHED 26254/java
> tcp        0      0 10.208.8.123:7000       10.208.8.63:40215       ESTABLISHED 26254/java
> tcp        0      0 10.208.8.123:55559      10.208.35.225:7000      ESTABLISHED 26254/java
> tcp        0      0 10.208.8.123:33498      10.208.8.63:7000        ESTABLISHED 26254/java
> tcp        0      0 10.208.8.123:7000       10.208.35.225:52530     ESTABLISHED 26254/java
> tcp        0      0 10.208.8.123:7000       10.208.35.225:53674     ESTABLISHED 26254/java
> tcp        0      0 10.208.8.123:40846      10.208.35.225:7000      ESTABLISHED 26254/java
> tcp        0      0 10.208.8.123:7000       10.208.8.63:48880       ESTABLISHED 26254/java
> {noformat}
> No problems so far.  Now create a keyspace using NTS with an rf of 3, and perform some
writes.  Now it looks like this:
> {noformat}
> tcp        0      0 10.208.8.123:48003      10.208.8.63:7000        ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:7000       10.208.8.123:35024      ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:35024      10.208.8.123:7000       ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:47212      10.208.8.123:7000       ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:7000       10.208.8.63:40215       ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:55559      10.208.35.225:7000      ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:33498      10.208.8.63:7000        ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:7000       10.208.35.225:52530     ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:7000       10.208.35.225:53674     ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:7000       10.208.8.123:47212      ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:40846      10.208.35.225:7000      ESTABLISHED 26254/java
     
> tcp        0      0 10.208.8.123:7000       10.208.8.63:48880       ESTABLISHED 26254/java
 
> {noformat}
> I can't think of any reason for a node to connect to itself, and this can cause problems
with PFS where you might only define the broadcast addresses, but now you need the internal
addresses too because the node will need to look itself up when connecting to itself.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message