diff --git a/.build/run-tests.sh b/.build/run-tests.sh index 8ec8148cfc9..d9ab6241208 100755 --- a/.build/run-tests.sh +++ b/.build/run-tests.sh @@ -203,7 +203,7 @@ _build_all_dtest_jars() { [ "${java_version}" -eq 11 ] && export CASSANDRA_USE_JDK11=true pushd ${TMP_DIR}/cassandra-dtest-jars >/dev/null - for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk ; do + for branch in cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk ; do git clean -qxdff && git reset --hard HEAD || echo "failed to reset/clean ${TMP_DIR}/cassandra-dtest-jars… continuing…" git checkout --quiet $branch dtest_jar_version=$(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p') diff --git a/.circleci/config.yml b/.circleci/config.yml index eb7c6d17809..790404df818 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5045,7 +5045,7 @@ jobs: cd ~/cassandra mkdir ~/dtest_jars git remote add apache https://github.com/apache/cassandra.git - for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk; do + for branch in cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk; do # check out the correct cassandra version: git remote set-branches --add apache '$branch' git fetch --depth 1 apache $branch diff --git a/.circleci/config.yml.FREE b/.circleci/config.yml.FREE index eb7c6d17809..790404df818 100644 --- a/.circleci/config.yml.FREE +++ b/.circleci/config.yml.FREE @@ -5045,7 +5045,7 @@ jobs: cd ~/cassandra mkdir ~/dtest_jars git remote add apache https://github.com/apache/cassandra.git - for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk; do + for branch in cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk; do # check out the correct cassandra version: git remote set-branches --add apache '$branch' git fetch --depth 1 apache $branch diff --git a/.circleci/config.yml.PAID b/.circleci/config.yml.PAID index 92a7eccfb63..a64135449b1 100644 --- a/.circleci/config.yml.PAID +++ b/.circleci/config.yml.PAID @@ -5045,7 +5045,7 @@ jobs: cd ~/cassandra mkdir ~/dtest_jars git remote add apache https://github.com/apache/cassandra.git - for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk; do + for branch in cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk; do # check out the correct cassandra version: git remote set-branches --add apache '$branch' git fetch --depth 1 apache $branch diff --git a/.circleci/config_template.yml b/.circleci/config_template.yml index abae0e8bb0a..c1f0bf0972e 100644 --- a/.circleci/config_template.yml +++ b/.circleci/config_template.yml @@ -2824,7 +2824,7 @@ commands: cd ~/cassandra mkdir ~/dtest_jars git remote add apache https://github.com/apache/cassandra.git - for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk; do + for branch in cassandra-4.1 cassandra-5.0 cassandra-6.0 trunk; do # check out the correct cassandra version: git remote set-branches --add apache '$branch' git fetch --depth 1 apache $branch diff --git a/test/data/config/version=4.0-alpha1.yml b/test/data/config/version=4.0-alpha1.yml deleted file mode 100644 index 872f1ec7dfe..00000000000 --- a/test/data/config/version=4.0-alpha1.yml +++ /dev/null @@ -1,321 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ---- -repaired_data_tracking_for_range_reads_enabled: "java.lang.Boolean" -block_for_peers_timeout_in_secs: "java.lang.Integer" -flush_compression: "org.apache.cassandra.config.Config.FlushCompression" -audit_logging_options: - audit_logs_dir: "java.lang.String" - included_users: "java.lang.String" - logger: - class_name: "java.lang.String" - parameters: "java.util.Map" - excluded_categories: "java.lang.String" - roll_cycle: "java.lang.String" - enabled: "java.lang.Boolean" - included_categories: "java.lang.String" - max_archive_retries: "java.lang.Integer" - excluded_keyspaces: "java.lang.String" - archive_command: "java.lang.String" - included_keyspaces: "java.lang.String" - max_log_size: "java.lang.Long" - allow_nodetool_archive_command: "java.lang.Boolean" - block: "java.lang.Boolean" - excluded_users: "java.lang.String" - max_queue_weight: "java.lang.Integer" -cdc_total_space_in_mb: "java.lang.Integer" -internode_application_send_queue_reserve_global_capacity_in_bytes: "java.lang.Integer" -row_cache_save_period: "java.lang.Integer" -snapshot_links_per_second: "java.lang.Long" -disk_optimization_estimate_percentile: "java.lang.Double" -hinted_handoff_disabled_datacenters: "java.util.Set" -cdc_enabled: "java.lang.Boolean" -read_request_timeout_in_ms: "java.lang.Long" -internode_application_receive_queue_reserve_global_capacity_in_bytes: "java.lang.Integer" -credentials_validity_in_ms: "java.lang.Integer" -memtable_heap_space_in_mb: "java.lang.Integer" -commitlog_sync: "org.apache.cassandra.config.Config.CommitLogSync" -user_defined_function_warn_timeout: "java.lang.Long" -tracetype_repair_ttl: "java.lang.Integer" -concurrent_materialized_view_writes: "java.lang.Integer" -commitlog_total_space_in_mb: "java.lang.Integer" -hints_directory: "java.lang.String" -native_transport_max_concurrent_connections_per_ip: "java.lang.Long" -internode_socket_send_buffer_size_in_bytes: "java.lang.Integer" -rpc_interface_prefer_ipv6: "java.lang.Boolean" -check_for_duplicate_rows_during_compaction: "java.lang.Boolean" -internode_socket_receive_buffer_size_in_bytes: "java.lang.Integer" -user_function_timeout_policy: "org.apache.cassandra.config.Config.UserFunctionTimeoutPolicy" -counter_write_request_timeout_in_ms: "java.lang.Long" -roles_update_interval_in_ms: "java.lang.Integer" -memtable_allocation_type: "org.apache.cassandra.config.Config.MemtableAllocationType" -trickle_fsync_interval_in_kb: "java.lang.Integer" -enable_transient_replication: "java.lang.Boolean" -key_cache_size_in_mb: "java.lang.Long" -tombstone_warn_threshold: "java.lang.Integer" -column_index_cache_size_in_kb: "java.lang.Integer" -full_query_logging_options: - log_dir: "java.lang.String" - archive_command: "java.lang.String" - max_log_size: "java.lang.Long" - allow_nodetool_archive_command: "java.lang.Boolean" - block: "java.lang.Boolean" - roll_cycle: "java.lang.String" - max_queue_weight: "java.lang.Integer" - max_archive_retries: "java.lang.Integer" -table_count_warn_threshold: "java.lang.Integer" -write_request_timeout_in_ms: "java.lang.Long" -internode_tcp_user_timeout_in_ms: "java.lang.Integer" -auto_optimise_inc_repair_streams: "java.lang.Boolean" -commitlog_sync_batch_window_in_ms: "java.lang.Double" -disk_failure_policy: "org.apache.cassandra.config.Config.DiskFailurePolicy" -tombstone_failure_threshold: "java.lang.Integer" -validation_preview_purge_head_start_in_sec: "java.lang.Integer" -max_mutation_size_in_kb: "java.lang.Integer" -initial_token: "java.lang.String" -batch_size_warn_threshold_in_kb: "java.lang.Integer" -dynamic_snitch_badness_threshold: "java.lang.Double" -index_summary_capacity_in_mb: "java.lang.Long" -allocate_tokens_for_local_replication_factor: "java.lang.Integer" -counter_cache_keys_to_save: "java.lang.Integer" -disk_optimization_page_cross_chance: "java.lang.Double" -listen_on_broadcast_address: "java.lang.Boolean" -internode_application_receive_queue_reserve_endpoint_capacity_in_bytes: "java.lang.Integer" -row_cache_class_name: "java.lang.String" -gc_warn_threshold_in_ms: "java.lang.Integer" -disk_optimization_strategy: "org.apache.cassandra.config.Config.DiskOptimizationStrategy" -hinted_handoff_throttle_in_kb: "java.lang.Integer" -otc_backlog_expiration_interval_ms: "java.lang.Integer" -counter_cache_save_period: "java.lang.Integer" -keyspace_count_warn_threshold: "java.lang.Integer" -hints_flush_period_in_ms: "java.lang.Integer" -role_manager: "java.lang.String" -block_for_peers_in_remote_dcs: "java.lang.Boolean" -repair_command_pool_size: "java.lang.Integer" -column_index_size_in_kb: "java.lang.Integer" -memtable_offheap_space_in_mb: "java.lang.Integer" -data_file_directories: "java.util.List" -native_transport_max_frame_size_in_mb: "java.lang.Integer" -index_summary_resize_interval_in_minutes: "java.lang.Integer" -enable_user_defined_functions: "java.lang.Boolean" -max_hint_window_in_ms: "java.lang.Integer" -seed_provider: - class_name: "java.lang.String" - parameters: "java.util.Map" -check_for_duplicate_rows_during_reads: "java.lang.Boolean" -key_cache_migrate_during_compaction: "java.lang.Boolean" -network_authorizer: "java.lang.String" -batchlog_replay_throttle_in_kb: "java.lang.Integer" -enable_scripted_user_defined_functions: "java.lang.Boolean" -internode_application_send_queue_reserve_endpoint_capacity_in_bytes: "java.lang.Integer" -commitlog_compression: - class_name: "java.lang.String" - parameters: "java.util.Map" -broadcast_address: "java.lang.String" -credentials_update_interval_in_ms: "java.lang.Integer" -snapshot_before_compaction: "java.lang.Boolean" -back_pressure_strategy: - class_name: "java.lang.String" - parameters: "java.util.Map" -prepared_statements_cache_size_mb: "java.lang.Long" -native_transport_port_ssl: "java.lang.Integer" -allocate_tokens_for_keyspace: "java.lang.String" -diagnostic_events_enabled: "java.lang.Boolean" -storage_port: "java.lang.Integer" -counter_cache_size_in_mb: "java.lang.Long" -repair_request_timeout_in_ms: "java.lang.Long" -dynamic_snitch_reset_interval_in_ms: "java.lang.Integer" -tracetype_query_ttl: "java.lang.Integer" -autocompaction_on_startup_enabled: "java.lang.Boolean" -commit_failure_policy: "org.apache.cassandra.config.Config.CommitFailurePolicy" -concurrent_writes: "java.lang.Integer" -range_request_timeout_in_ms: "java.lang.Long" -dynamic_snitch_update_interval_in_ms: "java.lang.Integer" -hinted_handoff_enabled: "java.lang.Boolean" -internode_application_receive_queue_capacity_in_bytes: "java.lang.Integer" -automatic_sstable_upgrade: "java.lang.Boolean" -max_value_size_in_mb: "java.lang.Integer" -memtable_flush_writers: "java.lang.Integer" -otc_coalescing_strategy: "java.lang.String" -snapshot_on_repaired_data_mismatch: "java.lang.Boolean" -commitlog_max_compression_buffers_in_pool: "java.lang.Integer" -internode_application_send_queue_capacity_in_bytes: "java.lang.Integer" -roles_cache_max_entries: "java.lang.Integer" -native_transport_max_negotiable_protocol_version: "java.lang.Integer" -start_native_transport: "java.lang.Boolean" -ssl_storage_port: "java.lang.Integer" -cluster_name: "java.lang.String" -incremental_backups: "java.lang.Boolean" -key_cache_save_period: "java.lang.Integer" -windows_timer_interval: "java.lang.Integer" -rpc_interface: "java.lang.String" -repair_session_space_in_mb: "java.lang.Integer" -row_cache_keys_to_save: "java.lang.Integer" -repair_command_pool_full_strategy: "org.apache.cassandra.config.Config.RepairCommandPoolFullStrategy" -inter_dc_stream_throughput_outbound_megabits_per_sec: "java.lang.Integer" -client_encryption_options: - optional: "java.lang.Boolean" - store_type: "java.lang.String" - cipher_suites: "java.util.List" - enabled: "java.lang.Boolean" - require_endpoint_verification: "java.lang.Boolean" - accepted_protocols: "java.util.List" - keystore_password: "java.lang.String" - protocol: "java.lang.String" - require_client_auth: "java.lang.Boolean" - truststore_password: "java.lang.String" - keystore: "java.lang.String" - truststore: "java.lang.String" - algorithm: "java.lang.String" -concurrent_validations: "java.lang.Integer" -ideal_consistency_level: "org.apache.cassandra.db.ConsistencyLevel" -consecutive_message_errors_threshold: "java.lang.Integer" -trickle_fsync: "java.lang.Boolean" -reject_repair_compaction_threshold: "java.lang.Integer" -max_streaming_retries: "java.lang.Integer" -native_transport_flush_in_batches_legacy: "java.lang.Boolean" -rpc_address: "java.lang.String" -file_cache_enabled: "java.lang.Boolean" -cdc_raw_directory: "java.lang.String" -num_tokens: "java.lang.Integer" -repaired_data_tracking_for_partition_reads_enabled: "java.lang.Boolean" -enable_drop_compact_storage: "java.lang.Boolean" -commitlog_directory: "java.lang.String" -unlogged_batch_across_partitions_warn_threshold: "java.lang.Integer" -auto_bootstrap: "java.lang.Boolean" -authorizer: "java.lang.String" -sstable_preemptive_open_interval_in_mb: "java.lang.Integer" -broadcast_rpc_address: "java.lang.String" -listen_interface_prefer_ipv6: "java.lang.Boolean" -repair_session_max_tree_depth: "java.lang.Integer" -auto_optimise_preview_repair_streams: "java.lang.Boolean" -concurrent_compactors: "java.lang.Integer" -buffer_pool_use_heap_if_exhausted: "java.lang.Boolean" -local_system_data_file_directory: "java.lang.String" -stream_entire_sstables: "java.lang.Boolean" -corrupted_tombstone_strategy: "org.apache.cassandra.config.Config.CorruptedTombstoneStrategy" -listen_address: "java.lang.String" -rpc_keepalive: "java.lang.Boolean" -allow_extra_insecure_udfs: "java.lang.Boolean" -request_timeout_in_ms: "java.lang.Long" -disk_access_mode: "org.apache.cassandra.config.Config.DiskAccessMode" -concurrent_counter_writes: "java.lang.Integer" -row_cache_size_in_mb: "java.lang.Long" -cas_contention_timeout_in_ms: "java.lang.Long" -min_free_space_per_drive_in_mb: "java.lang.Integer" -cross_node_timeout: "java.lang.Boolean" -dynamic_snitch: "java.lang.Boolean" -permissions_validity_in_ms: "java.lang.Integer" -phi_convict_threshold: "java.lang.Double" -native_transport_max_threads: "java.lang.Integer" -permissions_update_interval_in_ms: "java.lang.Integer" -authenticator: "java.lang.String" -allow_insecure_udfs: "java.lang.Boolean" -cache_load_timeout_seconds: "java.lang.Integer" -concurrent_replicates: "java.lang.Integer" -commitlog_sync_period_in_ms: "java.lang.Integer" -auto_optimise_full_repair_streams: "java.lang.Boolean" -internode_max_message_size_in_bytes: "java.lang.Integer" -native_transport_max_concurrent_requests_in_bytes: "java.lang.Long" -compaction_large_partition_warning_threshold_mb: "java.lang.Integer" -enable_user_defined_functions_threads: "java.lang.Boolean" -native_transport_allow_older_protocols: "java.lang.Boolean" -otc_coalescing_enough_coalesced_messages: "java.lang.Integer" -slow_query_log_timeout_in_ms: "java.lang.Long" -report_unconfirmed_repaired_data_mismatches: "java.lang.Boolean" -use_offheap_merkle_trees: "java.lang.Boolean" -concurrent_materialized_view_builders: "java.lang.Integer" -server_encryption_options: - enable_legacy_ssl_storage_port: "java.lang.Boolean" - optional: "java.lang.Boolean" - store_type: "java.lang.String" - cipher_suites: "java.util.List" - enabled: "java.lang.Boolean" - require_endpoint_verification: "java.lang.Boolean" - accepted_protocols: "java.util.List" - keystore_password: "java.lang.String" - protocol: "java.lang.String" - require_client_auth: "java.lang.Boolean" - internode_encryption: "org.apache.cassandra.config.EncryptionOptions.ServerEncryptionOptions.InternodeEncryption" - truststore_password: "java.lang.String" - keystore: "java.lang.String" - truststore: "java.lang.String" - algorithm: "java.lang.String" -max_hints_delivery_threads: "java.lang.Integer" -native_transport_idle_timeout_in_ms: "java.lang.Long" -saved_caches_directory: "java.lang.String" -max_concurrent_automatic_sstable_upgrades: "java.lang.Integer" -file_cache_round_up: "java.lang.Boolean" -streaming_keep_alive_period_in_secs: "java.lang.Integer" -enable_sasi_indexes: "java.lang.Boolean" -gc_log_threshold_in_ms: "java.lang.Integer" -snapshot_on_duplicate_row_detection: "java.lang.Boolean" -commitlog_sync_group_window_in_ms: "java.lang.Double" -internode_compression: "org.apache.cassandra.config.Config.InternodeCompression" -otc_coalescing_window_us: "java.lang.Integer" -credentials_cache_max_entries: "java.lang.Integer" -periodic_commitlog_sync_lag_block_in_ms: "java.lang.Integer" -enable_materialized_views: "java.lang.Boolean" -roles_validity_in_ms: "java.lang.Integer" -networking_cache_size_in_mb: "java.lang.Integer" -native_transport_port: "java.lang.Integer" -permissions_cache_max_entries: "java.lang.Integer" -stream_throughput_outbound_megabits_per_sec: "java.lang.Integer" -hints_compression: - class_name: "java.lang.String" - parameters: "java.util.Map" -commitlog_periodic_queue_size: "java.lang.Integer" -force_new_prepared_statement_behaviour: "java.lang.Boolean" -back_pressure_enabled: "java.lang.Boolean" -cdc_free_space_check_interval_ms: "java.lang.Integer" -transparent_data_encryption_options: - cipher: "java.lang.String" - chunk_length_kb: "java.lang.Integer" - iv_length: "java.lang.Integer" - key_alias: "java.lang.String" - key_provider: - class_name: "java.lang.String" - parameters: "java.util.Map" - enabled: "java.lang.Boolean" -initial_range_tombstone_list_allocation_size: "java.lang.Integer" -partitioner: "java.lang.String" -listen_interface: "java.lang.String" -user_defined_function_fail_timeout: "java.lang.Long" -file_cache_size_in_mb: "java.lang.Integer" -inter_dc_tcp_nodelay: "java.lang.Boolean" -internode_authenticator: "java.lang.String" -key_cache_keys_to_save: "java.lang.Integer" -commitlog_segment_size_in_mb: "java.lang.Integer" -replica_filtering_protection: - cached_rows_fail_threshold: "java.lang.Integer" - cached_rows_warn_threshold: "java.lang.Integer" -internode_tcp_connect_timeout_in_ms: "java.lang.Integer" -native_transport_max_concurrent_requests_in_bytes_per_ip: "java.lang.Long" -range_tombstone_list_growth_factor: "java.lang.Double" -native_transport_max_concurrent_connections: "java.lang.Long" -memtable_cleanup_threshold: "java.lang.Float" -concurrent_reads: "java.lang.Integer" -streaming_connections_per_host: "java.lang.Integer" -truncate_request_timeout_in_ms: "java.lang.Long" -auto_snapshot: "java.lang.Boolean" -native_transport_receive_queue_capacity_in_bytes: "java.lang.Integer" -internode_streaming_tcp_user_timeout_in_ms: "java.lang.Integer" -batch_size_fail_threshold_in_kb: "java.lang.Integer" -compaction_throughput_mb_per_sec: "java.lang.Integer" -max_hints_file_size_in_mb: "java.lang.Integer" -endpoint_snitch: "java.lang.String" diff --git a/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java b/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java index e16320823ea..a2ed25a6983 100644 --- a/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java +++ b/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java @@ -373,12 +373,6 @@ public InstanceConfig forVersion(Semver version) config.remove("node_proximity"); config.set("endpoint_snitch", "org.apache.cassandra.distributed.impl.DistributedTestSnitch"); - // 4.0+ has seed_provider without port - if (version.compareTo(UpgradeTestBase.v40) >= 0) - return config; - - config.set("seed_provider", new ParameterizedClass(SimpleSeedProvider.class.getName(), - Collections.singletonMap("seeds", "127.0.0.1"))); return config; } diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/BatchUpgradeTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/BatchUpgradeTest.java index c62b28b8ac0..7976f3f133b 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/BatchUpgradeTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/BatchUpgradeTest.java @@ -35,7 +35,7 @@ public void batchTest() throws Throwable .nodes(2) .nodesToUpgrade(2) .withConfig(c -> c.with(Feature.GOSSIP)) - .upgradesToCurrentFrom(v40).setup((cluster) -> { + .upgradesToCurrentFrom(v41).setup((cluster) -> { cluster.schemaChange("CREATE TABLE " + KEYSPACE + ".users (" + "userid uuid PRIMARY KEY," + "firstname ascii," + diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageColumnDeleteTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageColumnDeleteTest.java index 520d077082b..50b9d3ae8fc 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageColumnDeleteTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageColumnDeleteTest.java @@ -35,7 +35,7 @@ public void testColumnDeleteWithCompactStorage() throws Throwable .nodes(2) .nodesToUpgrade(2) .withConfig(c -> c.with(Feature.GOSSIP)) - .upgradesToCurrentFrom(v40) + .upgradesToCurrentFrom(v41) .setup((cluster) -> { cluster.schemaChange("CREATE TABLE " + KEYSPACE + ".tbl (pk int, ck int, v int, PRIMARY KEY (pk, ck)) WITH COMPACT STORAGE"); }) diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageHiddenColumnTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageHiddenColumnTest.java index 91b2b8137b9..6f23b4a4199 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageHiddenColumnTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageHiddenColumnTest.java @@ -35,7 +35,7 @@ public void testHiddenColumnWithCompactStorage() throws Throwable .nodes(2) .nodesToUpgrade(2) .withConfig(c -> c.with(Feature.GOSSIP)) - .upgradesToCurrentFrom(v40) + .upgradesToCurrentFrom(v41) .setup((cluster) -> { cluster.schemaChange("CREATE TABLE " + KEYSPACE + ".tbl (pk int, ck int, PRIMARY KEY (pk, ck)) WITH COMPACT STORAGE"); }) diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageImplicitNullInClusteringTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageImplicitNullInClusteringTest.java index 09f39769258..c4859b5b19a 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageImplicitNullInClusteringTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStorageImplicitNullInClusteringTest.java @@ -35,7 +35,7 @@ public void testImplicitNullInClusteringWithCompactStorage() throws Throwable .nodes(2) .nodesToUpgrade(2) .withConfig(c -> c.with(Feature.GOSSIP)) - .upgradesToCurrentFrom(v40) + .upgradesToCurrentFrom(v41) .setup((cluster) -> { cluster.schemaChange("CREATE TABLE " + KEYSPACE + ".tbl (pk int, ck1 int, ck2 int, v int, PRIMARY KEY (pk, ck1, ck2)) WITH COMPACT STORAGE"); }) diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStoragePagingTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStoragePagingTest.java index 9298631a8db..c64ae8a55e0 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStoragePagingTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStoragePagingTest.java @@ -35,7 +35,7 @@ public void testPagingWithCompactStorage() throws Throwable .nodes(2) .nodesToUpgrade(2) .withConfig(c -> c.with(Feature.GOSSIP)) - .upgradesToCurrentFrom(v40) + .upgradesToCurrentFrom(v41) .setup((cluster) -> { cluster.schemaChange("CREATE TABLE " + KEYSPACE + ".tbl (pk int, ck int, v int, PRIMARY KEY (pk, ck)) WITH COMPACT STORAGE"); for (int i = 1; i < 10; i++) diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStoragePagingWithProtocolV40Test.java b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStoragePagingWithProtocolV40Test.java deleted file mode 100644 index d245d9fdb7e..00000000000 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactStoragePagingWithProtocolV40Test.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.cassandra.distributed.upgrade; - -import com.vdurmont.semver4j.Semver; - -/** - * {@link CompactStoragePagingWithProtocolTester} for v40 -> CURRENT upgrade path. - */ -public class CompactStoragePagingWithProtocolV40Test extends CompactStoragePagingWithProtocolTester -{ - @Override - protected Semver initialVersion() - { - return v40; - } -} diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactionHistorySystemTableUpgradeTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactionHistorySystemTableUpgradeTest.java index 5f310279b38..2f626947b25 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactionHistorySystemTableUpgradeTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactionHistorySystemTableUpgradeTest.java @@ -40,8 +40,6 @@ public void compactionHistorySystemTableTest() throws Throwable new TestCase() .nodes(1) .nodesToUpgrade(1) - // all upgrades from v40 to current, excluding v50 -> v51 - .singleUpgradeToCurrentFrom(v40) .singleUpgradeToCurrentFrom(v41) .withConfig(c -> c.with(Feature.GOSSIP)) .setup((cluster) -> { diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/ConfigCompatibilityTestGenerate.java b/test/distributed/org/apache/cassandra/distributed/upgrade/ConfigCompatibilityTestGenerate.java index 23a3f216696..ed2ac4adf2d 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/ConfigCompatibilityTestGenerate.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/ConfigCompatibilityTestGenerate.java @@ -34,7 +34,6 @@ import static org.apache.cassandra.config.ConfigCompatibilityTest.TEST_DIR; import static org.apache.cassandra.config.ConfigCompatibilityTest.dump; import static org.apache.cassandra.config.ConfigCompatibilityTest.toTree; -import static org.apache.cassandra.distributed.upgrade.UpgradeTestBase.v40; import static org.apache.cassandra.distributed.upgrade.UpgradeTestBase.v41; import static org.apache.cassandra.distributed.upgrade.UpgradeTestBase.v50; @@ -47,7 +46,7 @@ public static void main(String[] args) throws Throwable { ICluster.setup(); Versions versions = Versions.find(); - for (Semver version : Arrays.asList(v40, v41, v50)) + for (Semver version : Arrays.asList(v41, v50)) { File path = new File(TEST_DIR, "version=" + version + ".yml"); path.getParentFile().mkdirs(); diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeIndexV40Test.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeIndexV40Test.java deleted file mode 100644 index bd4488b928b..00000000000 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeIndexV40Test.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.cassandra.distributed.upgrade; - -import org.junit.Test; - -/** - * {@link MixedModeIndexTestBase} for upgrades from 4.0. - */ -public class MixedModeIndexV40Test extends MixedModeIndexTestBase -{ - @Test - public void testIndex() throws Throwable - { - testIndex(v40); - } -} diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeMessageForwardTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeMessageForwardTest.java index 766bbef5424..d1386eec341 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeMessageForwardTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeMessageForwardTest.java @@ -104,7 +104,7 @@ public void checkWritesForwardedToOtherDcTest() throws Throwable .withConfig(c -> c.with(Feature.GOSSIP, Feature.NETWORK)) .withBuilder(b -> b.withRacks(numDCs, 1, nodesPerDc)) .nodes(numDCs * nodesPerDc) - .upgradesToCurrentFrom(v40) + .upgradesToCurrentFrom(v41) .setup(cluster -> { cluster.schemaChange("ALTER KEYSPACE " + KEYSPACE + " WITH replication = {'class': 'NetworkTopologyStrategy', " + ntsArgs + " };"); diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModePaxosTTLTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModePaxosTTLTest.java index 63d2497ad80..f78d9b38249 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModePaxosTTLTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModePaxosTTLTest.java @@ -33,22 +33,12 @@ public class MixedModePaxosTTLTest extends UpgradeTestBase /** * Tests the mixed mode paxos loop bug in CASSANDRA-20514 * - * CEP-14 changed the ttl behavior of legacy paxos state to expire based off the ballot time of the operation being - * persisted, not the time a commit is persisted. This eliminated the race addressed by CASSANDRA-12043, and so the - * check it added to the most recent commit prepare logic was removed. - * - * When operating in mixed mode though, this can still be a problem. If a 4.1 or higher node is coordinating a paxos - * operation with 2 or more replicas on 4.0 or lower, this race becomes a problem again. You need 3 things to make - * this an infinite loop - * 1. a 4.1 node coordinating a paxos operation with 2x 4.0 replicas - * 2. replica A) a 4.0 node returns a most recent commit for a ballot that's could have been ttld - * 3. replica B) a 4.0 node has ttl'd that mrc AND converted the ttld cells into tombstones - * - * The 4.1 coordinator receives the mrc from replica A, but since it no longer disregards missing most recent commits - * past the ttl window, it sends the "missing" commit to replica B. Since replica B now has a tombstone for that mrc, - * and tombstones win when reconciled with live cells, even ones with ttls, the commit is a noop and it continues - * to report nothing for its mrc value when the coordinator restarts the prepare phase. This loops until the query - * times out. + * Regression test for mixed-mode paxos with ttl'd legacy paxos state. CEP-14 made legacy paxos + * state expire off the ballot time rather than the commit-persist time, which eliminated the race + * addressed by CASSANDRA-12043 and let that check be removed. Historically, a post-CEP-14 + * coordinator paired with pre-CEP-14 replicas could hit an infinite prepare loop when a tombstoned + * most-recent-commit on one replica shadowed the coordinator's resend. This test keeps the + * scenario covered for current upgrade paths. */ @Test public void legacyExpiredStateTest() throws Throwable @@ -61,7 +51,7 @@ public void legacyExpiredStateTest() throws Throwable .withConfig(c -> c.with(Feature.GOSSIP, Feature.NETWORK).set("cas_contention_timeout", "500ms")) .nodes(3) .nodesToUpgrade(1) - .upgradesToCurrentFrom(v40) + .upgradesToCurrentFrom(v41) .setup(cluster -> { cluster.schemaChange(format("CREATE KEYSPACE %s WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': '2'}", keyspace)); cluster.schemaChange(format("CREATE TABLE %s.%s (k int primary key, v int) " + diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModePaxosTestBase.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModePaxosTestBase.java index e238e8c00c2..827d3ac3c08 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModePaxosTestBase.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModePaxosTestBase.java @@ -52,24 +52,12 @@ public abstract class MixedModePaxosTestBase extends UpgradeTestBase /** * Tests the mixed mode loop bug in CASSANDRA-20493 *

- * Paxos uses a 'zero' ballot in place of null when it doesn't find a ballot in system.paxos. CEP-14 changed the lsb - * of the zero ballot uuid from the TimeUUID.MIN_CLOCK_SEQ_AND_NODE value of 0x8080808080808080 (-9187201950435737472) - * to 0. It also removed the check added in CASSANDRA-12043, since the way it read and filtered ttld paxos data had - * been improved. - *

- * In mixed mode with a 4.0 or lower replica and a 4.1 and higher paxos coordinator, and in the absence of existing - * paxos metadata for the key being queried, the prepare phase will interpret the mismatched ‘zero’ ballots as the - * 4.0 and lower nodes having missed the most recent commit and will attempt to update them using the 4.1 zero ballot - * and empty partition update. - *

- * In cases where this is the first paxos operation on a key, or the previously ttl'd paxos data on disk had been purged, - * this would just add a retry step as it updated the 4.0 and lower hosts with its zero ballot. - *

- * On nodes where there was ttl'd paxos data though, the ttl'd data on disk would shadow this update. This would - * happen because paxos commits are recorded to system.paxos using the ballot timestamp as the write timestamp, so - * the more recent write updating the commit with timestamp 0 would be shadowed by the now ttl’d write with a ‘real’ - * timestamp. When the prepare phase restarted it would again get the old zero value and cause the prepare phase to - * get into an infinite loop. + * Regression test for mixed-mode paxos with TTL'd paxos data on disk. CEP-14 changed the lsb of the + * zero ballot uuid from TimeUUID.MIN_CLOCK_SEQ_AND_NODE (0x8080808080808080) to 0 and removed the + * CASSANDRA-12043 check; the historical concern was that pre-CEP-14 replicas paired with newer + * coordinators could get stuck in an infinite prepare loop when ttl'd system.paxos data shadowed + * the coordinator's zero-ballot update. This test keeps the scenario covered for current upgrade + * paths. */ private void ttldPaxosStateTest(boolean legacyAware, boolean upgradeAware) throws Throwable { @@ -81,7 +69,7 @@ private void ttldPaxosStateTest(boolean legacyAware, boolean upgradeAware) throw .withConfig(c -> c.with(Feature.GOSSIP, Feature.NETWORK)) .nodes(2) .nodesToUpgrade(1) - .upgradesToCurrentFrom(v40) + .upgradesToCurrentFrom(v41) .setup(cluster -> { cluster.schemaChange(format("CREATE TABLE %s.%s (k int primary key, v int) " + "WITH gc_grace_seconds=%s", keyspace, table, gcGrace)); diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeRepairTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeRepairTest.java index a886d04764d..4db35366a34 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeRepairTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeRepairTest.java @@ -44,9 +44,7 @@ public class MixedModeRepairTest extends UpgradeTestBase public static final String SELECT = withKeyspace("SELECT * FROM %s.t WHERE k=?"); /** - * Test that repairs fail during a major upgrade. If the repaired node is >= 4.0 thanks to CASSANDRA-13944 there - * will be an informative message. Otherwise, if the repaired node is below 4.0, there won't be such an informative - * message and the repair will take very long to timeout. + * Test that repairs fail during a major upgrade with an informative message (CASSANDRA-13944). */ @Test public void testRepairDuringMajorUpgrade() throws Throwable @@ -54,7 +52,7 @@ public void testRepairDuringMajorUpgrade() throws Throwable new UpgradeTestBase.TestCase() .nodes(2) .nodesToUpgrade(UPGRADED_NODE) - .upgradesToCurrentFrom(v40) + .upgradesToCurrentFrom(v41) .withConfig(config -> config.with(NETWORK, GOSSIP).set("storage_compatibility_mode", "CASSANDRA_4")) .setup(cluster -> { cluster.schemaChange(CREATE_TABLE); diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeTTLOverflowUpgradeTestBase.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeTTLOverflowUpgradeTestBase.java index 618f3ebb2e8..e93a1e18d52 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeTTLOverflowUpgradeTestBase.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeTTLOverflowUpgradeTestBase.java @@ -111,8 +111,6 @@ static void testTTLOverflow(RunOnClusterAndNode runAfterNodeUpgrade) throws Thro new TestCase() .nodes(2) .nodesToUpgradeOrdered(1, 2) - // all upgrades from v40 to current, excluding v50 -> v51 - .singleUpgradeToCurrentFrom(v40) .singleUpgradeToCurrentFrom(v41) .withConfig(c -> c.with(Feature.GOSSIP).set("storage_compatibility_mode", "CASSANDRA_4")) .setup(cluster -> { diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeWritetimeOrTTLTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeWritetimeOrTTLTest.java index 6674335bd51..a6d9e9ff4c7 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeWritetimeOrTTLTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeWritetimeOrTTLTest.java @@ -53,8 +53,6 @@ public void testWritetimeOrTTLDuringUpgrade() throws Throwable new TestCase() .nodes(2) .nodesToUpgradeOrdered(1, 2) - // all upgrades from v40 to current, excluding v50 -> v51 - .singleUpgradeToCurrentFrom(v40) .singleUpgradeToCurrentFrom(v41) .withConfig(c -> c.with(Feature.GOSSIP)) .setup(cluster -> { diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/Pre40MessageFilterTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/Pre40MessageFilterTest.java deleted file mode 100644 index 4aba07b5fb1..00000000000 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/Pre40MessageFilterTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.cassandra.distributed.upgrade; - -import java.util.function.Consumer; - -import org.junit.Test; - -import org.apache.cassandra.distributed.api.ConsistencyLevel; -import org.apache.cassandra.distributed.api.Feature; -import org.apache.cassandra.distributed.api.IInstanceConfig; - -public class Pre40MessageFilterTest extends UpgradeTestBase -{ - public void reserializePre40RequestPaxosTest(Consumer configConsumer) throws Throwable - { - new UpgradeTestBase.TestCase() - .nodes(2) - .withConfig(configConsumer) - .nodesToUpgrade(1) - .upgradesToCurrentFrom(v40) - .setup((cluster) -> { - cluster.filters().outbound().allVerbs().messagesMatching((f,t,m) -> false).drop(); - cluster.schemaChange("CREATE TABLE " + KEYSPACE + ".tbl (pk int, ck int, v int, PRIMARY KEY (pk, ck))"); - cluster.coordinator(1).execute("INSERT INTO " + KEYSPACE + ".tbl(pk,ck,v) VALUES (1, 1, 1) IF NOT EXISTS", - ConsistencyLevel.QUORUM, - 1); - }) - .runAfterNodeUpgrade((cluster, node) -> { - cluster.coordinator(node).execute("UPDATE " + KEYSPACE + ".tbl SET v = ? WHERE pk = ? AND ck = ? IF v = ?", - ConsistencyLevel.QUORUM, - 2, 1, 1, 1); - }).run(); - } - - @Test - public void reserializePre40RequestPaxosWithoutNetworkTest() throws Throwable - { - reserializePre40RequestPaxosTest(config -> config.with(Feature.GOSSIP)); - } - - @Test - public void reserializePre40RequestPaxosWithNetworkTest() throws Throwable - { - reserializePre40RequestPaxosTest(config -> config.with(Feature.NETWORK, Feature.GOSSIP)); - } -} diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/RepairRequestTimeoutUpgradeTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/RepairRequestTimeoutUpgradeTest.java deleted file mode 100644 index 4929d8dea65..00000000000 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/RepairRequestTimeoutUpgradeTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.cassandra.distributed.upgrade; - -import org.junit.Test; - -import org.apache.cassandra.distributed.api.Feature; - -import static org.apache.cassandra.net.Verb.VALIDATION_REQ; - -public class RepairRequestTimeoutUpgradeTest extends UpgradeTestBase -{ - @Test - public void simpleUpgradeWithNetworkAndGossipTest() throws Throwable - { - new TestCase() - .nodes(2) - .nodesToUpgrade(1) - .withConfig((cfg) -> cfg.with(Feature.NETWORK, Feature.GOSSIP).set("repair_request_timeout_in_ms", 1000)) - .upgrades(v40, v41) - .setup((cluster) -> { - cluster.schemaChange("CREATE TABLE " + KEYSPACE + ".tbl (pk int, ck int, v int, PRIMARY KEY (pk, ck))"); - for (int i = 0; i < 10; i++) - cluster.get(i % 2 + 1).executeInternal("INSERT INTO " + KEYSPACE + ".tbl (pk, ck, v) VALUES ("+i+", 1, 1)"); - cluster.forEach(i -> i.flush(KEYSPACE)); - }) - .runAfterNodeUpgrade((cluster, node) -> { - cluster.filters().verbs(VALIDATION_REQ.id).drop(); - cluster.get(2).nodetoolResult("repair", KEYSPACE, "-full").asserts().failure(); - cluster.filters().reset(); - for (int i = 10; i < 20; i++) - cluster.get(i % 2 + 1).executeInternal("INSERT INTO " + KEYSPACE + ".tbl (pk, ck, v) VALUES ("+i+", 1, 1)"); - cluster.forEach(i -> i.flush(KEYSPACE)); - cluster.get(1).nodetoolResult("repair", KEYSPACE, "-full").asserts().success(); - }).run(); - } -} diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/UpgradeTestBase.java b/test/distributed/org/apache/cassandra/distributed/upgrade/UpgradeTestBase.java index 4c958998e77..b9eefc39cab 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/UpgradeTestBase.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/UpgradeTestBase.java @@ -95,7 +95,6 @@ public static interface RunOnClusterAndNode public void run(UpgradeableCluster cluster, int node) throws Throwable; } - public static final Semver v40 = new Semver("4.0-alpha1", SemverType.LOOSE); public static final Semver v41 = new Semver("4.1-alpha1", SemverType.LOOSE); public static final Semver v42 = new Semver("4.2-alpha1", SemverType.LOOSE); public static final Semver v50 = new Semver("5.0-alpha1", SemverType.LOOSE); @@ -103,13 +102,6 @@ public static interface RunOnClusterAndNode public static final Semver v70 = new Semver("7.0-alpha1", SemverType.LOOSE); protected static final SimpleGraph SUPPORTED_UPGRADE_PATHS = new SimpleGraph.Builder() - // 40 edges are here temporarily - // until we resolve CASSANDRA-21324 - .addEdge(v40, v41) - .addEdge(v40, v50) - .addEdge(v40, v60) - .addEdge(v40, v70) - ///// .addEdge(v41, v50) .addEdge(v41, v60) .addEdge(v41, v70) diff --git a/test/unit/org/apache/cassandra/config/ConfigCompatibilityTest.java b/test/unit/org/apache/cassandra/config/ConfigCompatibilityTest.java index 5b0010eef83..a060765a878 100644 --- a/test/unit/org/apache/cassandra/config/ConfigCompatibilityTest.java +++ b/test/unit/org/apache/cassandra/config/ConfigCompatibilityTest.java @@ -143,15 +143,6 @@ public void diff_3_11() throws IOException diff(TEST_DIR + "/version=3.11.0.yml", ALLOW_LIST, EXPECTED_FOR_50); } - @Test - public void diff_4_0() throws IOException - { - diff(TEST_DIR + "/version=4.0-alpha1.yml", ImmutableSet.builder() - .addAll(WINDOWS) - .addAll(ALLOW_LIST) - .build(), EXPECTED_FOR_50); - } - @Test public void diff_4_1() throws IOException {