Skip to content
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

Custom epmd to avoid race conditions in DNS name resolutions #4174

Closed
wants to merge 34 commits into from

Conversation

arcusfelis
Copy link
Contributor

@arcusfelis arcusfelis commented Nov 21, 2023

This PR addresses:
Sometimes, it could take 30 seconds for DNS record to become resolvable in k8s.
In this time, a node could try establishing outgoing erlang distribution connections but could not accept incoming erlang distribution connections. But, global tries to maintain a fully connected mesh between nodes. This means that

  • new node connects to the cluster
  • other nodes try to connect to that new node (coordinated by global)
  • they get nxdomain error inside net_kernel and global gets pang
  • global gets pang (and nodedown), asks other nodes to disconnect from this new node:
 when=2023-11-02T14:06:42.939527+00:00 level=warning pid=<0.59.0> at=: unstructured_log="'global' at node 'mongooseim@mongooseim-5.mongooseim.default.svc.cluster.local' disconnected node 'mongooseim@mongooseim-0.mongooseim.default.svc.cluster.local' in order to prevent overlapping partitions"
when=2023-11-02T14:06:42.936864+00:00 level=warning pid=<0.1310.0> at=: unstructured_log="'global' at 'mongooseim@mongooseim-5.mongooseim.default.svc.cluster.local' failed to connect to 'mongooseim@mongooseim-4.mongooseim.default.svc.cluster.local'\

Proposed changes include:

  • Uses Rewrite ping cets#41 - improved logging on nodeup/nodedown, ping logic, that does not ask net_kernel to contact dead nodes.
  • Uses our own epmd module - it intercepts DNS lookups from net_kernel.
  • mongoose_node_address - keeps a list of IP addresses and nodenames - shares it between nodes.
  • RDBMS backend for CETS disco is patched to allow to set the address field.
  • The operator could set the IP addess using POD_IP.

@mongoose-im

This comment was marked as outdated.

Copy link

codecov bot commented Nov 21, 2023

Codecov Report

Attention: 26 lines in your changes are missing coverage. Please review.

Comparison is base (07c2263) 84.03% compared to head (ec262fe) 83.98%.
Report is 13 commits behind head on master.

Files Patch % Lines
src/mongoose_epmd.erl 23.52% 13 Missing ⚠️
src/mongoose_node_address.erl 78.57% 12 Missing ⚠️
src/mongoose_cluster_id.erl 95.45% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4174      +/-   ##
==========================================
- Coverage   84.03%   83.98%   -0.05%     
==========================================
  Files         564      566       +2     
  Lines       34064    34167     +103     
==========================================
+ Hits        28625    28695      +70     
- Misses       5439     5472      +33     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Reorder columns to match table, insert, update and select queries
@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

Add remember_addresses function
Fix dialyzer
@mongoose-im
Copy link
Collaborator

mongoose-im commented Nov 21, 2023

elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / b183f80
Reports root/ big
OK: 369 / Failed: 0 / User-skipped: 38 / Auto-skipped: 0


small_tests_25 / small_tests / b183f80
Reports root / small


small_tests_26 / small_tests / b183f80
Reports root / small


small_tests_26_arm64 / small_tests / b183f80
Reports root / small


ldap_mnesia_25 / ldap_mnesia / b183f80
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 867 / Auto-skipped: 0


ldap_mnesia_26 / ldap_mnesia / b183f80
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 867 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / b183f80
Reports root/ big
OK: 4278 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


dynamic_domains_mysql_redis_26 / mysql_redis / b183f80
Reports root/ big
OK: 4246 / Failed: 0 / User-skipped: 144 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / b183f80
Reports root/ big
OK: 4278 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


internal_mnesia_26 / internal_mnesia / b183f80
Reports root/ big
OK: 2461 / Failed: 0 / User-skipped: 717 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / b183f80
Reports root/ big
OK: 4275 / Failed: 0 / User-skipped: 115 / Auto-skipped: 0


pgsql_cets_26 / pgsql_cets / b183f80
Reports root/ big
OK: 4327 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / b183f80
Reports root/ big
OK: 4667 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


mysql_redis_26 / mysql_redis / b183f80
Reports root/ big
OK: 4646 / Failed: 1 / User-skipped: 139 / Auto-skipped: 0

carboncopy_SUITE:one2one:dropped_client_doesnt_create_duplicate_carbons
{error,
  {{badmatch,
     [{xmlel,<<"message">>,
        [{<<"from">>,
        <<"alice_dropped_client_doesnt_create_duplicate_carbons_592@localhost">>},
         {<<"to">>,
        <<"alice_dropped_client_doesnt_create_duplicate_carbons_592@localhost/res2">>},
         {<<"xmlns">>,<<"jabber:client">>},
         {<<"type">>,<<"chat">>}],
        [{xmlel,<<"sent">>,
           [{<<"xmlns">>,<<"urn:xmpp:carbons:2">>}],
           [{xmlel,<<"forwarded">>,
            [{<<"xmlns">>,<<"urn:xmpp:forward:0">>}],
            [{xmlel,<<"message">>,
               [{<<"from">>,
                 <<"alice_dropped_client_doesnt_create_duplicate_carbons_592@localhost/res1">>},
                {<<"type">>,<<"chat">>},
                {<<"to">>,
                 <<"bob_dropped_client_doesnt_create_duplicate_carbons_592@localhost/res1">>},
                {<<"xmlns">>,<<"jabber:client">>}],
               [{xmlel,<<"body">>,[],
                  [{xmlcdata,
                     <<"And pious action">>}]}]}]}]}]}]},
   [{carboncopy_SUITE,
      '-dropped_client_doesnt_create_duplicate_carbons/1-fun-0-',4,
      [{file,
         "/home/circleci/project/big_tests/tests/carboncopy_SUITE.erl"},
       {line,189}]},
    {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_serv...

Report log


pgsql_mnesia_26 / pgsql_mnesia / b183f80
Reports root/ big
OK: 4667 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


mssql_mnesia_26 / odbc_mssql_mnesia / b183f80
Reports root/ big
OK: 4664 / Failed: 0 / User-skipped: 122 / Auto-skipped: 0

@mongoose-im
Copy link
Collaborator

mongoose-im commented Nov 21, 2023

elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / 94ce0a7
Reports root/ big
OK: 369 / Failed: 0 / User-skipped: 38 / Auto-skipped: 0


small_tests_25 / small_tests / 94ce0a7
Reports root / small


small_tests_26 / small_tests / 94ce0a7
Reports root / small


small_tests_26_arm64 / small_tests / 94ce0a7
Reports root / small


dynamic_domains_mysql_redis_26 / mysql_redis / 94ce0a7
Reports root/ big
OK: 4247 / Failed: 0 / User-skipped: 144 / Auto-skipped: 0


ldap_mnesia_25 / ldap_mnesia / 94ce0a7
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 868 / Auto-skipped: 0


ldap_mnesia_26 / ldap_mnesia / 94ce0a7
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 868 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 94ce0a7
Reports root/ big
OK: 4279 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / 94ce0a7
Reports root/ big
OK: 4279 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / 94ce0a7
Reports root/ big
OK: 4275 / Failed: 1 / User-skipped: 115 / Auto-skipped: 0

graphql_muc_light_SUITE:domain_admin:domain_admin_muc_light:admin_create_room_with_unprepped_id
{error,
  {{badmatch,null},
   [{graphql_muc_light_SUITE,admin_create_room_with_unprepped_id,1,
      [{file,
         "/home/circleci/project/big_tests/tests/graphql_muc_light_SUITE.erl"},
       {line,1155}]},
    {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}]}]}}

Report log


internal_mnesia_26 / internal_mnesia / 94ce0a7
Reports root/ big
OK: 2461 / Failed: 0 / User-skipped: 718 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / 94ce0a7
Reports root/ big
OK: 4668 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


mysql_redis_26 / mysql_redis / 94ce0a7
Reports root/ big
OK: 4648 / Failed: 0 / User-skipped: 139 / Auto-skipped: 0


pgsql_mnesia_26 / pgsql_mnesia / 94ce0a7
Reports root/ big
OK: 4668 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


pgsql_cets_26 / pgsql_cets / 94ce0a7
Reports root/ big
OK: 4328 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


mssql_mnesia_26 / odbc_mssql_mnesia / 94ce0a7
Reports root/ big
OK: 4665 / Failed: 0 / User-skipped: 122 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / 94ce0a7
Reports root/ big
OK: 4276 / Failed: 0 / User-skipped: 115 / Auto-skipped: 0

@mongoose-im
Copy link
Collaborator

mongoose-im commented Nov 21, 2023

dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / 3d1b59e
Reports root


elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / 3d1b59e
Reports root/ big
OK: 369 / Failed: 0 / User-skipped: 38 / Auto-skipped: 0


small_tests_25 / small_tests / 3d1b59e
Reports root / small


small_tests_26 / small_tests / 3d1b59e
Reports root / small


small_tests_26_arm64 / small_tests / 3d1b59e
Reports root / small


ldap_mnesia_25 / ldap_mnesia / 3d1b59e
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 873 / Auto-skipped: 0


ldap_mnesia_26 / ldap_mnesia / 3d1b59e
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 873 / Auto-skipped: 0


dynamic_domains_mysql_redis_26 / mysql_redis / 3d1b59e
Reports root/ big
OK: 4252 / Failed: 0 / User-skipped: 144 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / 3d1b59e
Reports root/ big
OK: 4284 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


internal_mnesia_26 / internal_mnesia / 3d1b59e
Reports root/ big
OK: 2461 / Failed: 0 / User-skipped: 723 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 3d1b59e
Reports root/ big
OK: 4284 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


pgsql_cets_26 / pgsql_cets / 3d1b59e
Reports root/ big
OK: 4333 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


mysql_redis_26 / mysql_redis / 3d1b59e
Reports root/ big
OK: 4653 / Failed: 0 / User-skipped: 139 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / 3d1b59e
Reports root/ big
OK: 4673 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


pgsql_mnesia_26 / pgsql_mnesia / 3d1b59e
Reports root/ big
OK: 4673 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


mssql_mnesia_26 / odbc_mssql_mnesia / 3d1b59e
Reports root/ big
OK: 4669 / Failed: 1 / User-skipped: 122 / Auto-skipped: 0

graphql_muc_light_SUITE:domain_admin:domain_admin_muc_light:admin_create_room_with_unprepped_id
{error,
  {{badmatch,null},
   [{graphql_muc_light_SUITE,admin_create_room_with_unprepped_id,1,
      [{file,
         "/home/circleci/project/big_tests/tests/graphql_muc_light_SUITE.erl"},
       {line,1155}]},
    {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}]}]}}

Report log


dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / 3d1b59e
Reports root/ big
OK: 4281 / Failed: 0 / User-skipped: 115 / Auto-skipped: 0


mssql_mnesia_26 / odbc_mssql_mnesia / 3d1b59e
Reports root/ big
OK: 4666 / Failed: 4 / User-skipped: 122 / Auto-skipped: 0

sm_SUITE:parallel_unacknowledged_message_hook:unacknowledged_message_hook_filter
{error,{{badrpc,timeout},
    [{escalus_rpc,call_with_cookie_match,
            [mongooseim@localhost,ejabberd_admin,register,
             [<<"bOb_unacknowledged_message_hook_filter_3400">>,
            <<"localhost">>,<<"makrolika">>],
             3000,mongooseim],
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_rpc.erl"},
             {line,34}]},
     {lists,foreach_1,2,[{file,"lists.erl"},{line,1686}]},
     {escalus_ejabberd,create_users,2,
               [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_ejabberd.erl"},
              {line,211}]},
     {escalus_fresh,create_users,2,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_fresh.erl"},
             {line,62}]},
     {escalus_fresh,create_fresh_user,2,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_fresh.erl"},
             {line,112}]},
     {sm_helper,connect_fresh,4,
          [{file,"/home/circleci/project/big_tests/tests/sm_helper.erl"},
           {line,144}]},
     {sm_SUITE,unacknowledged_message_hook_filter,1,
           [{file,"/home/circleci/project/big_tests/tests/sm_SUITE.erl"},
          {line,785}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]}]}}

Report log

sm_SUITE:parallel_unacknowledged_message_hook:unacknowledged_message_hook_resume
{error,{{badrpc,timeout},
    [{escalus_rpc,call_with_cookie_match,
            [mongooseim@localhost,ejabberd_admin,register,
             [<<"bOb_unacknowledged_message_hook_resume_3399">>,
            <<"localhost">>,<<"makrolika">>],
             3000,mongooseim],
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_rpc.erl"},
             {line,34}]},
     {lists,foreach_1,2,[{file,"lists.erl"},{line,1686}]},
     {escalus_ejabberd,create_users,2,
               [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_ejabberd.erl"},
              {line,211}]},
     {escalus_fresh,create_users,2,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_fresh.erl"},
             {line,62}]},
     {escalus_fresh,create_fresh_user,2,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_fresh.erl"},
             {line,112}]},
     {sm_helper,connect_fresh,4,
          [{file,"/home/circleci/project/big_tests/tests/sm_helper.erl"},
           {line,144}]},
     {sm_SUITE,unacknowledged_message_hook_common,2,
           [{file,"/home/circleci/project/big_tests/tests/sm_SUITE.erl"},
          {line,869}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]}]}}

Report log

sm_SUITE:parallel_unacknowledged_message_hook:unacknowledged_message_hook_bounce
{error,{{badrpc,timeout},
    [{escalus_rpc,call_with_cookie_match,
            [mongooseim@localhost,ejabberd_admin,register,
             [<<"bOb_unacknowledged_message_hook_bounce_3401">>,
            <<"localhost">>,<<"makrolika">>],
             3000,mongooseim],
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_rpc.erl"},
             {line,34}]},
     {lists,foreach_1,2,[{file,"lists.erl"},{line,1686}]},
     {escalus_ejabberd,create_users,2,
               [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_ejabberd.erl"},
              {line,211}]},
     {escalus_fresh,create_users,2,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_fresh.erl"},
             {line,62}]},
     {escalus_fresh,create_fresh_user,2,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_fresh.erl"},
             {line,112}]},
     {sm_helper,connect_fresh,4,
          [{file,"/home/circleci/project/big_tests/tests/sm_helper.erl"},
           {line,144}]},
     {sm_SUITE,unacknowledged_message_hook_common,2,
           [{file,"/home/circleci/project/big_tests/tests/sm_SUITE.erl"},
          {line,869}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]}]}}

Report log

domain_removal_SUITE:auth_removal:auth_removal
{error,{{assertMatch,[{module,domain_removal_SUITE},
            {line,192},
            {expression,"rpc ( mim ( ) , ejabberd_auth , get_vh_registered_users , [ domain ( ) ] )"},
            {pattern,"[ _Alice ]"},
            {value,[{<<"alice_auth_removal_3431">>,<<"localhost">>},
                {<<"bob_unacknowledged_message_hook_bounce_3401">>,
                 <<"localhost">>},
                {<<"bob_unacknowledged_message_hook_filter_3400">>,
                 <<"localhost">>},
                {<<"bob_unacknowledged_message_hook_resume_3399">>,
                 <<"localhost">>}]}]},
    [{domain_removal_SUITE,auth_removal,1,
                 [{file,"/home/circleci/project/big_tests/tests/domain_removal_SUITE.erl"},
                {line,192}]},
     {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}]}]}}

Report log


mssql_mnesia_26 / odbc_mssql_mnesia / 3d1b59e
Reports root/ big
OK: 4670 / Failed: 0 / User-skipped: 122 / Auto-skipped: 0

@mongoose-im
Copy link
Collaborator

mongoose-im commented Nov 21, 2023

elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / fb4d1a1
Reports root/ big
OK: 369 / Failed: 0 / User-skipped: 38 / Auto-skipped: 0


small_tests_25 / small_tests / fb4d1a1
Reports root / small


small_tests_26 / small_tests / fb4d1a1
Reports root / small


small_tests_26_arm64 / small_tests / fb4d1a1
Reports root / small


ldap_mnesia_25 / ldap_mnesia / fb4d1a1
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 874 / Auto-skipped: 0


ldap_mnesia_26 / ldap_mnesia / fb4d1a1
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 874 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / fb4d1a1
Reports root/ big
OK: 4285 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


dynamic_domains_mysql_redis_26 / mysql_redis / fb4d1a1
Reports root/ big
OK: 4252 / Failed: 1 / User-skipped: 144 / Auto-skipped: 0

carboncopy_SUITE:one2one:dropped_client_doesnt_create_duplicate_carbons
{error,
  {{badmatch,
     [{xmlel,<<"message">>,
        [{<<"from">>,
        <<"alice_dropped_client_doesnt_create_duplicate_carbons_586@domain.example.com">>},
         {<<"to">>,
        <<"alice_dropped_client_doesnt_create_duplicate_carbons_586@domain.example.com/res2">>},
         {<<"xmlns">>,<<"jabber:client">>},
         {<<"type">>,<<"chat">>}],
        [{xmlel,<<"sent">>,
           [{<<"xmlns">>,<<"urn:xmpp:carbons:2">>}],
           [{xmlel,<<"forwarded">>,
            [{<<"xmlns">>,<<"urn:xmpp:forward:0">>}],
            [{xmlel,<<"message">>,
               [{<<"from">>,
                 <<"alice_dropped_client_doesnt_create_duplicate_carbons_586@domain.example.com/res1">>},
                {<<"type">>,<<"chat">>},
                {<<"to">>,
                 <<"bob_dropped_client_doesnt_create_duplicate_carbons_586@domain.example.com/res1">>},
                {<<"xmlns">>,<<"jabber:client">>}],
               [{xmlel,<<"body">>,[],
                  [{xmlcdata,
                     <<"And pious action">>}]}]}]}]}]}]},
   [{carboncopy_SUITE,
      '-dropped_client_doesnt_create_duplicate_carbons/1-fun-0-',4,
      [{file,
         "/home/circleci/project/big_tests/tests/carboncopy_SUITE.erl"},
       {line,189}]},
    {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_c...

Report log


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / fb4d1a1
Reports root/ big
OK: 4285 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


internal_mnesia_26 / internal_mnesia / fb4d1a1
Reports root/ big
OK: 2461 / Failed: 0 / User-skipped: 724 / Auto-skipped: 0


pgsql_cets_26 / pgsql_cets / fb4d1a1
Reports root/ big
OK: 4334 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / fb4d1a1
Reports root/ big
OK: 4281 / Failed: 1 / User-skipped: 115 / Auto-skipped: 0

sm_SUITE:ping_timeout
{error,
  {{assertion_failed,assert,is_presence,
     {xmlel,<<"iq">>,
       [{<<"from">>,<<"domain.example.com">>},
        {<<"to">>,
         <<"alice_ping_timeout_2976@domain.example.com/escalus-default-resource">>},
        {<<"type">>,<<"get">>},
        {<<"id">>,<<"51962a358390abb8">>}],
       [{xmlel,<<"ping">>,[{<<"xmlns">>,<<"urn:xmpp:ping">>}],[]}]},
     "<iq from='domain.example.com' to='alice_ping_timeout_2976@domain.example.com/escalus-default-resource' type='get' id='51962a358390abb8'><ping xmlns='urn:xmpp:ping'/></iq>"},
   [{escalus_new_assert,assert_true,2,
      [{file,
         "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_new_assert.erl"},
       {line,84}]},
    {sm_helper,initial_presence_step,2,
      [{file,"/home/circleci/project/big_tests/tests/sm_helper.erl"},
       {line,135}]},
    {escalus_connection,connection_step,2,
      [{file,
         "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_connection.erl"},
       {line,163}]},
    {lists,foldl_1,3,[{file,"lists.erl"},{line,1599}]},
    {escalus_connection,start,2,
      [{file,
         "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_connection.erl"},
       {line,145}]},
    {sm_helper,connect_spec,3,
      [{file,"/home/circleci/project/big_tests/tests/sm_helper.erl"},
       {line,153}]},
    {sm_SUITE,ping_timeout,1,
      [{file,"/home/circleci/project/big_tests/tests/sm_SUITE.erl"},
       {line,625}]},
    {...

Report log


mysql_redis_26 / mysql_redis / fb4d1a1
Reports root/ big
OK: 4654 / Failed: 0 / User-skipped: 139 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / fb4d1a1
Reports root/ big
OK: 4674 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


mssql_mnesia_26 / odbc_mssql_mnesia / fb4d1a1
Reports root/ big
OK: 4374 / Failed: 43 / User-skipped: 122 / Auto-skipped: 254

cluster_commands_SUITE:cluster_of_three
{error,
  {{assertEqual,
     [{module,cluster_commands_SUITE},
      {line,364},
      {expression,"OpCode1"},
      {expected,0},
      {value,1}]},
   [{cluster_commands_SUITE,cluster_of_three,1,
      [{file,
         "/home/circleci/project/big_tests/tests/cluster_commands_SUITE.erl"},
       {line,364}]},
    {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}]}]}}

Report log

cluster_commands_SUITE:leave_the_three
{error,
  {{assertEqual,
     [{module,cluster_commands_SUITE},
      {line,476},
      {expression,"lists : member ( Element , List )"},
      {expected,false},
      {value,true}]},
   [{cluster_commands_SUITE,'-nodes_clustered/3-lc$^0/1-0-',1,
      [{file,
         "/home/circleci/project/big_tests/tests/cluster_commands_SUITE.erl"},
       {line,476}]},
    {cluster_commands_SUITE,leave_the_three,1,
      [{file,
         "/home/circleci/project/big_tests/tests/cluster_commands_SUITE.erl"},
       {line,380}]},
    {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}]}]}}

Report log

component_SUITE:distributed:register_in_cluster
{'EXIT',{badmatch,{error,econnrefused}}}

Report log

component_SUITE:distributed:register_same_on_both
{'EXIT',{badmatch,{error,econnrefused}}}

Report log

connect_SUITE:session_replacement:replaced_session_cannot_terminate_different_nodes
{'EXIT',{badmatch,{error,econnrefused}}}

Report log

connect_SUITE:fast_tls:tls:clients_can_connect_with_ECDHE-RSA-AES256-GCM-SHA384_only
{error,{{assertEqual,[{module,connect_SUITE},
            {line,336},
            {expression,"ciphers_working_with_ssl_clients ( Config1 )"},
            {expected,["ECDHE-RSA-AES256-GCM-SHA384"]},
            {value,[]}]},
    [{connect_SUITE,'clients_can_connect_with_ECDHE-RSA-AES256-GCM-SHA384_only',
            1,
            [{file,"/home/circleci/project/big_tests/tests/connect_SUITE.erl"},
             {line,336}]},
     {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}]}]}}

Report log

gdpr_SUITE:retrieve_personal_data:retrieve_logs
{error,{{badmatch,{error,enoent}},
    [{gdpr_SUITE,'-retrieve_logs/1-fun-0-',2,
           [{file,"/home/circleci/project/big_tests/tests/gdpr_SUITE.erl"},
            {line,1548}]},
     {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}]}]}}

Report log

graphql_last_SUITE:admin_http:admin_last_configured:admin_old_users:admin_user_without_last_info_is_old_user
{error,{{assertEqual,[{module,graphql_last_SUITE},
            {line,421},
            {expression,"length ( OldUsers )"},
            {expected,3},
            {value,2}]},
    [{graphql_last_SUITE,admin_user_without_last_info_is_old_user,1,
               [{file,"/home/circleci/project/big_tests/tests/graphql_last_SUITE.erl"},
                {line,421}]},
     {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}]}]}}

Report log

graphql_last_SUITE:admin_cli:admin_last_configured:admin_old_users:admin_user_without_last_info_is_old_user
{error,{{assertEqual,[{module,graphql_last_SUITE},
            {line,421},
            {expression,"length ( OldUsers )"},
            {expected,3},
            {value,2}]},
    [{graphql_last_SUITE,admin_user_without_last_info_is_old_user,1,
               [{file,"/home/circleci/project/big_tests/tests/graphql_last_SUITE.erl"},
                {line,421}]},
     {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}]}]}}

Report log

graphql_session_SUITE:admin_session:admin_session_http:admin_list_sessions
{error,
  {{assertEqual,
     [{module,graphql_session_SUITE},
      {line,299},
      {expression,"length ( Sessions )"},
      {expected,3},
      {value,4}]},
   [{graphql_session_SUITE,admin_list_sessions_story,4,
      [{file,
         "/home/circleci/project/big_tests/tests/graphql_session_SUITE.erl"},
       {line,299}]},
    {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}]}]}}

Report log

graphql_session_SUITE:admin_session:admin_session_http:admin_count_sessions
{error,
  {{assertEqual,
     [{module,graphql_session_SUITE},
      {line,321},
      {expression,"Number"},
      {expected,3},
      {value,4}]},
   [{graphql_session_SUITE,admin_count_sessions_story,4,
      [{file,
         "/home/circleci/project/big_tests/tests/graphql_session_SUITE.erl"},
       {line,321}]},
    {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}]}]}}

Report log

graphql_session_SUITE:admin_session:admin_session_cli:admin_list_sessions
{error,
  {{assertEqual,
     [{module,graphql_session_SUITE},
      {line,299},
      {expression,"length ( Sessions )"},
      {expected,3},
      {value,4}]},
   [{graphql_session_SUITE,admin_list_sessions_story,4,
      [{file,
         "/home/circleci/project/big_tests/tests/graphql_session_SUITE.erl"},
       {line,299}]},
    {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}]}]}}

Report log

graphql_session_SUITE:admin_session:admin_session_cli:admin_count_sessions
{error,
  {{assertEqual,
     [{module,graphql_session_SUITE},
      {line,321},
      {expression,"Number"},
      {expected,3},
      {value,4}]},
   [{graphql_session_SUITE,admin_count_sessions_story,4,
      [{file,
         "/home/circleci/project/big_tests/tests/graphql_session_SUITE.erl"},
       {line,321}]},
    {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}]}]}}

Report log

graphql_session_SUITE:domain_admin_session:domain_admin_list_sessions
{error,
  {{assertEqual,
     [{module,graphql_session_SUITE},
      {line,155},
      {expression,"length ( Sessions )"},
      {expected,2},
      {value,3}]},
   [{graphql_session_SUITE,domain_admin_list_sessions_story,4,
      [{file,
         "/home/circleci/project/big_tests/tests/graphql_session_SUITE.erl"},
       {line,155}]},
    {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}]}]}}

Report log

graphql_session_SUITE:domain_admin_session:domain_admin_count_sessions
{error,
  {{assertEqual,
     [{module,graphql_session_SUITE},
      {line,174},
      {expression,"Number"},
      {expected,2},
      {value,3}]},
   [{graphql_session_SUITE,domain_admin_count_sessions_story,4,
      [{file,
         "/home/circleci/project/big_tests/tests/graphql_session_SUITE.erl"},
       {line,174}]},
    {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}]}]}}

Report log

graphql_stats_SUITE:admin_stats_http:admin_stats_global_test
{error,{{assertEqual,[{module,graphql_stats_SUITE},
            {line,83},
            {expression,"OnlineUsers"},
            {expected,0},
            {value,1}]},
    [{graphql_stats_SUITE,admin_stats_global_test,1,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,83}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:admin_stats_http:admin_stats_global_with_users_test
{error,{{assertEqual,[{module,graphql_stats_SUITE},
            {line,98},
            {expression,"OnlineUsers"},
            {expected,1},
            {value,2}]},
    [{graphql_stats_SUITE,admin_stats_global_with_users_test,2,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,98}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:admin_stats_http:admin_stats_domain_test
{error,{{assertMatch,[{module,graphql_stats_SUITE},
            {line,104},
            {expression,"Result1"},
            {pattern,"# { << \"registeredUsers\" >> := 0 , << \"onlineUsers\" >> := 0 }"},
            {value,#{<<"onlineUsers">> => 1,
                 <<"registeredUsers">> => 0}}]},
    [{graphql_stats_SUITE,admin_stats_domain_test,1,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,104}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:admin_stats_http:admin_stats_domain_with_users_test
{error,{{assertMatch,[{module,graphql_stats_SUITE},
            {line,113},
            {expression,"Result1"},
            {pattern,"# { << \"registeredUsers\" >> := 1 , << \"onlineUsers\" >> := 1 }"},
            {value,#{<<"onlineUsers">> => 2,
                 <<"registeredUsers">> => 1}}]},
    [{graphql_stats_SUITE,admin_stats_domain_with_users_test,2,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,113}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:admin_stats_cli:admin_stats_global_test
{error,{{assertEqual,[{module,graphql_stats_SUITE},
            {line,83},
            {expression,"OnlineUsers"},
            {expected,0},
            {value,1}]},
    [{graphql_stats_SUITE,admin_stats_global_test,1,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,83}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:admin_stats_cli:admin_stats_global_with_users_test
{error,{{assertEqual,[{module,graphql_stats_SUITE},
            {line,98},
            {expression,"OnlineUsers"},
            {expected,1},
            {value,2}]},
    [{graphql_stats_SUITE,admin_stats_global_with_users_test,2,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,98}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:admin_stats_cli:admin_stats_domain_test
{error,{{assertMatch,[{module,graphql_stats_SUITE},
            {line,104},
            {expression,"Result1"},
            {pattern,"# { << \"registeredUsers\" >> := 0 , << \"onlineUsers\" >> := 0 }"},
            {value,#{<<"onlineUsers">> => 1,
                 <<"registeredUsers">> => 0}}]},
    [{graphql_stats_SUITE,admin_stats_domain_test,1,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,104}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:admin_stats_cli:admin_stats_domain_with_users_test
{error,{{assertMatch,[{module,graphql_stats_SUITE},
            {line,113},
            {expression,"Result1"},
            {pattern,"# { << \"registeredUsers\" >> := 1 , << \"onlineUsers\" >> := 1 }"},
            {value,#{<<"onlineUsers">> => 2,
                 <<"registeredUsers">> => 1}}]},
    [{graphql_stats_SUITE,admin_stats_domain_with_users_test,2,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,113}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:domain_admin_stats:admin_stats_domain_test
{error,{{assertMatch,[{module,graphql_stats_SUITE},
            {line,104},
            {expression,"Result1"},
            {pattern,"# { << \"registeredUsers\" >> := 0 , << \"onlineUsers\" >> := 0 }"},
            {value,#{<<"onlineUsers">> => 1,
                 <<"registeredUsers">> => 0}}]},
    [{graphql_stats_SUITE,admin_stats_domain_test,1,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,104}]},
     {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}]}]}}

Report log

graphql_stats_SUITE:domain_admin_stats:admin_stats_domain_with_users_test
{error,{{assertMatch,[{module,graphql_stats_SUITE},
            {line,113},
            {expression,"Result1"},
            {pattern,"# { << \"registeredUsers\" >> := 1 , << \"onlineUsers\" >> := 1 }"},
            {value,#{<<"onlineUsers">> => 2,
                 <<"registeredUsers">> => 1}}]},
    [{graphql_stats_SUITE,admin_stats_domain_with_users_test,2,
                [{file,"/home/circleci/project/big_tests/tests/graphql_stats_SUITE.erl"},
                 {line,113}]},
     {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}]}]}}

Report log

29 errors were truncated


pgsql_mnesia_26 / pgsql_mnesia / fb4d1a1
Reports root/ big
OK: 4674 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / fb4d1a1
Reports root/ big
OK: 4282 / Failed: 0 / User-skipped: 115 / Auto-skipped: 0


dynamic_domains_mysql_redis_26 / mysql_redis / fb4d1a1
Reports root/ big
OK: 4253 / Failed: 0 / User-skipped: 144 / Auto-skipped: 0


mssql_mnesia_26 / odbc_mssql_mnesia / fb4d1a1
Reports root/ big
OK: 4671 / Failed: 0 / User-skipped: 122 / Auto-skipped: 0

@arcusfelis arcusfelis marked this pull request as ready for review November 22, 2023 00:24
Copy link
Member

@chrzaszcz chrzaszcz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apart from the comments, the commit history would need cleaning up - I think there are too many commits with fixes.

{ok, IP};
false ->
maybe_retry(Node, Start, Timeout, Sleep,
{cannot_connect_to_epmd, Node, IP})
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
{cannot_connect_to_epmd, Node, IP})
{cannot_connect_to_epmd, Node, IP})

Time = os:system_time(millisecond),
case (Time - Start + Sleep) < Timeout of
true ->
lookup_loop(Node, Start, Timeout, Sleep);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does not sleep at all...

Pairs2 = lists:keydelete(node(), 1, Pairs),
remember_addresses(Pairs2),
State;
handle_get_pairs_result(_Node, _Res, State) ->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unreachable code?


address_please(Name, Host, AddressFamily) ->
Node = list_to_atom(Name ++ "@" ++ Host),
case mongoose_node_address:lookup(Node) of
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just ask the DB directly instead of having this whole gen_server?

%% undocumented (so, we cannot match in in handle_info)
spawn_link(fun() ->
%% We have to ignore our node name when processing result
Server ! {get_pairs_result, Node, rpc:call(Node, ?MODULE, get_pairs, [])},
Copy link
Member

@chrzaszcz chrzaszcz Nov 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's unnecessarily complex - why store something that another node got from the DB if we can access the same DB?

Update: after discussion with @arcusfelis I agree that the ETS would need updating after a node goes up, and we agreed that we could try to just query the DB for each DNS lookup instead.

{mongoose_node_address,
{mongoose_node_address, start_link, []},
permanent, infinity, supervisor, [mongoose_node_address]},
[CetsDisco, Addr].
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be better to use the new map syntax for supervisor child specs, it's been around for a while.

cluster_name varchar(250),
updated_timestamp BIGINT NOT NULL, -- in seconds
node_name varchar(250),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comment: I think that for all DB's there should be NOT NULL for these fields.

?assertMatch({error, _}, insert_new(CN, <<"test1">>, TS, 2)),
?assertMatch({error, _}, insert_new(CN, <<"test2">>, TS, 1)),
?assertEqual({updated, 1}, insert_new(CN, <<"test2">>, TS, 2)),
?assertEqual({updated, 1}, insert_new(CN, <<"test1">>, 1, <<>>, TS)),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For me it would be more natural to have NULL used in this filed. Otherwise we have a field that can be either NULL or an empty string.

@mongoose-im
Copy link
Collaborator

mongoose-im commented Nov 24, 2023

elasticsearch_and_cassandra_26 / elasticsearch_and_cassandra_mnesia / ec262fe
Reports root/ big
OK: 369 / Failed: 0 / User-skipped: 38 / Auto-skipped: 0


small_tests_25 / small_tests / ec262fe
Reports root / small


small_tests_26 / small_tests / ec262fe
Reports root / small


small_tests_26_arm64 / small_tests / ec262fe
Reports root / small


ldap_mnesia_25 / ldap_mnesia / ec262fe
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 874 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / ec262fe
Reports root/ big
OK: 4285 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


ldap_mnesia_26 / ldap_mnesia / ec262fe
Reports root/ big
OK: 2311 / Failed: 0 / User-skipped: 874 / Auto-skipped: 0


dynamic_domains_mysql_redis_26 / mysql_redis / ec262fe
Reports root/ big
OK: 4253 / Failed: 0 / User-skipped: 144 / Auto-skipped: 0


pgsql_cets_26 / pgsql_cets / ec262fe
Reports root/ big
OK: 4334 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_26 / odbc_mssql_mnesia / ec262fe
Reports root/ big
OK: 4282 / Failed: 0 / User-skipped: 115 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / ec262fe
Reports root/ big
OK: 4285 / Failed: 0 / User-skipped: 112 / Auto-skipped: 0


internal_mnesia_26 / internal_mnesia / ec262fe
Reports root/ big
OK: 2461 / Failed: 0 / User-skipped: 724 / Auto-skipped: 0


mysql_redis_26 / mysql_redis / ec262fe
Reports root/ big
OK: 4654 / Failed: 0 / User-skipped: 139 / Auto-skipped: 0


pgsql_mnesia_26 / pgsql_mnesia / ec262fe
Reports root/ big
OK: 4515 / Failed: 4 / User-skipped: 119 / Auto-skipped: 155

graphql_server_SUITE:admin_cli:clustering_tests:remove_alive_from_cluster
{failed,
  {graphql_server_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim3@localhost},
           mnesia,system_info,
           [is_running]],
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,140}]},
        {distributed_helper,has_mnesia,1,
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,31}]},
        {distributed_helper,remove_node_from_cluster,2,
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,53}]},
        {graphql_server_SUITE,end_per_testcase,2,
          [{file,
             "/home/circleci/project/big_tests/tests/graphql_server_SUITE.erl"},
           {line,119}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1637}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1345}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1234}]}]}}}}

Report log

graphql_server_SUITE:admin_cli:clustering_tests:remove_node_test
{error,{#{what => invalid_response_code,expected_type => ok,
      response_code => {exit_status,3}},
    [{graphql_helper,assert_response_code,2,
             [{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
              {line,256}]},
     {graphql_helper,get_ok_value,2,
             [{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
              {line,239}]},
     {graphql_server_SUITE,remove_node_test,1,
                 [{file,"/home/circleci/project/big_tests/tests/graphql_server_SUITE.erl"},
                {line,215}]},
     {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}]}]}}

Report log

graphql_server_SUITE:admin_cli:clustering_tests:stop_node_test
{error,{#{what => invalid_response_code,expected_type => ok,
      response_code => {exit_status,3}},
    [{graphql_helper,assert_response_code,2,
             [{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
              {line,256}]},
     {graphql_helper,get_ok_value,2,
             [{file,"/home/circleci/project/big_tests/tests/graphql_helper.erl"},
              {line,239}]},
     {graphql_server_SUITE,stop_node_test,1,
                 [{file,"/home/circleci/project/big_tests/tests/graphql_server_SUITE.erl"},
                {line,220}]},
     {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}]}]}}

Report log

jingle_SUITE:end_per_suite
{error,
  {{badrpc,
     {'EXIT',
       {{badmatch,{[{atomic,ok}],[mongooseim3@localhost]}},
        [{mongoose_cluster,detach_nodes,1,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,212}]},
         {mongoose_cluster,'-do_leave/0-fun-0-',0,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,54}]},
         {mongoose_cluster,with_app_stopped,2,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,221}]},
         {global,trans,4,[{file,"global.erl"},{line,477}]},
         {mongoose_cluster,leave,0,[]}]}}},
   [{distributed_helper,rpc,
      [#{timeout => 30000,node => mongooseim2@localhost},
       mongoose_cluster,leave,[]],
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,140}]},
    {distributed_helper,remove_node_from_cluster,2,
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,55}]},
    {jingle_SUITE,end_per_suite,1,
      [{file,"/home/circleci/project/big_tests/tests/jingle_SUITE.erl"},
       {line,103}]},
    {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_server.erl"},{line,1390}]},
    {test_server,run_test_case_eval,9,
      [{file,"test_server.erl"},{line,1234}]}]}}

Report log

metrics_api_SUITE:all_metrics_are_global:end_per_group
{error,
  {{badrpc,
     {'EXIT',
       {{badmatch,{[{atomic,ok}],[mongooseim3@localhost]}},
        [{mongoose_cluster,detach_nodes,1,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,212}]},
         {mongoose_cluster,'-do_leave/0-fun-0-',0,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,54}]},
         {mongoose_cluster,with_app_stopped,2,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,221}]},
         {global,trans,4,[{file,"global.erl"},{line,477}]},
         {mongoose_cluster,leave,0,[]}]}}},
   [{distributed_helper,rpc,
      [#{timeout => 30000,node => mongooseim2@localhost},
       mongoose_cluster,leave,[]],
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,140}]},
    {distributed_helper,remove_node_from_cluster,2,
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,55}]},
    {metrics_helper,finalise_by_all_metrics_are_global,2,
      [{file,"/home/circleci/project/big_tests/tests/metrics_helper.erl"},
       {line,55}]},
    {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_server.erl"},{line,1390}]},
    {test_server,run_test_case_eval,9,
      [{file,"test_server.erl"},{line,1234}]}]}}

Report log

metrics_api_SUITE:global:cluster_size
{skip,
  {failed,
    {metrics_api_SUITE,init_per_testcase,
      {{badrpc,
         {'EXIT',
           {{badmatch,{[{atomic,ok}],[mongooseim3@localhost]}},
            [{mongoose_cluster,detach_nodes,1,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,212}]},
             {mongoose_cluster,'-do_leave/0-fun-0-',0,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,54}]},
             {mongoose_cluster,with_app_stopped,2,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,221}]},
             {global,trans,4,[{file,"global.erl"},{line,477}]},
             {mongoose_cluster,leave,0,[]}]}}},
       [{distributed_helper,rpc,
          [#{timeout => 30000,node => mongooseim2@localhost},
           mongoose_cluster,leave,[]],
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,140}]},
        {distributed_helper,remove_node_from_cluster,2,
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,55}]},
        {metrics_api_SUITE,'-ensure_nodes_not_clustered/1-lc$^1/1-1-',
          2,
          [{file,
             "/home/circleci/project/big_tests/tests/metrics_api_SUITE.erl"},
           {line,477}]},
        {metrics_api_SUITE,ensure_nodes_not_clustered,1,
          [{file,
        ...

Report log

mod_global_distrib_SUITE:end_per_suite
{error,
  {{badrpc,
     {'EXIT',
       {{badmatch,{[{atomic,ok}],[mongooseim3@localhost]}},
        [{mongoose_cluster,detach_nodes,1,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,212}]},
         {mongoose_cluster,'-do_leave/0-fun-0-',0,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,54}]},
         {mongoose_cluster,with_app_stopped,2,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,221}]},
         {global,trans,4,[{file,"global.erl"},{line,477}]},
         {mongoose_cluster,leave,0,[]}]}}},
   [{distributed_helper,rpc,
      [#{timeout => 30000,node => mongooseim2@localhost},
       mongoose_cluster,leave,[]],
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,140}]},
    {mongoose_helper,successful_rpc,5,
      [{file,"/home/circleci/project/big_tests/tests/mongoose_helper.erl"},
       {line,278}]},
    {mod_global_distrib_SUITE,end_per_suite,1,
      [{file,
         "/home/circleci/project/big_tests/tests/mod_global_distrib_SUITE.erl"},
       {line,135}]},
    {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_server.erl"},{line,1390}]},
    {test_server,run_test_case_eval,9,
      [{file,"test_server.erl"},{line,1234}]}]}}

Report log

persistent_cluster_id_SUITE:rdbms:all_nodes_in_the_cluster_have_the_same_cluster_id
{failed,
  {persistent_cluster_id_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,
         {'EXIT',
           {{badmatch,{[{atomic,ok}],[mongooseim3@localhost]}},
            [{mongoose_cluster,detach_nodes,1,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,212}]},
             {mongoose_cluster,'-do_leave/0-fun-0-',0,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,54}]},
             {mongoose_cluster,with_app_stopped,2,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,221}]},
             {global,trans,4,[{file,"global.erl"},{line,477}]},
             {mongoose_cluster,leave,0,[]}]}}},
       [{distributed_helper,rpc,
          [#{timeout => 30000,node => mongooseim2@localhost},
           mongoose_cluster,leave,[]],
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,140}]},
        {distributed_helper,remove_node_from_cluster,2,
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,55}]},
        {persistent_cluster_id_SUITE,end_per_testcase,2,
          [{file,
             "/home/circleci/project/big_tests/tests/persistent_cluster_id_SUITE.erl"},
           {line,92}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1637...

Report log

persistent_cluster_id_SUITE:rdbms:cluster_id_is_restored_to_mnesia_from_rdbms_if_mnesia_lost
{error,
  {{badrpc,
     {'EXIT',
       {{badmatch,{[{atomic,ok}],[mongooseim3@localhost]}},
        [{mongoose_cluster,detach_nodes,1,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,212}]},
         {mongoose_cluster,'-do_leave/0-fun-0-',0,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,54}]},
         {mongoose_cluster,with_app_stopped,2,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,221}]},
         {global,trans,4,[{file,"global.erl"},{line,477}]},
         {mongoose_cluster,leave,0,[]}]}}},
   [{distributed_helper,rpc,
      [#{timeout => 30000,node => mongooseim@localhost},
       mongoose_cluster,leave,[]],
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,140}]},
    {persistent_cluster_id_SUITE,
      cluster_id_is_restored_to_mnesia_from_rdbms_if_mnesia_lost,1,
      [{file,
         "/home/circleci/project/big_tests/tests/persistent_cluster_id_SUITE.erl"},
       {line,144}]},
    {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}]}]}}

Report log

service_mongoose_system_metrics_SUITE:all_clustered_mongooses_report_the_same_client_id
{failed,
  {service_mongoose_system_metrics_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,
         {'EXIT',
           {{badmatch,{[{atomic,ok}],[mongooseim3@localhost]}},
            [{mongoose_cluster,detach_nodes,1,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,212}]},
             {mongoose_cluster,'-do_leave/0-fun-0-',0,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,54}]},
             {mongoose_cluster,with_app_stopped,2,
               [{file,
                "/home/circleci/project/src/mongoose_cluster.erl"},
              {line,221}]},
             {global,trans,4,[{file,"global.erl"},{line,477}]},
             {mongoose_cluster,leave,0,[]}]}}},
       [{distributed_helper,rpc,
          [#{timeout => 30000,node => mongooseim2@localhost},
           mongoose_cluster,leave,[]],
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,140}]},
        {distributed_helper,remove_node_from_cluster,2,
          [{file,
             "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
           {line,55}]},
        {service_mongoose_system_metrics_SUITE,end_per_testcase,2,
          [{file,
             "/home/circleci/project/big_tests/tests/service_mongoose_system_metrics_SUITE.erl"},
           {line,160}]},
        {test_server,do_end_per_testcase,4,
          [{fil...

Report log

service_mongoose_system_metrics_SUITE:log_transparency:just_removed_from_config_logs_question
{error,
  {{badrpc,nodedown},
   [{distributed_helper,rpc,
      [#{node => mongooseim3@localhost},
       mongoose_service,ensure_stopped,
       [service_mongoose_system_metrics]],
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,140}]},
    {service_mongoose_system_metrics_SUITE,disable_system_metrics,1,
      [{file,
         "/home/circleci/project/big_tests/tests/service_mongoose_system_metrics_SUITE.erl"},
       {line,437}]},
    {service_mongoose_system_metrics_SUITE,
      just_removed_from_config_logs_question,1,
      [{file,
         "/home/circleci/project/big_tests/tests/service_mongoose_system_metrics_SUITE.erl"},
       {line,283}]},
    {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}]}]}}

Report log

service_domain_db_SUITE:init_per_suite
{'EXIT',
  {{badrpc,nodedown},
   [{distributed_helper,rpc,
      [#{node => mongooseim3@localhost},
       mongoose_service,loaded_services_with_opts,[]],
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,140}]},
    {dynamic_services,save_services,2,
      [{file,
         "/home/circleci/project/big_tests/tests/dynamic_services.erl"},
       {line,15}]},
    {lists,foldl_1,3,[{file,"lists.erl"},{line,1599}]},
    {service_domain_db_SUITE,init_per_suite,1,
      [{file,
         "/home/circleci/project/big_tests/tests/service_domain_db_SUITE.erl"},
       {line,176}]},
    {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_server.erl"},{line,1390}]},
    {test_server,run_test_case_eval,9,
      [{file,"test_server.erl"},{line,1234}]}]}}

Report log

dynamic_domains_SUITE:end_per_suite
{error,
  {{badrpc,
     {'EXIT',
       {{badmatch,{[{atomic,ok}],[mongooseim3@localhost]}},
        [{mongoose_cluster,detach_nodes,1,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,212}]},
         {mongoose_cluster,'-do_leave/0-fun-0-',0,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,54}]},
         {mongoose_cluster,with_app_stopped,2,
           [{file,"/home/circleci/project/src/mongoose_cluster.erl"},
          {line,221}]},
         {global,trans,4,[{file,"global.erl"},{line,477}]},
         {mongoose_cluster,leave,0,[]}]}}},
   [{distributed_helper,rpc,
      [#{timeout => 30000,node => mongooseim2@localhost},
       mongoose_cluster,leave,[]],
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,140}]},
    {distributed_helper,remove_node_from_cluster,2,
      [{file,
         "/home/circleci/project/big_tests/tests/distributed_helper.erl"},
       {line,55}]},
    {dynamic_domains_SUITE,uncluster_nodes,2,
      [{file,
         "/home/circleci/project/big_tests/tests/dynamic_domains_SUITE.erl"},
       {line,215}]},
    {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1793}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_server.erl"},{line,1390}]},
    {test_server,run_test_case_eval,9,
      [{file,"test_server.erl"},{line,1234}]}]}}

Report log


mssql_mnesia_26 / odbc_mssql_mnesia / ec262fe
Reports root/ big
OK: 4671 / Failed: 0 / User-skipped: 122 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / ec262fe
Reports root/ big
OK: 4674 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


pgsql_mnesia_26 / pgsql_mnesia / ec262fe
Reports root/ big
OK: 4674 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0

@arcusfelis
Copy link
Contributor Author

See rebased version #4179
Keeping this PR for reviews and history.
Rebased PR would make comments non-relevant sadly.

@arcusfelis arcusfelis closed this Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants