Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Not A Problem
-
None
-
None
-
Normal
Description
I stumbled upon an issue where SSTableLoader was ignoring our routing by using the wrong interface to send the SSTables to the other nodes. Looking at the code, it seems that we are using FBUtilities.getLocalAddress() to fetch out the hostname, even if the yaml file specifies a different host. I am not sure why we call this function instead of using the routing by leaving it blank, perhaps someone could enlighten me.
This behaviour comes from the fact that we use a default created DatabaseDescriptor which does not set the values for listenAddress and listenInterface. This causes the aforementioned function to retrieve the hostname at all times, even if it is not the interface used in the yaml file.
I propose we break out the function that handles listenAddress and listenInterface and call it so that listenAddress or listenInterface is getting populated in the DatabaseDescriptor.
Attachments
Attachments
Issue Links
- duplicates
-
CASSANDRA-14522 sstableloader should use discovered broadcast address to connect intra-cluster
- Resolved
- is related to
-
CASSANDRA-7585 cassandra sstableloader connection refused with inter_node_encryption
- Resolved