Skip to content

Connecting to a machine with multiple nodes fails. #1097

@paulchandler

Description

@paulchandler

When a cluster is created with multiple nodes on one machine ecchronos cannot connect to all the nodes

The nodes are set up so they use different loopback interfaces 127.0.0.1, 127.0.0.2, 127.0.0.3

However the JMX port is always bound to 127.0.0.1 so the JMX port is changed to 7199,7198,7197

The ports and ip addresses can be seen here:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.2:9042          0.0.0.0:*               LISTEN      9560/java
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.3:9042          0.0.0.0:*               LISTEN      575664/java
tcp        0      0 127.0.0.1:9042          0.0.0.0:*               LISTEN      3701/java
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:33461         0.0.0.0:*               LISTEN      575664/java
tcp        0      0 127.0.0.1:63342         0.0.0.0:*               LISTEN      5802/ld-linux-x86-6
tcp        0      0 127.0.0.1:5990          0.0.0.0:*               LISTEN      5802/ld-linux-x86-6
tcp        0      0 127.0.0.1:46481         0.0.0.0:*               LISTEN      5802/ld-linux-x86-6
tcp        0      0 127.0.0.1:45855         0.0.0.0:*               LISTEN      5802/ld-linux-x86-6
tcp        0      0 127.0.0.1:45585         0.0.0.0:*               LISTEN      9560/java
tcp        0      0 127.0.0.2:7000          0.0.0.0:*               LISTEN      9560/java
tcp        0      0 10.255.255.254:53       0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:7199          0.0.0.0:*               LISTEN      3701/java
tcp        0      0 127.0.0.1:7198          0.0.0.0:*               LISTEN      9560/java
tcp        0      0 127.0.0.1:7197          0.0.0.0:*               LISTEN      575664/java
tcp        0      0 127.0.0.3:7000          0.0.0.0:*               LISTEN      575664/java
tcp        0      0 127.0.0.1:39707         0.0.0.0:*               LISTEN      3701/java
tcp        0      0 127.0.0.1:7000          0.0.0.0:*               LISTEN      3701/java
tcp        0      0 127.0.0.1:63561         0.0.0.0:*               LISTEN      5802/ld-linux-x86-6
tcp6       0      0 :::3390                 :::*                    LISTEN      -
tcp6       0      0 127.0.0.1:42023         :::*                    LISTEN      448181/ld-linux-x86
tcp6       0      0 ::1:631                 :::*                    LISTEN      -
tcp6       0      0 127.0.0.1:36579         :::*                    LISTEN      447799/java
tcp6       0      0 ::1:3350                :::*                    LISTEN      -
tcp6       0      0 :::33921                :::*                    LISTEN      574137/java
tcp6       0      0 127.0.0.1:13208         :::*                    LISTEN      447799/java
tcp6       0      0 127.0.0.1:8080          :::*                    LISTEN      574137/java
tcp6       0      0 127.0.0.1:15149         :::*                    LISTEN      448181/ld-linux-x86

So for JMX the connection tries to bind to the other loopback address and fails.

Hard coding 127.0.0.1 in this line fixes the problem, but obviously that is not a solution

https://github.com/Ericsson/ecchronos/blob/agent/master/connection.impl/src/main/java/com/ericsson/bss/cassandra/ecchronos/connection/impl/builders/DistributedJmxBuilder.java#L202

Metadata

Metadata

Assignees

No one assigned

    Labels

    PoC/AgentTasks related to new generation of ecchronos as an agentbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions