This is an automated email from the ASF dual-hosted git repository. ifesdjeen pushed a commit to branch cassandra-3.0 in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 3320f08269eaedd06418d0b8b8fdd2be6f467b51 Merge: 09fd7e8 9705d82 Author: Alex Petrov <oleksandr.pet...@gmail.com> AuthorDate: Wed Feb 5 11:51:02 2020 +0100 Merge branch 'cassandra-2.2' into cassandra-3.0 .../org/apache/cassandra/service/GCInspector.java | 3 +- .../cassandra/distributed/api/IInstanceConfig.java | 4 + .../distributed/impl/AbstractCluster.java | 170 +++++++++++++++------ .../distributed/impl/DistributedTestSnitch.java | 60 +++++++- .../cassandra/distributed/impl/InstanceConfig.java | 10 +- .../distributed/impl/NetworkTopology.java | 60 +++++++- .../cassandra/distributed/test/BootstrapTest.java | 104 +++++++++++++ .../distributed/test/DistributedTestBase.java | 1 + .../distributed/test/NetworkTopologyTest.java | 5 +- 9 files changed, 357 insertions(+), 60 deletions(-) diff --cc src/java/org/apache/cassandra/service/GCInspector.java index e7cfcd0,4f93097..787d79a --- a/src/java/org/apache/cassandra/service/GCInspector.java +++ b/src/java/org/apache/cassandra/service/GCInspector.java @@@ -41,7 -41,8 +41,8 @@@ import org.slf4j.LoggerFactory import org.apache.cassandra.config.DatabaseDescriptor; -import org.apache.cassandra.io.sstable.SSTableDeletingTask; +import org.apache.cassandra.db.lifecycle.LifecycleTransaction; + import org.apache.cassandra.utils.MBeanWrapper; import org.apache.cassandra.utils.StatusLogger; public class GCInspector implements NotificationListener, GCInspectorMXBean diff --cc test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java index 35e2903,f8f157a..9147169 --- a/test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java +++ b/test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java @@@ -51,11 -61,49 +61,49 @@@ public class DistributedTestSnitch exte public String getDatacenter(InetAddressAndPort endpoint) { assert mapping != null : "network topology must be assigned before using snitch"; - return mapping.localDC(endpoint); + return maybeGetFromEndpointState(mapping.localDC(endpoint), endpoint, ApplicationState.DC, DEFAULT_DC); + } + + // Here, the logic is slightly different from what we have in GossipingPropertyFileSnitch since we have a different + // goal. Passed argument (topology that was set on the node) overrides anything that is passed elsewhere. + private String maybeGetFromEndpointState(String current, InetAddressAndPort endpoint, ApplicationState state, String defaultValue) + { + if (current != null) + return current; + + EndpointState epState = Gossiper.instance.getEndpointStateForEndpoint(endpoint.address); + if (epState == null || epState.getApplicationState(state) == null) + { + if (savedEndpoints == null) + { + savedEndpoints = new HashMap<>(); + int storage_port = Config.getOverrideLoadConfig().get().storage_port; + for (Map.Entry<InetAddress, Map<String, String>> entry : SystemKeyspace.loadDcRackInfo().entrySet()) + { + savedEndpoints.put(InetAddressAndPort.getByAddressOverrideDefaults(endpoint.address, storage_port), + entry.getValue()); + } + } - + if (savedEndpoints.containsKey(endpoint)) + return savedEndpoints.get(endpoint).get("data_center"); + + return defaultValue; + } + + return epState.getApplicationState(state).value; } static void assign(NetworkTopology newMapping) { mapping = new NetworkTopology(newMapping); } + + public void gossiperStarting() + { + super.gossiperStarting(); + ++ + Gossiper.instance.addLocalApplicationState(ApplicationState.INTERNAL_IP, + StorageService.instance.valueFactory.internalIP(FBUtilities.getLocalAddress().getHostAddress())); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org