You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by je...@apache.org on 2025/10/24 18:50:12 UTC
(cassandra) branch cassandra-4.1 updated (176519a45c -> c988b609b0)
This is an automated email from the ASF dual-hosted git repository.
jeetkundoug pushed a change to branch cassandra-4.1
in repository https://gitbox.apache.org/repos/asf/cassandra.git
from 176519a45c Merge branch 'cassandra-4.0' into cassandra-4.1
new aa0e2f1631 CASSANDRA-20884 - Move JMX classes to the in-jvm-dtest API project
new c988b609b0 Merge branch 'cassandra-4.0' into cassandra-4.1
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
CHANGES.txt | 4 +
build.xml | 2 +-
ide/nbproject/project.xml | 2 +-
.../utils/RMIClientSocketFactoryImpl.java | 81 --------------------
.../distributed/impl/AbstractCluster.java | 8 +-
.../impl/CollectingRMIServerSocketFactoryImpl.java | 87 ----------------------
.../cassandra/distributed/impl/Instance.java | 3 -
.../cassandra/distributed/impl/IsolatedJmx.java | 4 +-
8 files changed, 10 insertions(+), 181 deletions(-)
delete mode 100644 src/java/org/apache/cassandra/utils/RMIClientSocketFactoryImpl.java
delete mode 100644 test/distributed/org/apache/cassandra/distributed/impl/CollectingRMIServerSocketFactoryImpl.java
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
(cassandra) 01/01: Merge branch 'cassandra-4.0' into cassandra-4.1
Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jeetkundoug pushed a commit to branch cassandra-4.1
in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit c988b609b0239e37f37e3b764728d960220cc3e8
Merge: 176519a45c aa0e2f1631
Author: Doug Rohrer <do...@therohrers.org>
AuthorDate: Fri Oct 24 14:22:02 2025 -0400
Merge branch 'cassandra-4.0' into cassandra-4.1
* cassandra-4.0:
CASSANDRA-20884 - Move JMX classes to the in-jvm-dtest API project
CHANGES.txt | 4 +
build.xml | 2 +-
ide/nbproject/project.xml | 2 +-
.../utils/RMIClientSocketFactoryImpl.java | 81 --------------------
.../distributed/impl/AbstractCluster.java | 8 +-
.../impl/CollectingRMIServerSocketFactoryImpl.java | 87 ----------------------
.../cassandra/distributed/impl/Instance.java | 3 -
.../cassandra/distributed/impl/IsolatedJmx.java | 4 +-
8 files changed, 10 insertions(+), 181 deletions(-)
diff --cc CHANGES.txt
index a742aa8158,ddbee6860e..dc70d2bce4
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,17 -1,9 +1,21 @@@
-4.0.20
++4.1.12
++Merged from 4.0
+ * Updated dtest-api to 0.0.18 and removed JMX-related classes that now live in the dtest-api (CASSANDRA-20884)
+
-4.0.19
+4.1.11
+ * Redact security-sensitive information in system_views.settings (CASSANDRA-20856)
+Merged from 4.0:
* Fixed incorrect error message constant for keyspace name length validation (CASSANDRA-20915)
* update shaded cassandra-driver-core to 3.11.5 (CASSANDRA-20904)
+
+
+4.1.10
+ * Improve CommitLogSegmentReader to skip SyncBlocks correctly in case of CRC errors (CASSANDRA-20664)
+ * Do not crash on first boot with data_disk_usage_max_disk_size set when data directory is not created yet (CASSANDRA-20787)
+ * Rework / simplification of nodetool get/setguardrailsconfig commands (CASSANDRA-20778)
+ * IntrusiveStack.accumulate is not accumulating correctly (CASSANDRA-20670)
+ * Add nodetool get/setguardrailsconfig commands (CASSANDRA-19552)
+Merged from 4.0:
* Prevent too long table names not fitting file names (CASSANDRA-20389)
* Fix IndexOutOfBoundsException in sstablemetadata tool when a range tombstone is a max clustering value (CASSANDRA-20855)
* Update Jackson to 2.19.2 (CASSANDRA-20848)
diff --cc build.xml
index 98159fe84f,1682bc4ace..bb33058ec8
--- a/build.xml
+++ b/build.xml
@@@ -170,8 -160,6 +170,8 @@@
<property name="chronicle-wire.version" value="2.20.117" />
<property name="chronicle-threads.version" value="2.20.111" />
- <property name="dtest-api.version" value="0.0.16" />
++ <property name="dtest-api.version" value="0.0.18" />
+
<condition property="maven-ant-tasks.jar.exists">
<available file="${build.dir}/maven-ant-tasks-${maven-ant-tasks.version}.jar" />
</condition>
diff --cc ide/nbproject/project.xml
index 71f3ee5b31,09460aca11..beccd5683c
--- a/ide/nbproject/project.xml
+++ b/ide/nbproject/project.xml
@@@ -7,7 -7,7 +7,7 @@@
<properties>
<property name="project.dir">..</property>
<!-- the compile classpaths should be distinct per compilation unit… but it is kept simple and the build will catch errors -->
- <property name="cassandra.classpath.jars">${project.dir}/build/lib/jars/HdrHistogram-2.1.12.jar:${project.dir}/build/lib/jars/ST4-4.0.8.jar:${project.dir}/build/lib/jars/airline-0.8.jar:${project.dir}/build/lib/jars/antlr-3.5.2.jar:${project.dir}/build/lib/jars/antlr-runtime-3.5.2.jar:${project.dir}/build/lib/jars/asm-9.1.jar:${project.dir}/build/lib/jars/byteman-4.0.6.jar:${project.dir}/build/lib/jars/byteman-bmunit-4.0.6.jar:${project.dir}/build/lib/jars/byteman-instal [...]
- <property name="cassandra.classpath.jars">${project.dir}/build/lib/jars/HdrHistogram-2.1.12.jar:${project.dir}/build/lib/jars/ST4-4.0.8.jar:${project.dir}/build/lib/jars/airline-0.8.jar:${project.dir}/build/lib/jars/antlr-3.5.2.jar:${project.dir}/build/lib/jars/antlr-runtime-3.5.2.jar:${project.dir}/build/lib/jars/asm-7.1.jar:${project.dir}/build/lib/jars/byteman-4.0.6.jar:${project.dir}/build/lib/jars/byteman-bmunit-4.0.6.jar:${project.dir}/build/lib/jars/byteman-instal [...]
++ <property name="cassandra.classpath.jars">${project.dir}/build/lib/jars/HdrHistogram-2.1.12.jar:${project.dir}/build/lib/jars/ST4-4.0.8.jar:${project.dir}/build/lib/jars/airline-0.8.jar:${project.dir}/build/lib/jars/antlr-3.5.2.jar:${project.dir}/build/lib/jars/antlr-runtime-3.5.2.jar:${project.dir}/build/lib/jars/asm-9.1.jar:${project.dir}/build/lib/jars/byteman-4.0.6.jar:${project.dir}/build/lib/jars/byteman-bmunit-4.0.6.jar:${project.dir}/build/lib/jars/byteman-instal [...]
</properties>
<folders>
<source-folder>
diff --cc test/distributed/org/apache/cassandra/distributed/impl/AbstractCluster.java
index 8296e7b208,4fe139e8e5..af9335a093
--- a/test/distributed/org/apache/cassandra/distributed/impl/AbstractCluster.java
+++ b/test/distributed/org/apache/cassandra/distributed/impl/AbstractCluster.java
@@@ -198,15 -178,8 +198,9 @@@ public abstract class AbstractCluster<
public AbstractBuilder(Factory<I, C, B> factory)
{
super(factory);
+ withSharedClasses(SHARED_PREDICATE);
}
- @SuppressWarnings("unchecked")
- private B self()
- {
- return (B) this;
- }
-
public B withNodeProvisionStrategy(INodeProvisionStrategy.Strategy nodeProvisionStrategy)
{
this.nodeProvisionStrategy = nodeProvisionStrategy;
@@@ -584,45 -450,15 +578,45 @@@
}
@VisibleForTesting
- InstanceConfig createInstanceConfig(int nodeNum)
+ public InstanceConfig createInstanceConfig(int nodeNum)
{
INodeProvisionStrategy provisionStrategy = nodeProvisionStrategy.create(subnet, portMap);
- long token = tokenSupplier.token(nodeNum);
+ Collection<String> tokens = tokenSupplier.tokens(nodeNum);
NetworkTopology topology = buildNetworkTopology(provisionStrategy, nodeIdTopology);
- InstanceConfig config = InstanceConfig.generate(nodeNum, provisionStrategy, topology, root, Long.toString(token), datadirCount);
+ InstanceConfig config = InstanceConfig.generate(nodeNum, provisionStrategy, topology, root, tokens, datadirCount);
config.set(Constants.KEY_DTEST_API_CLUSTER_ID, clusterId.toString());
+ // if a test sets num_tokens directly, then respect it and only run if vnode or no-vnode is defined
+ int defaultTokenCount = config.getInt("num_tokens");
+ assert tokens.size() == defaultTokenCount : String.format("num_tokens=%d but tokens are %s; size does not match", defaultTokenCount, tokens);
+ String defaultTokens = config.getString("initial_token");
if (configUpdater != null)
+ {
configUpdater.accept(config);
+ int testTokenCount = config.getInt("num_tokens");
+ if (defaultTokenCount != testTokenCount)
+ {
+ if (testTokenCount == 1)
+ {
+ // test is no-vnode, but running with vnode, so skip
+ Assume.assumeTrue("vnode is not supported", false);
+ }
+ else
+ {
+ Assume.assumeTrue("no-vnode is requested but not supported", defaultTokenCount > 1);
+ // if the test controls initial_token or GOSSIP is enabled, then the test is safe to run
+ if (defaultTokens.equals(config.getString("initial_token")))
+ {
+ // test didn't define initial_token
+ Assume.assumeTrue("vnode is enabled and num_tokens is defined in test without GOSSIP or setting initial_token", config.has(Feature.GOSSIP));
+ config.remove("initial_token");
+ }
+ else
+ {
+ // test defined initial_token; trust it
+ }
+ }
+ }
+ }
return config;
}
diff --cc test/distributed/org/apache/cassandra/distributed/impl/Instance.java
index 0f96af78b2,caebaa0c26..1b1dd2a255
--- a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
+++ b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
@@@ -148,8 -135,8 +148,7 @@@ import org.apache.cassandra.utils.FBUti
import org.apache.cassandra.utils.JMXServerUtils;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.MBeanWrapper;
- import org.apache.cassandra.utils.RMIClientSocketFactoryImpl;
import org.apache.cassandra.utils.Throwables;
-import org.apache.cassandra.utils.UUIDSerializer;
import org.apache.cassandra.utils.concurrent.Ref;
import org.apache.cassandra.utils.memory.BufferPools;
import org.apache.cassandra.utils.progress.jmx.JMXBroadcastExecutor;
@@@ -182,27 -162,14 +181,25 @@@ public class Instance extends IsolatedE
private JMXServerUtils.JmxRegistry registry;
private RMIJRMPServerImpl jmxRmiServer;
private MBeanWrapper.InstanceMBeanWrapper wrapper;
- private RMIClientSocketFactoryImpl clientSocketFactory;
- private CollectingRMIServerSocketFactoryImpl serverSocketFactory;
private IsolatedJmx isolatedJmx;
- // should never be invoked directly, so that it is instantiated on other class loader;
- // only visible for inheritance
+ @Deprecated
Instance(IInstanceConfig config, ClassLoader classLoader)
{
- super("node" + config.num(), classLoader);
+ this(config, classLoader, null);
+ }
+
+ Instance(IInstanceConfig config, ClassLoader classLoader, FileSystem fileSystem)
+ {
+ this(config, classLoader, fileSystem, null);
+ }
+
+ Instance(IInstanceConfig config, ClassLoader classLoader, FileSystem fileSystem, ShutdownExecutor shutdownExecutor)
+ {
+ super("node" + config.num(), classLoader, executorFactory().pooled("isolatedExecutor", Integer.MAX_VALUE), shutdownExecutor);
this.config = config;
+ if (fileSystem != null)
+ File.unsafeSetFilesystem(fileSystem);
Object clusterId = Objects.requireNonNull(config.get(Constants.KEY_DTEST_API_CLUSTER_ID), "cluster_id is not defined");
ClusterIDDefiner.setId("cluster-" + clusterId);
InstanceIDDefiner.setInstanceId(config.num());
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org