diff options
| author | Daniil Fedotov <hairyhum@gmail.com> | 2018-03-15 18:31:42 +0000 |
|---|---|---|
| committer | Daniil Fedotov <hairyhum@gmail.com> | 2018-03-15 18:31:42 +0000 |
| commit | 8b6d0ef7450754d47335e6fd5267236b957a0870 (patch) | |
| tree | 51e478d6b888a2cbd26538ab6ce43ea7749898c9 | |
| parent | 52d0c1aed0d5b532765d6efd0ed92b393d821322 (diff) | |
| download | rabbitmq-server-git-8b6d0ef7450754d47335e6fd5267236b957a0870.tar.gz | |
Test concurrent application start with no data.
| -rw-r--r-- | test/clustering_management_SUITE.erl | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/test/clustering_management_SUITE.erl b/test/clustering_management_SUITE.erl index e04fff2182..559c8f1e92 100644 --- a/test/clustering_management_SUITE.erl +++ b/test/clustering_management_SUITE.erl @@ -53,7 +53,8 @@ groups() -> forget_offline_removes_things, force_boot, status_with_alarm, - wait_fails_when_cluster_fails + wait_fails_when_cluster_fails, + concurrent_default_data_creation ]}, {cluster_size_4, [], [ forget_promotes_offline_slave @@ -636,6 +637,24 @@ wait_fails_when_cluster_fails(Config) -> {error, _, _} = rabbit_ct_broker_helpers:rabbitmqctl(Config, Rabbit, ["wait", RabbitPidFile]). +concurrent_default_data_creation(Config) -> + [Rabbit, Hare] = rabbit_ct_broker_helpers:get_node_configs(Config, + nodename), + %% Run multiple times to detect race. + [concurrent_default_data_creation1(Rabbit, Hare) || _ <- lists:seq(1, 20)]. + +concurrent_default_data_creation1(Rabbit, Hare) -> + %% Clear default data. + [{atomic, ok} = rpc:call(Rabbit, mnesia, clear_table, [Tab]) + || Tab <- [rabbit_user, rabbit_user_permission, rabbit_vhost]], + %% Stop both nodes + [ok = rpc:call(Node, rabbit, stop, []) || Node <- [Rabbit, Hare]], + %% Start nodes in parallel + [spawn(fun() -> rpc:call(Node, rabbit, start, []) end) + || Node <- [Rabbit, Hare]], + %% Verify both nodes are started successfully + [ok = rpc:call(Node, rabbit, await_startup, [Node]) || Node <- [Rabbit, Hare]]. + %% ---------------------------------------------------------------------------- %% Internal utils %% ---------------------------------------------------------------------------- |
