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

Stefan Miklosovic edited comment on CASSANDRA-20051 at 11/8/24 11:32 AM:
-------------------------------------------------------------------------

David privately communicated I am OK to merge this. Jeremiah would like to see 
that the behavior is consistent. Jeff says that while it is meaningless 
operation he is not opposing it. I am not sure if I interpret the comment of 
Brandon correctly but he seems to be OK with this being in?

As David showed in Slack, the current behavior is this:

{code}
try (Cluster cluster = Cluster.build(1)
                               .withConfig(c -> 
c.with(Feature.values()).set("seed_provider", new 
ParameterizedClass(SimpleSeedProvider.class.getName(), ImmutableMap.of("seeds", 
"127.0.0.1"))))
                                      .start())
        {
            String seeds = cluster.get(1).callOnInstance(() -> 
Gossiper.instance.getSeeds().toString());
            System.out.println(seeds);
        }
{code}

which shows that seeds are empty. So, when reloading with a seed equal to 
broadcast address of that node, it should be empty as well.

I need to check how it behaves in trunk, 4.0 -> 5.0 should be all fine as that 
logic is not touched, there are some differences in 5.1-SNAPSHOT after the 
introduction of TCM.

I ll get back to this later.

Thank you for your valuable insights and input!




was (Author: smiklosovic):
David privately communicated I am OK to merge this. Jeremiah would like to see 
that the behavior is consistent. Jeff says that while it is meaningless 
operation he is not opposing it. I am not sure if I interpret the comment of 
Brandon correctly but he seems to be OK with this being in?

As David showed in Slack, the current behavior is this:

{code}
try (Cluster cluster = Cluster.build(1)
                               .withConfig(c -> 
c.with(Feature.values()).set("seed_provider", new 
ParameterizedClass(SimpleSeedProvider.class.getName(), ImmutableMap.of("seeds", 
"127.0.0.1"))))
                                      .start())
        {
            String seeds = cluster.get(1).callOnInstance(() -> 
Gossiper.instance.getSeeds().toString());
            System.out.println(seeds);
        }
{code}

which shows that seeds are empty. So, when reloading with a seed equal to 
broadcast address of that node, it should be empty as well.

I need to check how it behaves in trunk, 4.0 -> 5.0 should be all fine as that 
logic is not touched, there are some differences in 5.1-SNAPSHOT after the 
introduction of TCM.

I ll get back to this later.

Thank you for you valuable insights and input!



> nodetool reloadseeds does not reliably reload the seeds
> -------------------------------------------------------
>
>                 Key: CASSANDRA-20051
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20051
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local/Config
>            Reporter: Tibor Repasi
>            Assignee: Stefan Miklosovic
>            Priority: Normal
>             Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
>          Time Spent: 3h 50m
>  Remaining Estimate: 0h
>
> During re-deploying lots of Cassandra nodes I've observed that some nodes 
> does not reliably reload the seeds when {{nodetool reloadseeds}} command was 
> issued.
> After the seeds list was changed in the config:
> {code}
> $ grep seeds /etc/cassandra/cassandra.yaml
>  - seeds: 10.90.44.82
> $ nodetool getseeds
> Current list of seed node IPs, excluding the current node's IP: 
> /10.90.40.86:7000 /10.90.44.86:7000
> $ nodetool reloadseeds
> Updated seed node IP list, excluding the current node's IP: /10.90.40.86:7000 
> /10.90.44.86:7000
> {code}
> At this instance the following line was logged to debug.log:
> {code}
> DEBUG [RMI TCP Connection(103568)-127.0.0.1] 2024-11-04 14:04:27,638 
> YamlConfigurationLoader.java:124 - Loading settings from 
> file:/etc/cassandra/cassandra.yaml
> {code}
> However, getting the old list:
> {code}
> $ nodetool getseeds
> Current list of seed node IPs, excluding the current node's IP: 
> /10.90.40.86:7000 /10.90.44.86:7000
> {code}
> These nodes read the seed list only after Cassandra was restarted:
> {code}
> $ sudo systemctl restart cassandra.service
> $ nodetool getseeds
> Seed node list does not contain any remote node IPs
> {code}
> Note: this was observed on a seed node.
> Observed on Cassandra 4.1.7.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to