New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make CETS node cleanup consistent #4250
Conversation
elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / ddc48ec small_tests_25 / small_tests / ddc48ec small_tests_26 / small_tests / ddc48ec small_tests_26_arm64 / small_tests / ddc48ec ldap_mnesia_25 / ldap_mnesia / ddc48ec ldap_mnesia_26 / ldap_mnesia / ddc48ec dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / ddc48ec dynamic_domains_mysql_redis_26 / mysql_redis / ddc48ec dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / ddc48ec internal_mnesia_26 / internal_mnesia / ddc48ec pgsql_cets_26 / pgsql_cets / ddc48ec pgsql_mnesia_25 / pgsql_mnesia / ddc48ec dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / ddc48ec mysql_redis_26 / mysql_redis / ddc48ec pgsql_mnesia_26 / pgsql_mnesia / ddc48ec mssql_mnesia_26 / odbc_mssql_mnesia / ddc48ec |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4250 +/- ##
==========================================
+ Coverage 84.31% 84.44% +0.12%
==========================================
Files 552 552
Lines 33549 33549
==========================================
+ Hits 28288 28331 +43
+ Misses 5261 5218 -43 ☔ View full report in Codecov by Sentry. |
Previously, during node cleanup for CETS: - Some modules removed only local content - Others performed cluster-wide CETS operations It is not possible to always remove local content because of session_cleanup and the need for insertions - see e.g. stream management. Meanwhile, Mnesia cleanup consistently removed all content across the cluster. After this change, CETS does the same. An immediate benefit is that after the first global:trans/2 finishes in mongoose_cleaner:run_node_cleanup/1, cluster state is consistent. Previously cleanup would need to succeed on all nodes (sequentially), and before that the cluster would be in an inconsistent state.
Simplify setup of modules and meck. The goal is to easily test more modules for CETS and Mnesia.
5a009d1
to
b033d54
Compare
elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / 5a009d1 small_tests_25 / small_tests / 5a009d1 small_tests_26 / small_tests / 5a009d1 small_tests_26_arm64 / small_tests / 5a009d1 dynamic_domains_mysql_redis_26 / mysql_redis / 5a009d1 dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / 5a009d1 internal_mnesia_26 / internal_mnesia / 5a009d1 ldap_mnesia_26 / ldap_mnesia / 5a009d1 dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 5a009d1 pgsql_cets_26 / pgsql_cets / 5a009d1 dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / 5a009d1 pgsql_mnesia_25 / pgsql_mnesia / 5a009d1 mysql_redis_26 / mysql_redis / 5a009d1 pgsql_mnesia_26 / pgsql_mnesia / 5a009d1 mssql_mnesia_26 / odbc_mssql_mnesia / 5a009d1 |
elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / b033d54 small_tests_25 / small_tests / b033d54 small_tests_26 / small_tests / b033d54 small_tests_26_arm64 / small_tests / b033d54 ldap_mnesia_25 / ldap_mnesia / b033d54 ldap_mnesia_26 / ldap_mnesia / b033d54 graphql_SUITE:tls_enabled:tls_connect_user_unknown_certificate{error,{{assertMatch,[{module,graphql_SUITE},
{line,228},
{expression,"Result"},
{pattern,"{ error , { tls_alert , { unknown_ca , _ } } }"},
{value,{error,connection_closed}}]},
[{graphql_SUITE,tls_connect_user_unknown_certificate,1,
[{file,"/home/circleci/project/big_tests/tests/graphql_SUITE.erl"},
{line,228}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1302}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1234}]}]}} pubsub_SUITE:dag+basic:publish_test{error,{{badmatch,false},
[{pubsub_tools,check_response,2,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,444}]},
{pubsub_tools,receive_response,3,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,434}]},
{pubsub_tools,receive_and_check_response,4,
[{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
{line,424}]},
{pubsub_SUITE,'-publish_test/1-fun-0-',1,
[{file,"/home/circleci/project/big_tests/tests/pubsub_SUITE.erl"},
{line,444}]},
{escalus_story,story,4,
[{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_story.erl"},
{line,72}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1302}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1234}]}]}} dynamic_domains_mysql_redis_26 / mysql_redis / b033d54 dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / b033d54 dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / b033d54 pgsql_cets_26 / pgsql_cets / b033d54 graphql_SUITE:tls_enabled:tls_connect_admin_selfsigned_certificate{error,{{assertMatch,[{module,graphql_SUITE},
{line,259},
{expression,"Result"},
{pattern,"{ error , { tls_alert , { bad_certificate , _ } } }"},
{value,{error,connection_closed}}]},
[{graphql_SUITE,tls_connect_admin_selfsigned_certificate,1,
[{file,"/home/circleci/project/big_tests/tests/graphql_SUITE.erl"},
{line,259}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1302}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1234}]}]}} dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / b033d54 internal_mnesia_26 / internal_mnesia / b033d54 pgsql_mnesia_25 / pgsql_mnesia / b033d54 graphql_SUITE:tls_enabled:tls_connect_admin_selfsigned_certificate{error,{{assertMatch,[{module,graphql_SUITE},
{line,259},
{expression,"Result"},
{pattern,"{ error , { tls_alert , { bad_certificate , _ } } }"},
{value,{error,connection_closed}}]},
[{graphql_SUITE,tls_connect_admin_selfsigned_certificate,1,
[{file,"/home/circleci/project/big_tests/tests/graphql_SUITE.erl"},
{line,259}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1782}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1291}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1223}]}]}} pgsql_mnesia_26 / pgsql_mnesia / b033d54 mysql_redis_26 / mysql_redis / b033d54 mssql_mnesia_26 / odbc_mssql_mnesia / b033d54 ldap_mnesia_26 / ldap_mnesia / b033d54 pgsql_cets_26 / pgsql_cets / b033d54 pgsql_mnesia_25 / pgsql_mnesia / b033d54 |
b033d54
to
7fda9ef
Compare
7fda9ef
to
e284af4
Compare
elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / 7fda9ef small_tests_25 / small_tests / 7fda9ef small_tests_26 / small_tests / 7fda9ef small_tests_26_arm64 / small_tests / 7fda9ef ldap_mnesia_25 / ldap_mnesia / 7fda9ef dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / 7fda9ef ldap_mnesia_26 / ldap_mnesia / 7fda9ef graphql_SUITE:tls_enabled:tls_connect_admin_unknown_certificate{error,{{assertMatch,[{module,graphql_SUITE},
{line,253},
{expression,"Result"},
{pattern,"{ error , { tls_alert , { unknown_ca , _ } } }"},
{value,{error,connection_closed}}]},
[{graphql_SUITE,tls_connect_admin_unknown_certificate,1,
[{file,"/home/circleci/project/big_tests/tests/graphql_SUITE.erl"},
{line,253}]},
{test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
{test_server,run_test_case_eval1,6,
[{file,"test_server.erl"},{line,1302}]},
{test_server,run_test_case_eval,9,
[{file,"test_server.erl"},{line,1234}]}]}} dynamic_domains_mysql_redis_26 / mysql_redis / 7fda9ef internal_mnesia_26 / internal_mnesia / 7fda9ef dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 7fda9ef pgsql_cets_26 / pgsql_cets / 7fda9ef dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / 7fda9ef pgsql_mnesia_25 / pgsql_mnesia / 7fda9ef mysql_redis_26 / mysql_redis / 7fda9ef pgsql_mnesia_26 / pgsql_mnesia / 7fda9ef mssql_mnesia_26 / odbc_mssql_mnesia / 7fda9ef |
elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / e284af4 small_tests_25 / small_tests / e284af4 small_tests_26 / small_tests / e284af4 small_tests_26_arm64 / small_tests / e284af4 ldap_mnesia_25 / ldap_mnesia / e284af4 dynamic_domains_mysql_redis_26 / mysql_redis / e284af4 ldap_mnesia_26 / ldap_mnesia / e284af4 dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / e284af4 dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / e284af4 internal_mnesia_26 / internal_mnesia / e284af4 dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / e284af4 pgsql_cets_26 / pgsql_cets / e284af4 pgsql_mnesia_25 / pgsql_mnesia / e284af4 mysql_redis_26 / mysql_redis / e284af4 pgsql_mnesia_26 / pgsql_mnesia / e284af4 mssql_mnesia_26 / odbc_mssql_mnesia / e284af4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
Previously, during node cleanup for CETS:
It is not possible to always remove local content because of
session_cleanup
and the need for insertions - see e.g. stream management. Meanwhile, Mnesia cleanup consistently removes all content across the cluster.After this change, CETS does the same. An immediate benefit is that after the first
global:trans/2
finishes inmongoose_cleaner:run_node_cleanup/1
, cluster state is consistent. Previously, cleanup would need to succeed on all nodes (sequentially), and before that the cluster would be in an inconsistent state.Also: