@@ -98,7 +98,12 @@ public void should_receive_changes_made_while_control_connection_is_down_on_reco
9898 // Perform some schema changes that we'll validate when the control connection comes back.
9999 session2 .execute ("drop keyspace ks2" );
100100 session2 .execute ("drop table ks1.tbl2" );
101- session2 .execute ("alter keyspace ks1 with durable_writes=false" );
101+
102+ // Modifying keyspaces with a node down is not possible in 4.0+ (CASSANDRA-14404)
103+ if (!isCassandraVersionOrHigher ("4.0.0" )) {
104+ session2 .execute ("alter keyspace ks1 with durable_writes=false" );
105+ }
106+
102107 session2 .execute ("alter table ks1.tbl1 add new_col varchar" );
103108 session2 .execute (String .format (CREATE_KEYSPACE_SIMPLE_FORMAT , "ks3" , 1 ));
104109 session2 .execute ("create table ks1.tbl3 (k text primary key, v text)" );
@@ -152,8 +157,11 @@ public void should_receive_changes_made_while_control_connection_is_down_on_reco
152157 .isDurableWrites ()
153158 .isEqualTo (prealteredKeyspace );
154159
155- // New metadata should reflect that the durable writes attribute changed.
156- assertThat (alteredKeyspace .getValue ()).hasName ("ks1" ).isNotDurableWrites ();
160+ // Modifying keyspaces with a node down is not possible in 4.0+ (CASSANDRA-14404)
161+ if (!isCassandraVersionOrHigher ("4.0.0" )) {
162+ // New metadata should reflect that the durable writes attribute changed.
163+ assertThat (alteredKeyspace .getValue ()).hasName ("ks1" ).isNotDurableWrites ();
164+ }
157165
158166 // Ensure the alter table event shows up.
159167 ArgumentCaptor <TableMetadata > alteredTable = ArgumentCaptor .forClass (TableMetadata .class );
0 commit comments