diff --git a/big_tests/default.spec b/big_tests/default.spec index 1cc9051c24..4b947e642f 100644 --- a/big_tests/default.spec +++ b/big_tests/default.spec @@ -9,119 +9,119 @@ %% http://www.erlang.org/doc/apps/common_test/run_test_chapter.html#test_specifications {include, "tests"}. -{suites, "tests", mim_c2s_SUITE}. +%% {suites, "tests", mim_c2s_SUITE}. -{suites, "tests", acc_e2e_SUITE}. -{suites, "tests", accounts_SUITE}. -{suites, "tests", adhoc_SUITE}. -{suites, "tests", amp_big_SUITE}. -{suites, "tests", anonymous_SUITE}. -{suites, "tests", bind2_SUITE}. -{suites, "tests", bosh_SUITE}. -{suites, "tests", carboncopy_SUITE}. -{suites, "tests", connect_SUITE}. -{suites, "tests", disco_and_caps_SUITE}. -{suites, "tests", extdisco_SUITE}. -{suites, "tests", gdpr_SUITE}. -{suites, "tests", graphql_SUITE}. -{suites, "tests", graphql_sse_SUITE}. -{suites, "tests", graphql_account_SUITE}. -{suites, "tests", graphql_domain_SUITE}. -{suites, "tests", graphql_inbox_SUITE}. -{suites, "tests", graphql_last_SUITE}. -{suites, "tests", graphql_muc_SUITE}. -{suites, "tests", graphql_muc_light_SUITE}. -{suites, "tests", graphql_offline_SUITE}. -{suites, "tests", graphql_private_SUITE}. -{suites, "tests", graphql_roster_SUITE}. -{suites, "tests", graphql_session_SUITE}. -{suites, "tests", graphql_stanza_SUITE}. -{suites, "tests", graphql_stats_SUITE}. -{suites, "tests", graphql_gdpr_SUITE}. -{suites, "tests", graphql_token_SUITE}. -{suites, "tests", graphql_mnesia_SUITE}. -{suites, "tests", graphql_cets_SUITE}. -{suites, "tests", graphql_vcard_SUITE}. -{suites, "tests", graphql_http_upload_SUITE}. -{suites, "tests", graphql_metric_SUITE}. -{suites, "tests", inbox_SUITE}. -{suites, "tests", inbox_extensions_SUITE}. -{suites, "tests", login_SUITE}. -{suites, "tests", mam_SUITE}. -{suites, "tests", mam_proper_SUITE}. -{suites, "tests", mam_send_message_SUITE}. -{suites, "tests", metrics_c2s_SUITE}. -{suites, "tests", metrics_roster_SUITE}. -{suites, "tests", metrics_session_SUITE}. -{suites, "tests", mod_blocking_SUITE}. -{suites, "tests", mod_event_pusher_http_SUITE}. -{suites, "tests", mod_event_pusher_rabbit_SUITE}. -{suites, "tests", mod_event_pusher_sns_SUITE}. -{suites, "tests", mod_http_upload_SUITE}. -{suites, "tests", mod_ping_SUITE}. -{suites, "tests", mod_time_SUITE}. -{suites, "tests", mod_version_SUITE}. -{suites, "tests", mongoose_cassandra_SUITE}. -{suites, "tests", mongoose_elasticsearch_SUITE}. -{suites, "tests", mongooseimctl_SUITE}. -{suites, "tests", muc_SUITE}. -{suites, "tests", muc_http_api_SUITE}. -{suites, "tests", muc_light_SUITE}. -{suites, "tests", muc_light_http_api_SUITE}. -{suites, "tests", muc_light_legacy_SUITE}. -{suites, "tests", oauth_SUITE}. -{suites, "tests", offline_SUITE}. -{suites, "tests", offline_stub_SUITE}. -{suites, "tests", pep_SUITE}. -{suites, "tests", presence_SUITE}. -{suites, "tests", privacy_SUITE}. -{suites, "tests", private_SUITE}. -{suites, "tests", pubsub_SUITE}. -{suites, "tests", pubsub_s2s_SUITE}. -{suites, "tests", push_SUITE}. -{suites, "tests", push_http_SUITE}. -{suites, "tests", push_integration_SUITE}. -{suites, "tests", push_pubsub_SUITE}. -{suites, "tests", race_conditions_SUITE}. -{suites, "tests", rdbms_SUITE}. -{suites, "tests", rest_SUITE}. -{suites, "tests", rest_client_SUITE}. -{suites, "tests", sasl_SUITE}. -{suites, "tests", sasl2_SUITE}. -{suites, "tests", shared_roster_SUITE}. -{suites, "tests", sic_SUITE}. -{suites, "tests", smart_markers_SUITE}. -{suites, "tests", sm_SUITE}. -{suites, "tests", vcard_SUITE}. -{suites, "tests", vcard_simple_SUITE}. -{suites, "tests", websockets_SUITE}. -{suites, "tests", xep_0352_csi_SUITE}. -{suites, "tests", domain_isolation_SUITE}. -{suites, "tests", domain_removal_SUITE}. -{suites, "tests", tcp_listener_SUITE}. -{suites, "tests", cets_disco_SUITE}. -{suites, "tests", start_node_id_SUITE}. -{suites, "tests", tr_util_SUITE}. +%% {suites, "tests", acc_e2e_SUITE}. +%% {suites, "tests", accounts_SUITE}. +%% {suites, "tests", adhoc_SUITE}. +%% {suites, "tests", amp_big_SUITE}. +%% {suites, "tests", anonymous_SUITE}. +%% {suites, "tests", bind2_SUITE}. +%% {suites, "tests", bosh_SUITE}. +%% {suites, "tests", carboncopy_SUITE}. +%% {suites, "tests", connect_SUITE}. +%% {suites, "tests", disco_and_caps_SUITE}. +%% {suites, "tests", extdisco_SUITE}. +%% {suites, "tests", gdpr_SUITE}. +%% {suites, "tests", graphql_SUITE}. +%% {suites, "tests", graphql_sse_SUITE}. +%% {suites, "tests", graphql_account_SUITE}. +%% {suites, "tests", graphql_domain_SUITE}. +%% {suites, "tests", graphql_inbox_SUITE}. +%% {suites, "tests", graphql_last_SUITE}. +%% {suites, "tests", graphql_muc_SUITE}. +%% {suites, "tests", graphql_muc_light_SUITE}. +%% {suites, "tests", graphql_offline_SUITE}. +%% {suites, "tests", graphql_private_SUITE}. +%% {suites, "tests", graphql_roster_SUITE}. +%% {suites, "tests", graphql_session_SUITE}. +%% {suites, "tests", graphql_stanza_SUITE}. +%% {suites, "tests", graphql_stats_SUITE}. +%% {suites, "tests", graphql_gdpr_SUITE}. +%% {suites, "tests", graphql_token_SUITE}. +%% {suites, "tests", graphql_mnesia_SUITE}. +%% {suites, "tests", graphql_cets_SUITE}. +%% {suites, "tests", graphql_vcard_SUITE}. +%% {suites, "tests", graphql_http_upload_SUITE}. +%% {suites, "tests", graphql_metric_SUITE}. +%% {suites, "tests", inbox_SUITE}. +%% {suites, "tests", inbox_extensions_SUITE}. +%% {suites, "tests", login_SUITE}. +%% {suites, "tests", mam_SUITE}. +%% {suites, "tests", mam_proper_SUITE}. +%% {suites, "tests", mam_send_message_SUITE}. +%% {suites, "tests", metrics_c2s_SUITE}. +%% {suites, "tests", metrics_roster_SUITE}. +%% {suites, "tests", metrics_session_SUITE}. +%% {suites, "tests", mod_blocking_SUITE}. +%% {suites, "tests", mod_event_pusher_http_SUITE}. +%% {suites, "tests", mod_event_pusher_rabbit_SUITE}. +%% {suites, "tests", mod_event_pusher_sns_SUITE}. +%% {suites, "tests", mod_http_upload_SUITE}. +%% {suites, "tests", mod_ping_SUITE}. +%% {suites, "tests", mod_time_SUITE}. +%% {suites, "tests", mod_version_SUITE}. +%% {suites, "tests", mongoose_cassandra_SUITE}. +%% {suites, "tests", mongoose_elasticsearch_SUITE}. +%% {suites, "tests", mongooseimctl_SUITE}. +%% {suites, "tests", muc_SUITE}. +%% {suites, "tests", muc_http_api_SUITE}. +%% {suites, "tests", muc_light_SUITE}. +%% {suites, "tests", muc_light_http_api_SUITE}. +%% {suites, "tests", muc_light_legacy_SUITE}. +%% {suites, "tests", oauth_SUITE}. +%% {suites, "tests", offline_SUITE}. +%% {suites, "tests", offline_stub_SUITE}. +%% {suites, "tests", pep_SUITE}. +%% {suites, "tests", presence_SUITE}. +%% {suites, "tests", privacy_SUITE}. +%% {suites, "tests", private_SUITE}. +%% {suites, "tests", pubsub_SUITE}. +%% {suites, "tests", pubsub_s2s_SUITE}. +%% {suites, "tests", push_SUITE}. +%% {suites, "tests", push_http_SUITE}. +%% {suites, "tests", push_integration_SUITE}. +%% {suites, "tests", push_pubsub_SUITE}. +%% {suites, "tests", race_conditions_SUITE}. +%% {suites, "tests", rdbms_SUITE}. +%% {suites, "tests", rest_SUITE}. +%% {suites, "tests", rest_client_SUITE}. +%% {suites, "tests", sasl_SUITE}. +%% {suites, "tests", sasl2_SUITE}. +%% {suites, "tests", shared_roster_SUITE}. +%% {suites, "tests", sic_SUITE}. +%% {suites, "tests", smart_markers_SUITE}. +%% {suites, "tests", sm_SUITE}. +%% {suites, "tests", vcard_SUITE}. +%% {suites, "tests", vcard_simple_SUITE}. +%% {suites, "tests", websockets_SUITE}. +%% {suites, "tests", xep_0352_csi_SUITE}. +%% {suites, "tests", domain_isolation_SUITE}. +%% {suites, "tests", domain_removal_SUITE}. +%% {suites, "tests", tcp_listener_SUITE}. +%% {suites, "tests", cets_disco_SUITE}. +%% {suites, "tests", start_node_id_SUITE}. +%% {suites, "tests", tr_util_SUITE}. -%% the below suites restart MIM nodes, so they were moved to the end -%% to minimise impact on other tests -{suites, "tests", auth_methods_for_c2s_SUITE}. +%% %% the below suites restart MIM nodes, so they were moved to the end +%% %% to minimise impact on other tests +%% {suites, "tests", auth_methods_for_c2s_SUITE}. {suites, "tests", cluster_commands_SUITE}. -{suites, "tests", component_SUITE}. -{suites, "tests", dynamic_domains_SUITE}. -{suites, "tests", graphql_server_SUITE}. -{suites, "tests", jingle_SUITE}. -{suites, "tests", last_SUITE}. -{suites, "tests", local_iq_SUITE}. -{suites, "tests", metrics_api_SUITE}. -{suites, "tests", mod_global_distrib_SUITE}. -{suites, "tests", persistent_cluster_id_SUITE}. -{suites, "tests", s2s_SUITE}. -{suites, "tests", sasl_external_SUITE}. -{suites, "tests", service_domain_db_SUITE}. -{suites, "tests", service_mongoose_system_metrics_SUITE}. -{suites, "tests", shutdown_SUITE}. -{suites, "tests", system_probes_SUITE}. +%% {suites, "tests", component_SUITE}. +%% {suites, "tests", dynamic_domains_SUITE}. +%% {suites, "tests", graphql_server_SUITE}. +%% {suites, "tests", jingle_SUITE}. +%% {suites, "tests", last_SUITE}. +%% {suites, "tests", local_iq_SUITE}. +%% {suites, "tests", metrics_api_SUITE}. +%% {suites, "tests", mod_global_distrib_SUITE}. +%% {suites, "tests", persistent_cluster_id_SUITE}. +%% {suites, "tests", s2s_SUITE}. +%% {suites, "tests", sasl_external_SUITE}. +%% {suites, "tests", service_domain_db_SUITE}. +%% {suites, "tests", service_mongoose_system_metrics_SUITE}. +%% {suites, "tests", shutdown_SUITE}. +%% {suites, "tests", system_probes_SUITE}. {config, ["test.config"]}. {logdir, "ct_report"}. diff --git a/big_tests/dynamic_domains.spec b/big_tests/dynamic_domains.spec index b88a9dc765..c590d5f999 100644 --- a/big_tests/dynamic_domains.spec +++ b/big_tests/dynamic_domains.spec @@ -9,118 +9,118 @@ %% http://www.erlang.org/doc/apps/common_test/run_test_chapter.html#test_specifications {include, "tests"}. -{suites, "tests", mim_c2s_SUITE}. -{suites, "tests", acc_e2e_SUITE}. -{suites, "tests", accounts_SUITE}. -{suites, "tests", adhoc_SUITE}. -{suites, "tests", amp_big_SUITE}. -{suites, "tests", anonymous_SUITE}. -{suites, "tests", bind2_SUITE}. -{suites, "tests", bosh_SUITE}. -{suites, "tests", carboncopy_SUITE}. -{suites, "tests", connect_SUITE}. -{suites, "tests", disco_and_caps_SUITE}. -{suites, "tests", domain_isolation_SUITE}. -{suites, "tests", extdisco_SUITE}. +%% {suites, "tests", mim_c2s_SUITE}. +%% {suites, "tests", acc_e2e_SUITE}. +%% {suites, "tests", accounts_SUITE}. +%% {suites, "tests", adhoc_SUITE}. +%% {suites, "tests", amp_big_SUITE}. +%% {suites, "tests", anonymous_SUITE}. +%% {suites, "tests", bind2_SUITE}. +%% {suites, "tests", bosh_SUITE}. +%% {suites, "tests", carboncopy_SUITE}. +%% {suites, "tests", connect_SUITE}. +%% {suites, "tests", disco_and_caps_SUITE}. +%% {suites, "tests", domain_isolation_SUITE}. +%% {suites, "tests", extdisco_SUITE}. -{suites, "tests", gdpr_SUITE}. -{skip_groups, "tests", gdpr_SUITE, - [retrieve_personal_data_pubsub, - remove_personal_data_pubsub], - "at the moment mod_pubsub doesn't support dynamic domains"}. +%% {suites, "tests", gdpr_SUITE}. +%% {skip_groups, "tests", gdpr_SUITE, +%% [retrieve_personal_data_pubsub, +%% remove_personal_data_pubsub], +%% "at the moment mod_pubsub doesn't support dynamic domains"}. -{suites, "tests", graphql_SUITE}. -{suites, "tests", graphql_sse_SUITE}. -{suites, "tests", graphql_account_SUITE}. -{suites, "tests", graphql_domain_SUITE}. -{suites, "tests", graphql_inbox_SUITE}. -{suites, "tests", graphql_last_SUITE}. -{suites, "tests", graphql_muc_SUITE}. -{suites, "tests", graphql_muc_light_SUITE}. -{suites, "tests", graphql_private_SUITE}. -{suites, "tests", graphql_roster_SUITE}. -{suites, "tests", graphql_session_SUITE}. -{suites, "tests", graphql_stanza_SUITE}. -{suites, "tests", graphql_vcard_SUITE}. -{suites, "tests", graphql_offline_SUITE}. -{suites, "tests", graphql_stats_SUITE}. -{suites, "tests", graphql_gdpr_SUITE}. -{suites, "tests", graphql_token_SUITE}. -{suites, "tests", graphql_mnesia_SUITE}. -{suites, "tests", graphql_cets_SUITE}. -{suites, "tests", graphql_http_upload_SUITE}. -{suites, "tests", graphql_metric_SUITE}. -{suites, "tests", inbox_SUITE}. -{suites, "tests", inbox_extensions_SUITE}. -{suites, "tests", login_SUITE}. -{suites, "tests", mam_SUITE}. -{suites, "tests", mam_proper_SUITE}. -{suites, "tests", mam_send_message_SUITE}. -{suites, "tests", metrics_c2s_SUITE}. -{suites, "tests", metrics_roster_SUITE}. -{suites, "tests", metrics_session_SUITE}. -{suites, "tests", mod_blocking_SUITE}. -{suites, "tests", mod_http_upload_SUITE}. -{suites, "tests", mod_ping_SUITE}. -{suites, "tests", mod_time_SUITE}. -{suites, "tests", mod_version_SUITE}. -{suites, "tests", mongooseimctl_SUITE}. +%% {suites, "tests", graphql_SUITE}. +%% {suites, "tests", graphql_sse_SUITE}. +%% {suites, "tests", graphql_account_SUITE}. +%% {suites, "tests", graphql_domain_SUITE}. +%% {suites, "tests", graphql_inbox_SUITE}. +%% {suites, "tests", graphql_last_SUITE}. +%% {suites, "tests", graphql_muc_SUITE}. +%% {suites, "tests", graphql_muc_light_SUITE}. +%% {suites, "tests", graphql_private_SUITE}. +%% {suites, "tests", graphql_roster_SUITE}. +%% {suites, "tests", graphql_session_SUITE}. +%% {suites, "tests", graphql_stanza_SUITE}. +%% {suites, "tests", graphql_vcard_SUITE}. +%% {suites, "tests", graphql_offline_SUITE}. +%% {suites, "tests", graphql_stats_SUITE}. +%% {suites, "tests", graphql_gdpr_SUITE}. +%% {suites, "tests", graphql_token_SUITE}. +%% {suites, "tests", graphql_mnesia_SUITE}. +%% {suites, "tests", graphql_cets_SUITE}. +%% {suites, "tests", graphql_http_upload_SUITE}. +%% {suites, "tests", graphql_metric_SUITE}. +%% {suites, "tests", inbox_SUITE}. +%% {suites, "tests", inbox_extensions_SUITE}. +%% {suites, "tests", login_SUITE}. +%% {suites, "tests", mam_SUITE}. +%% {suites, "tests", mam_proper_SUITE}. +%% {suites, "tests", mam_send_message_SUITE}. +%% {suites, "tests", metrics_c2s_SUITE}. +%% {suites, "tests", metrics_roster_SUITE}. +%% {suites, "tests", metrics_session_SUITE}. +%% {suites, "tests", mod_blocking_SUITE}. +%% {suites, "tests", mod_http_upload_SUITE}. +%% {suites, "tests", mod_ping_SUITE}. +%% {suites, "tests", mod_time_SUITE}. +%% {suites, "tests", mod_version_SUITE}. +%% {suites, "tests", mongooseimctl_SUITE}. -{suites, "tests", muc_SUITE}. -{skip_groups, "tests", muc_SUITE, - [register_over_s2s], - "at the moment S2S doesn't support dynamic domains " - "(requires mod_register creating CT users)"}. +%% {suites, "tests", muc_SUITE}. +%% {skip_groups, "tests", muc_SUITE, +%% [register_over_s2s], +%% "at the moment S2S doesn't support dynamic domains " +%% "(requires mod_register creating CT users)"}. -{suites, "tests", muc_http_api_SUITE}. -{suites, "tests", muc_light_SUITE}. -{suites, "tests", muc_light_legacy_SUITE}. -{suites, "tests", muc_light_http_api_SUITE}. -{suites, "tests", oauth_SUITE}. -{suites, "tests", offline_SUITE}. -{suites, "tests", offline_stub_SUITE}. -{suites, "tests", presence_SUITE}. -{suites, "tests", privacy_SUITE}. -{suites, "tests", private_SUITE}. -{suites, "tests", race_conditions_SUITE}. -{suites, "tests", rdbms_SUITE}. -{suites, "tests", rest_SUITE}. -{suites, "tests", rest_client_SUITE}. -{suites, "tests", sasl_SUITE}. -{suites, "tests", sasl2_SUITE}. -{suites, "tests", sic_SUITE}. -{suites, "tests", smart_markers_SUITE}. -{suites, "tests", sm_SUITE}. -{suites, "tests", system_probes_SUITE}. -{suites, "tests", vcard_SUITE}. -{suites, "tests", vcard_simple_SUITE}. -{suites, "tests", websockets_SUITE}. -{suites, "tests", xep_0352_csi_SUITE}. -{suites, "tests", domain_removal_SUITE}. -{suites, "tests", local_iq_SUITE}. -{suites, "tests", tcp_listener_SUITE}. -{suites, "tests", cets_disco_SUITE}. -{suites, "tests", start_node_id_SUITE}. -{suites, "tests", tr_util_SUITE}. +%% {suites, "tests", muc_http_api_SUITE}. +%% {suites, "tests", muc_light_SUITE}. +%% {suites, "tests", muc_light_legacy_SUITE}. +%% {suites, "tests", muc_light_http_api_SUITE}. +%% {suites, "tests", oauth_SUITE}. +%% {suites, "tests", offline_SUITE}. +%% {suites, "tests", offline_stub_SUITE}. +%% {suites, "tests", presence_SUITE}. +%% {suites, "tests", privacy_SUITE}. +%% {suites, "tests", private_SUITE}. +%% {suites, "tests", race_conditions_SUITE}. +%% {suites, "tests", rdbms_SUITE}. +%% {suites, "tests", rest_SUITE}. +%% {suites, "tests", rest_client_SUITE}. +%% {suites, "tests", sasl_SUITE}. +%% {suites, "tests", sasl2_SUITE}. +%% {suites, "tests", sic_SUITE}. +%% {suites, "tests", smart_markers_SUITE}. +%% {suites, "tests", sm_SUITE}. +%% {suites, "tests", system_probes_SUITE}. +%% {suites, "tests", vcard_SUITE}. +%% {suites, "tests", vcard_simple_SUITE}. +%% {suites, "tests", websockets_SUITE}. +%% {suites, "tests", xep_0352_csi_SUITE}. +%% {suites, "tests", domain_removal_SUITE}. +%% {suites, "tests", local_iq_SUITE}. +%% {suites, "tests", tcp_listener_SUITE}. +%% {suites, "tests", cets_disco_SUITE}. +%% {suites, "tests", start_node_id_SUITE}. +%% {suites, "tests", tr_util_SUITE}. -%% the below suites restart MIM nodes, so they were moved to the end -%% to minimise impact on other tests -{suites, "tests", auth_methods_for_c2s_SUITE}. +%% %% the below suites restart MIM nodes, so they were moved to the end +%% %% to minimise impact on other tests +%% {suites, "tests", auth_methods_for_c2s_SUITE}. {suites, "tests", cluster_commands_SUITE}. -{suites, "tests", dynamic_domains_SUITE}. -{suites, "tests", graphql_server_SUITE}. -{suites, "tests", last_SUITE}. -{suites, "tests", metrics_api_SUITE}. -{suites, "tests", persistent_cluster_id_SUITE}. -{suites, "tests", sasl_external_SUITE}. -{suites, "tests", service_domain_db_SUITE}. +%% {suites, "tests", dynamic_domains_SUITE}. +%% {suites, "tests", graphql_server_SUITE}. +%% {suites, "tests", last_SUITE}. +%% {suites, "tests", metrics_api_SUITE}. +%% {suites, "tests", persistent_cluster_id_SUITE}. +%% {suites, "tests", sasl_external_SUITE}. +%% {suites, "tests", service_domain_db_SUITE}. -{suites, "tests", service_mongoose_system_metrics_SUITE}. -{skip_cases, "tests", service_mongoose_system_metrics_SUITE, - [xmpp_components_are_reported], - "at the moment external components doesn't support dynamic domains"}. +%% {suites, "tests", service_mongoose_system_metrics_SUITE}. +%% {skip_cases, "tests", service_mongoose_system_metrics_SUITE, +%% [xmpp_components_are_reported], +%% "at the moment external components doesn't support dynamic domains"}. -{suites, "tests", shutdown_SUITE}. +%% {suites, "tests", shutdown_SUITE}. {config, ["dynamic_domains.config", "test.config"]}. diff --git a/big_tests/tests/cluster_commands_SUITE.erl b/big_tests/tests/cluster_commands_SUITE.erl index 2f7c173cfc..889dc36665 100644 --- a/big_tests/tests/cluster_commands_SUITE.erl +++ b/big_tests/tests/cluster_commands_SUITE.erl @@ -41,9 +41,9 @@ all() -> {group, clustering_three}]. groups() -> - [{clustered, [], [one_to_one_message]}, - {clustering_two, [], clustering_two_tests()}, - {clustering_three, [], clustering_three_tests()}]. + [{clustered, [{repeat_until_any_fail, 5}], [one_to_one_message]}, + {clustering_two, [{repeat_until_any_fail, 5}], clustering_two_tests()}, + {clustering_three, [{repeat_until_any_fail, 5}], clustering_three_tests()}]. suite() -> require_rpc_nodes([mim, mim2, mim3]) ++ escalus:suite(). diff --git a/src/mongoose_cluster.erl b/src/mongoose_cluster.erl index ead93c4b6c..1a46a20254 100644 --- a/src/mongoose_cluster.erl +++ b/src/mongoose_cluster.erl @@ -218,7 +218,7 @@ with_app_stopped(App, F) -> try F() after - Running andalso application:start(App) + Running andalso application:start(App, permanent) end. node_trans(F) -> diff --git a/src/mongoose_internal_databases.erl b/src/mongoose_internal_databases.erl index 813ac39d57..9e06d5faa1 100644 --- a/src/mongoose_internal_databases.erl +++ b/src/mongoose_internal_databases.erl @@ -44,14 +44,25 @@ wait_for_tables_loop(Tables, Interval, Total) -> case mnesia:wait_for_tables(Tables, Interval) of ok -> ok; - {timeout, WaitingTables} -> + {timeout, Tables} -> + %% If the tables don't change, mnesia is most likely stuck + ?LOG_WARNING(#{what => mnesia_wait_for_tables_timeout, + waiting_for_tables => Tables, + waiting_time => Total + Interval}), + mnesia:stop(), + application:start(mnesia, permanent), + wait_for_mnesia(); + %% error(#{what => mnesia_wait_for_tables_timeout, + %% waiting_for_tables => Tables, + %% waiting_time => Total + Interval}); + {timeout, NewTables} -> ?LOG_WARNING(#{what => mnesia_wait_for_tables_progress, - waiting_for_tables => WaitingTables, + waiting_for_tables => NewTables, waiting_time => Total + Interval}), - [log_detailed_table_info(Tab) || Tab <- WaitingTables], - wait_for_tables_loop(WaitingTables, Interval, Total + Interval); + [log_detailed_table_info(Tab) || Tab <- NewTables], + wait_for_tables_loop(NewTables, Interval, Total + Interval); {error, Reason} -> - error({mnesia_wait_for_tables_failed, Reason}) + error(#{what => mnesia_wait_for_tables_failed, reason => Reason}) end. log_detailed_table_info(Tab) ->