Merge pull request #13717 from rabbitmq/mergify/bp/v4.1.x/pr-13470
Fix test flakes in various testsuites (backport #13470)
This commit is contained in:
		
						commit
						2a70d36710
					
				|  | @ -57,7 +57,7 @@ | ||||||
|          logging_to_syslog_works/1]). |          logging_to_syslog_works/1]). | ||||||
| 
 | 
 | ||||||
| suite() -> | suite() -> | ||||||
|     [{timetrap, {minutes, 1}}]. |     [{timetrap, {minutes, 3}}]. | ||||||
| 
 | 
 | ||||||
| all() -> | all() -> | ||||||
|     [ |     [ | ||||||
|  |  | ||||||
|  | @ -35,8 +35,10 @@ end_per_suite(Config) -> | ||||||
|     rabbit_ct_helpers:run_teardown_steps(Config). |     rabbit_ct_helpers:run_teardown_steps(Config). | ||||||
| 
 | 
 | ||||||
| init_per_group(_, Config) -> | init_per_group(_, Config) -> | ||||||
|  |     Suffix = rabbit_ct_helpers:testcase_absname(Config, "", "-"), | ||||||
|     Config1 = rabbit_ct_helpers:set_config(Config, [ |     Config1 = rabbit_ct_helpers:set_config(Config, [ | ||||||
|         {rmq_nodes_count, 2} |         {rmq_nodes_count, 2}, | ||||||
|  |         {rmq_nodename_suffix, Suffix} | ||||||
|       ]), |       ]), | ||||||
|     rabbit_ct_helpers:run_steps(Config1, |     rabbit_ct_helpers:run_steps(Config1, | ||||||
|       rabbit_ct_broker_helpers:setup_steps() ++ |       rabbit_ct_broker_helpers:setup_steps() ++ | ||||||
|  |  | ||||||
|  | @ -323,10 +323,13 @@ start-background-broker: node-tmpdir $(DIST_TARGET) | ||||||
| 	$(BASIC_SCRIPT_ENV_SETTINGS) \
 | 	$(BASIC_SCRIPT_ENV_SETTINGS) \
 | ||||||
| 	  $(RABBITMQ_SERVER) \
 | 	  $(RABBITMQ_SERVER) \
 | ||||||
| 	  $(REDIRECT_STDIO) & | 	  $(REDIRECT_STDIO) & | ||||||
|  | 	trap 'test "$$?" = 0 || $(MAKE) stop-node' EXIT && \
 | ||||||
| 	ERL_LIBS="$(DIST_ERL_LIBS)" \
 | 	ERL_LIBS="$(DIST_ERL_LIBS)" \
 | ||||||
| 	  $(RABBITMQCTL) -n $(RABBITMQ_NODENAME) wait --timeout $(RMQCTL_WAIT_TIMEOUT) $(RABBITMQ_PID_FILE) && \
 | 	  $(RABBITMQCTL) -n $(RABBITMQ_NODENAME) wait --timeout $(RMQCTL_WAIT_TIMEOUT) $(RABBITMQ_PID_FILE) && \
 | ||||||
| 	ERL_LIBS="$(DIST_ERL_LIBS)" \
 | 	for i in $$(seq 1 10); do \
 | ||||||
| 	  $(RABBITMQCTL) --node $(RABBITMQ_NODENAME) await_startup | 	  ERL_LIBS="$(DIST_ERL_LIBS)" $(RABBITMQCTL) -n $(RABBITMQ_NODENAME) await_startup || sleep 1; \
 | ||||||
|  | 	done && \
 | ||||||
|  | 	ERL_LIBS="$(DIST_ERL_LIBS)" $(RABBITMQCTL) -n $(RABBITMQ_NODENAME) await_startup | ||||||
| 
 | 
 | ||||||
| start-rabbit-on-node: | start-rabbit-on-node: | ||||||
| 	$(exec_verbose) ERL_LIBS="$(DIST_ERL_LIBS)" \
 | 	$(exec_verbose) ERL_LIBS="$(DIST_ERL_LIBS)" \
 | ||||||
|  |  | ||||||
|  | @ -206,10 +206,27 @@ end_per_testcase(T, Config) -> | ||||||
|     end_per_testcase0(T, Config). |     end_per_testcase0(T, Config). | ||||||
| 
 | 
 | ||||||
| end_per_testcase0(Testcase, Config) -> | end_per_testcase0(Testcase, Config) -> | ||||||
|  |     %% Terminate all connections and wait for sessions to terminate before | ||||||
|  |     %% starting the next test case. | ||||||
|  |     _ = rabbit_ct_broker_helpers:rpc( | ||||||
|  |           Config, 0, | ||||||
|  |           rabbit_networking, close_all_connections, [<<"test finished">>]), | ||||||
|  |     _ = rabbit_ct_broker_helpers:rpc_all( | ||||||
|  |           Config, | ||||||
|  |           rabbit_mqtt, close_local_client_connections, [normal]), | ||||||
|  |     eventually(?_assertEqual( | ||||||
|  |                   [], | ||||||
|  |                   rpc(Config, rabbit_mqtt, local_connection_pids, []))), | ||||||
|     %% Assert that every testcase cleaned up their MQTT sessions. |     %% Assert that every testcase cleaned up their MQTT sessions. | ||||||
|  |     rabbit_ct_broker_helpers:rpc(Config, 0, ?MODULE, delete_queues, []), | ||||||
|     eventually(?_assertEqual([], rpc(Config, rabbit_amqqueue, list, []))), |     eventually(?_assertEqual([], rpc(Config, rabbit_amqqueue, list, []))), | ||||||
|     rabbit_ct_helpers:testcase_finished(Config, Testcase). |     rabbit_ct_helpers:testcase_finished(Config, Testcase). | ||||||
| 
 | 
 | ||||||
|  | delete_queues() -> | ||||||
|  |     _ = [catch rabbit_amqqueue:delete(Q, false, false, <<"test finished">>) | ||||||
|  |          || Q <- rabbit_amqqueue:list()], | ||||||
|  |     ok. | ||||||
|  | 
 | ||||||
| %% ------------------------------------------------------------------- | %% ------------------------------------------------------------------- | ||||||
| %% Testsuite cases | %% Testsuite cases | ||||||
| %% ------------------------------------------------------------------- | %% ------------------------------------------------------------------- | ||||||
|  |  | ||||||
|  | @ -221,6 +221,7 @@ public class FailureTest { | ||||||
|                 () -> { |                 () -> { | ||||||
|                   connected.set(false); |                   connected.set(false); | ||||||
| 
 | 
 | ||||||
|  |                   try { Thread.sleep(2000); } catch (Exception e) {} | ||||||
|                   Client locator = |                   Client locator = | ||||||
|                       cf.get(new Client.ClientParameters().port(streamPortNode2())); |                       cf.get(new Client.ClientParameters().port(streamPortNode2())); | ||||||
|                   // wait until there's a new leader |                   // wait until there's a new leader | ||||||
|  | @ -467,6 +468,7 @@ public class FailureTest { | ||||||
|             // avoid long-running task in the IO thread |             // avoid long-running task in the IO thread | ||||||
|             executorService.submit( |             executorService.submit( | ||||||
|                 () -> { |                 () -> { | ||||||
|  |                   try { Thread.sleep(2000); } catch (Exception e) {} | ||||||
|                   Client.StreamMetadata m = metadataClient.metadata(stream).get(stream); |                   Client.StreamMetadata m = metadataClient.metadata(stream).get(stream); | ||||||
|                   int newReplicaPort = m.getReplicas().get(0).getPort(); |                   int newReplicaPort = m.getReplicas().get(0).getPort(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -28,6 +28,7 @@ import com.rabbitmq.stream.impl.Client.ClientParameters; | ||||||
| import com.rabbitmq.stream.impl.Client.Response; | import com.rabbitmq.stream.impl.Client.Response; | ||||||
| import com.rabbitmq.stream.impl.Client.StreamMetadata; | import com.rabbitmq.stream.impl.Client.StreamMetadata; | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
|  | import java.time.Duration; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
|  | @ -57,7 +58,9 @@ public class LeaderLocatorTest { | ||||||
|   void clientLocalLocatorShouldMakeLeaderOnConnectedNode() { |   void clientLocalLocatorShouldMakeLeaderOnConnectedNode() { | ||||||
|     int[] ports = new int[] {TestUtils.streamPortNode1(), TestUtils.streamPortNode2()}; |     int[] ports = new int[] {TestUtils.streamPortNode1(), TestUtils.streamPortNode2()}; | ||||||
|     for (int port : ports) { |     for (int port : ports) { | ||||||
|       Client client = cf.get(new Client.ClientParameters().port(port)); |       Client client = cf.get(new Client.ClientParameters() | ||||||
|  |               .port(port) | ||||||
|  |               .rpcTimeout(Duration.ofSeconds(30))); | ||||||
|       String s = UUID.randomUUID().toString(); |       String s = UUID.randomUUID().toString(); | ||||||
|       try { |       try { | ||||||
|         Response response = |         Response response = | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue