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

Fix doubled messaged in MAM bug #4374

Merged
merged 1 commit into from
Sep 17, 2024
Merged

Fix doubled messaged in MAM bug #4374

merged 1 commit into from
Sep 17, 2024

Conversation

gustawlippa
Copy link
Contributor

@gustawlippa gustawlippa commented Sep 11, 2024

The doubled message in MAM issue comes from the fact that MAM looks for a mam_id field in the accumulator when trying to save a message, and in the re-routing case, it is being stripped just a moment before.

This happens, because re-routing uses the normal routing procedure, which strips the non-persistent accumulator fields, including the mam_id, in mongoose_local_delivery. Stripping is done, because in the usual routing case the perspective of the message processing changes at that point - sender processing is finished, and receiver processing starts.

When retransmitting a message, we would like to process it from the receiver perspective once more, but with accumulator fields saved from the last time it was processed. I decided to use the filter_unacknowledged_messages hook in mod_mam_pm, which is called before retransmitting messages to save the mam_id as a permanent field in the accumulator. The "filter" name is analogous to the filter_local_packet hook, which is also used for processing in the broader sense than only filtering.

I'm not certain if the retransmission itself is a correct behaviour, and if the stanza shouldn't contain a "delay" element, however I couldn't find a definitive answer in the Stream Management XEP or in the XMPP Core RFC.

The tests are added to check that the bug has been fixed, as well as document the current retransmitting behaviour.

@mongoose-im

This comment was marked as outdated.

Copy link

codecov bot commented Sep 11, 2024

Codecov Report

Attention: Patch coverage is 80.00000% with 1 line in your changes missing coverage. Please review.

Project coverage is 85.15%. Comparing base (aafbc75) to head (729c237).
Report is 10 commits behind head on master.

Files with missing lines Patch % Lines
src/mam/mod_mam_pm.erl 75.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4374      +/-   ##
==========================================
- Coverage   85.15%   85.15%   -0.01%     
==========================================
  Files         549      549              
  Lines       33808    33811       +3     
==========================================
+ Hits        28790    28791       +1     
- Misses       5018     5020       +2     

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

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im
Copy link
Collaborator

mongoose-im commented Sep 16, 2024

elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / 5d0747e
Reports root/ big
OK: 508 / Failed: 0 / User-skipped: 52 / Auto-skipped: 0


small_tests_26 / small_tests / 5d0747e
Reports root / small


small_tests_27_arm64 / small_tests / 5d0747e
Reports root / small


small_tests_27 / small_tests / 5d0747e
Reports root / small


ldap_mnesia_26 / ldap_mnesia / 5d0747e
Reports root/ big
OK: 2345 / Failed: 0 / User-skipped: 910 / Auto-skipped: 0


ldap_mnesia_27 / ldap_mnesia / 5d0747e
Reports root/ big
OK: 2345 / Failed: 0 / User-skipped: 910 / Auto-skipped: 0


dynamic_domains_mysql_redis_27 / mysql_redis / 5d0747e
Reports root/ big
OK: 4850 / Failed: 0 / User-skipped: 152 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / 5d0747e
Reports root/ big
OK: 4883 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 5d0747e
Reports root/ big
OK: 4883 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


internal_mnesia_27 / internal_mnesia / 5d0747e
Reports root/ big
OK: 2486 / Failed: 1 / User-skipped: 768 / Auto-skipped: 0

pubsub_SUITE:dag+basic:subscribe_unsubscribe_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,'-subscribe_unsubscribe_test/1-fun-0-',2,
             [{file,"/home/circleci/project/big_tests/tests/pubsub_SUITE.erl"},
            {line,357}]},
     {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,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1303}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log


pgsql_cets_27 / pgsql_cets / 5d0747e
Reports root/ big
OK: 4721 / Failed: 1 / User-skipped: 186 / Auto-skipped: 0

connect_SUITE:just_tls:starttls_required:starttls_required_parallel:cannot_connect_with_proxy_header
{error,
  {thrown,
    {{timeout,stream_end},
     [{escalus_connection,get_stream_end,2,
        [{file,
           "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_connection.erl"},
         {line,369}]},
      {escalus_connection,end_stream,1,
        [{file,
           "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_connection.erl"},
         {line,541}]},
      {escalus_connection,stop,1,
        [{file,
           "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_connection.erl"},
         {line,411}]},
      {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
      {test_server,run_test_case_eval1,6,
        [{file,"test_server.erl"},{line,1303}]},
      {test_server,run_test_case_eval,9,
        [{file,"test_server.erl"},{line,1235}]}]}}}

Report log


dynamic_domains_mssql_mnesia_27 / odbc_mssql_mnesia / 5d0747e
Reports root/ big
OK: 4880 / Failed: 0 / User-skipped: 122 / Auto-skipped: 0


mysql_redis_27 / mysql_redis / 5d0747e
Reports root/ big
OK: 5255 / Failed: 0 / User-skipped: 147 / Auto-skipped: 0


pgsql_mnesia_27 / pgsql_mnesia / 5d0747e
Reports root/ big
OK: 5274 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


mssql_mnesia_27 / odbc_mssql_mnesia / 5d0747e
Reports root/ big
OK: 5271 / Failed: 0 / User-skipped: 131 / Auto-skipped: 0


pgsql_mnesia_26 / pgsql_mnesia / 5d0747e
Reports root/ big
OK: 5274 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0

@gustawlippa gustawlippa force-pushed the duplicated_mam_id branch 2 times, most recently from 4d7249b to 6623ca1 Compare September 16, 2024 09:56
@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@gustawlippa gustawlippa marked this pull request as ready for review September 16, 2024 13:24
Copy link
Contributor

@JanuszJakubiec JanuszJakubiec left a comment

Choose a reason for hiding this comment

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

Great PR! The tests look awesome! It was a tough task to find the solution to this issue. I've added one minor comment, because of test groups duplication. Besides it, everything else looks great!

The doubled message in MAM issue comes from the fact that MAM looks for a
`mam_id` field in the accumulator when trying to save a message, and in the
re-routing case, it is being stripped just a moment before.

This happens, because re-routing uses the normal routing procedure, which
strips the non-persistent accumulator fields, including the `mam_id`, in
`mongoose_local_delivery`. Stripping is done, because in the usual routing case
the  perspective of the message processing changes at that point - sender
processing is finished, and receiver processing starts.

When retransmitting a message, we would like to process it from the receiver
perspective once more, but with accumulator fields saved from the last time the
it was processed. I decided to use the filter_unacknowledged_messages` hook in
`mod_mam_pm`, which is called before retransmitting messages to save the
`mam_id` as a permanent field in the accumulator. The "filter" name is analogous
to the `filter_local_packet hook`, which is also used for processing in the
broader sense than only filtering.
@mongoose-im
Copy link
Collaborator

mongoose-im commented Sep 17, 2024

elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / 729c237
Reports root/ big
OK: 473 / Failed: 0 / User-skipped: 49 / Auto-skipped: 0


small_tests_26 / small_tests / 729c237
Reports root / small


small_tests_27_arm64 / small_tests / 729c237
Reports root / small


small_tests_27 / small_tests / 729c237
Reports root / small


ldap_mnesia_26 / ldap_mnesia / 729c237
Reports root/ big
OK: 2345 / Failed: 0 / User-skipped: 910 / Auto-skipped: 0


ldap_mnesia_27 / ldap_mnesia / 729c237
Reports root/ big
OK: 2381 / Failed: 2 / User-skipped: 910 / Auto-skipped: 0

jingle_SUITE:all:resp_4xx_from_sip_proxy_results_in_session_terminate
{error,
  {{assertion_failed,assert,is_iq_result,
     {xmlel,<<"iq">>,
       [{<<"from">>,<<"error.480@localhost">>},
        {<<"to">>,
         <<"alice_resp_4xx_from_sip_proxy_results_in_session_terminate_1060@localhost/res1">>},
        {<<"id">>,<<"bb7cdc34-8096-4726-ba9b-df0823af2e3e">>},
        {<<"type">>,<<"set">>}],
       [{xmlel,<<"jingle">>,
          [{<<"xmlns">>,<<"urn:xmpp:jingle:1">>},
           {<<"action">>,<<"session-terminate">>},
           {<<"sid">>,<<"7ed004a3-b459-4cb0-8fc5-caa1bc9f3bac">>}],
          [{xmlel,<<"reason">>,[],
             [{xmlel,<<"general-error">>,[],[]},
            {xmlel,<<"sip-error">>,
              [{<<"code">>,<<"480">>}],
              [{xmlcdata,<<"Temporarily Unavailable">>}]}]}]}]},
     "<iq from='error.480@localhost' to='alice_resp_4xx_from_sip_proxy_results_in_session_terminate_1060@localhost/res1' id='bb7cdc34-8096-4726-ba9b-df0823af2e3e' type='set'><jingle xmlns='urn:xmpp:jingle:1' action='session-terminate' sid='7ed004a3-b459-4cb0-8fc5-caa1bc9f3bac'><reason><general-error/><sip-error code='480'>Temporarily Unavailable</sip-error></reason></jingle></iq>"},
   [{escalus_new_assert,assert_true,2,
      [{file,
         "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_new_assert.erl"},
       {line,84}]},
    {jingle_SUITE,send_initiate_and_wait_for_first_iq_set,2,
      [{file,"/home/circleci/project/big_tests/tests/jingle_SUITE.erl"},
       {line,390}]},
    {jingle_SUITE,
      '-resp_...

Report log

jingle_SUITE:all:resp_4xx_from_sip_proxy_results_in_session_terminate
{error,
  {{assertion_failed,assert,is_iq_result,
     {xmlel,<<"iq">>,
       [{<<"from">>,<<"error.480@localhost">>},
        {<<"to">>,
         <<"alice_resp_4xx_from_sip_proxy_results_in_session_terminate_1077@localhost/res1">>},
        {<<"id">>,<<"75363ca4-8cc4-4635-87eb-8b1c33d2812f">>},
        {<<"type">>,<<"set">>}],
       [{xmlel,<<"jingle">>,
          [{<<"xmlns">>,<<"urn:xmpp:jingle:1">>},
           {<<"action">>,<<"session-terminate">>},
           {<<"sid">>,<<"e602b61e-a19c-4349-9a6c-9ec175dc6208">>}],
          [{xmlel,<<"reason">>,[],
             [{xmlel,<<"general-error">>,[],[]},
            {xmlel,<<"sip-error">>,
              [{<<"code">>,<<"480">>}],
              [{xmlcdata,<<"Temporarily Unavailable">>}]}]}]}]},
     "<iq from='error.480@localhost' to='alice_resp_4xx_from_sip_proxy_results_in_session_terminate_1077@localhost/res1' id='75363ca4-8cc4-4635-87eb-8b1c33d2812f' type='set'><jingle xmlns='urn:xmpp:jingle:1' action='session-terminate' sid='e602b61e-a19c-4349-9a6c-9ec175dc6208'><reason><general-error/><sip-error code='480'>Temporarily Unavailable</sip-error></reason></jingle></iq>"},
   [{escalus_new_assert,assert_true,2,
      [{file,
         "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_new_assert.erl"},
       {line,84}]},
    {jingle_SUITE,send_initiate_and_wait_for_first_iq_set,2,
      [{file,"/home/circleci/project/big_tests/tests/jingle_SUITE.erl"},
       {line,390}]},
    {jingle_SUITE,
      '-resp_...

Report log


dynamic_domains_mysql_redis_27 / mysql_redis / 729c237
Reports root/ big
OK: 4717 / Failed: 0 / User-skipped: 152 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / 729c237
Reports root/ big
OK: 4750 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 729c237
Reports root/ big
OK: 4750 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


internal_mnesia_27 / internal_mnesia / 729c237
Reports root/ big
OK: 2487 / Failed: 0 / User-skipped: 768 / Auto-skipped: 0


pgsql_mnesia_26 / pgsql_mnesia / 729c237
Reports root/ big
OK: 5141 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


pgsql_cets_27 / pgsql_cets / 729c237
Reports root/ big
OK: 4627 / Failed: 0 / User-skipped: 186 / Auto-skipped: 0


pgsql_mnesia_27 / pgsql_mnesia / 729c237
Reports root/ big
OK: 5141 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_27 / odbc_mssql_mnesia / 729c237
Reports root/ big
OK: 4747 / Failed: 0 / User-skipped: 122 / Auto-skipped: 0


mysql_redis_27 / mysql_redis / 729c237
Reports root/ big
OK: 4948 / Failed: 8 / User-skipped: 147 / Auto-skipped: 166

carboncopy_SUITE:one2one:dropped_client_doesnt_create_duplicate_carbons
{error,
  {{badmatch,
     [{xmlel,<<"message">>,
        [{<<"from">>,
        <<"alice_dropped_client_doesnt_create_duplicate_carbons_588@localhost">>},
         {<<"to">>,
        <<"alice_dropped_client_doesnt_create_duplicate_carbons_588@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_588@localhost/res1">>},
                {<<"type">>,<<"chat">>},
                {<<"to">>,
                 <<"bob_dropped_client_doesnt_create_duplicate_carbons_588@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,1794}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_serv...

Report log

rest_client_SUITE:security:non_default_http_server_name_is_returned_if_configured
{error,{{badrpc,nodedown},
    [{distributed_helper,rpc,
               [#{node => mongooseim2@localhost},
                mongoose_config,get_opt,
                [listen]],
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,140}]},
     {rest_helper,get_port,3,
            [{file,"/home/circleci/project/big_tests/tests/rest_helper.erl"},
             {line,229}]},
     {rest_helper,fusco_request,1,
            [{file,"/home/circleci/project/big_tests/tests/rest_helper.erl"},
             {line,179}]},
     {rest_helper,make_request,1,
            [{file,"/home/circleci/project/big_tests/tests/rest_helper.erl"},
             {line,114}]},
     {rest_client_SUITE,verify_server_name_in_header,2,
              [{file,"/home/circleci/project/big_tests/tests/rest_client_SUITE.erl"},
               {line,1467}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1303}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log

s2s_SUITE:dialback:init_per_group
{'EXIT',{{badrpc,nodedown},
     [{distributed_helper,rpc,
                [#{node => mongooseim2@localhost},
                 mnesia,system_info,
                 [is_running]],
                [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                 {line,140}]},
      {distributed_helper,has_mnesia,1,
                [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                 {line,31}]},
      {distributed_helper,add_node_to_cluster,2,
                [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                 {line,34}]},
      {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
      {test_server,run_test_case_eval1,6,
             [{file,"test_server.erl"},{line,1391}]},
      {test_server,run_test_case_eval,9,
             [{file,"test_server.erl"},{line,1235}]}]}}

Report log

service_mongoose_system_metrics_SUITE:init_per_suite
{'EXIT',
  {{badrpc,nodedown},
   [{distributed_helper,rpc,
      [#{node => mongooseim2@localhost},
       mongoose_service,loaded_services_with_opts,[]],
      [{file,
         "/home/circleci/project/big_tests/../test/common/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,2151}]},
    {service_mongoose_system_metrics_SUITE,init_per_suite,1,
      [{file,
         "/home/circleci/project/big_tests/tests/service_mongoose_system_metrics_SUITE.erl"},
       {line,78}]},
    {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_server.erl"},{line,1391}]},
    {test_server,run_test_case_eval,9,
      [{file,"test_server.erl"},{line,1235}]}]}}

Report log

system_probes_SUITE:mnesia:mnesia_info
{error,{{badrpc,nodedown},
    [{distributed_helper,rpc,
               [#{node => mongooseim2@localhost},
                mnesia,system_info,
                [is_running]],
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,140}]},
     {distributed_helper,has_mnesia,1,
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,31}]},
     {distributed_helper,add_node_to_cluster,2,
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,34}]},
     {system_probes_SUITE,mnesia_info,1,
                [{file,"/home/circleci/project/big_tests/tests/system_probes_SUITE.erl"},
                 {line,96}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1303}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log

service_domain_db_SUITE:init_per_suite
{'EXIT',
  {{badrpc,nodedown},
   [{distributed_helper,rpc,
      [#{node => mongooseim2@localhost},
       mongoose_service,loaded_services_with_opts,[]],
      [{file,
         "/home/circleci/project/big_tests/../test/common/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,2151}]},
    {service_domain_db_SUITE,init_per_suite,1,
      [{file,
         "/home/circleci/project/big_tests/tests/service_domain_db_SUITE.erl"},
       {line,198}]},
    {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_server.erl"},{line,1391}]},
    {test_server,run_test_case_eval,9,
      [{file,"test_server.erl"},{line,1235}]}]}}

Report log

dynamic_domains_SUITE:init_per_suite
{'EXIT',
  {{badrpc,nodedown},
   [{distributed_helper,rpc,
      [#{node => mongooseim2@localhost},mnesia,system_info,[is_running]],
      [{file,
         "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
       {line,140}]},
    {distributed_helper,has_mnesia,1,
      [{file,
         "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
       {line,31}]},
    {distributed_helper,add_node_to_cluster,2,
      [{file,
         "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
       {line,34}]},
    {dynamic_domains_SUITE,cluster_nodes,2,
      [{file,
         "/home/circleci/project/big_tests/tests/dynamic_domains_SUITE.erl"},
       {line,238}]},
    {dynamic_domains_SUITE,init_per_suite,1,
      [{file,
         "/home/circleci/project/big_tests/tests/dynamic_domains_SUITE.erl"},
       {line,33}]},
    {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
    {test_server,run_test_case_eval1,6,
      [{file,"test_server.erl"},{line,1391}]},
    {test_server,run_test_case_eval,9,
      [{file,"test_server.erl"},{line,1235}]}]}}

Report log

local_iq_SUITE:init_per_suite
{'EXIT',{{badrpc,nodedown},
     [{distributed_helper,rpc,
                [#{node => mongooseim2@localhost},
                 mnesia,system_info,
                 [is_running]],
                [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                 {line,140}]},
      {distributed_helper,has_mnesia,1,
                [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                 {line,31}]},
      {distributed_helper,add_node_to_cluster,2,
                [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                 {line,34}]},
      {local_iq_SUITE,init_per_suite,1,
              [{file,"/home/circleci/project/big_tests/tests/local_iq_SUITE.erl"},
               {line,29}]},
      {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
      {test_server,run_test_case_eval1,6,
             [{file,"test_server.erl"},{line,1391}]},
      {test_server,run_test_case_eval,9,
             [{file,"test_server.erl"},{line,1235}]}]}}

Report log

cets_disco_SUITE:file:file_backend
{failed,
  {cets_disco_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim2@localhost},meck,unload,[]],
          [{file,
             "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
           {line,140}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1638}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1346}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:rdbms_backend
{error,{{badrpc,nodedown},
    [{distributed_helper,rpc,
               [#{node => mongooseim2@localhost},
                mongoose_cets_discovery_rdbms,init,
                [#{cluster_name =>
                   <<"big_test_rdbms_backend_74004173a06ad49d">>,
                 node_name_to_insert => <<"test2">>}]],
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,140}]},
     {cets_disco_SUITE,disco_init,2,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,276}]},
     {cets_disco_SUITE,init_and_get_nodes,3,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,263}]},
     {cets_disco_SUITE,rdbms_backend,1,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,99}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1303}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log

cets_disco_SUITE:rdbms:rdbms_backend_supports_cluster_change
{error,{{badrpc,nodedown},
    [{distributed_helper,rpc,
               [#{node => mongooseim2@localhost},
                mongoose_cets_discovery_rdbms,init,
                [#{cluster_name =>
                   <<"big_test_rdbms_backend_supports_cluster_change_9652abadd19c67f1">>,
                 node_name_to_insert => <<"test2">>}]],
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,140}]},
     {cets_disco_SUITE,disco_init,2,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,276}]},
     {cets_disco_SUITE,init_and_get_nodes,3,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,263}]},
     {cets_disco_SUITE,rdbms_backend_supports_cluster_change,1,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,112}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1303}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log

cets_disco_SUITE:rdbms:rdbms_backend_cluster_name_contains_cets_version
{failed,
  {cets_disco_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim2@localhost},meck,unload,[]],
          [{file,
             "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
           {line,140}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1638}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1346}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:rdbms_backend_supports_auto_cleaning
{error,{{badrpc,nodedown},
    [{distributed_helper,rpc,
               [#{node => mongooseim2@localhost},
                mongoose_cets_discovery_rdbms,init,
                [#{cluster_name =>
                   <<"big_test_rdbms_backend_supports_auto_cleaning_e4ba058af6e4ae0f">>,
                 node_name_to_insert => <<"test2">>}]],
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,140}]},
     {cets_disco_SUITE,disco_init,2,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,276}]},
     {cets_disco_SUITE,init_and_get_nodes,3,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,263}]},
     {cets_disco_SUITE,rdbms_backend_supports_auto_cleaning,1,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,146}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1303}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log

cets_disco_SUITE:rdbms:rdbms_backend_node_doesnt_remove_itself
{error,{{badrpc,nodedown},
    [{distributed_helper,rpc,
               [#{node => mongooseim2@localhost},
                mongoose_cets_discovery_rdbms,init,
                [#{cluster_name =>
                   <<"big_test_rdbms_backend_node_doesnt_remove_itself_f2a889157e84a3a1">>,
                 node_name_to_insert => <<"test2">>}]],
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,140}]},
     {cets_disco_SUITE,disco_init,2,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,276}]},
     {cets_disco_SUITE,init_and_get_nodes,3,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,263}]},
     {cets_disco_SUITE,rdbms_backend_node_doesnt_remove_itself,1,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,169}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1303}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log

cets_disco_SUITE:rdbms:rdbms_backend_db_queries
{failed,
  {cets_disco_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim2@localhost},meck,unload,[]],
          [{file,
             "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
           {line,140}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1638}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1346}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:rdbms_backend_publishes_node_ip
{error,{{badrpc,nodedown},
    [{distributed_helper,rpc,
               [#{node => mongooseim2@localhost},
                mongoose_cets_discovery_rdbms,init,
                [#{cluster_name =>
                   <<"big_test_rdbms_backend_publishes_node_ip_0d23724ba2b8012a">>,
                 node_name_to_insert =>
                   <<"mongooseim2@localhost">>,
                 node_ip_binary => <<"127.0.0.1">>}]],
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,140}]},
     {cets_disco_SUITE,disco_init,2,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,276}]},
     {cets_disco_SUITE,rdbms_backend_publishes_node_ip,1,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,210}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1303}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log

cets_disco_SUITE:rdbms:no_record_for_node
{failed,
  {cets_disco_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim2@localhost},meck,unload,[]],
          [{file,
             "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
           {line,140}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1638}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1346}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:no_ip_in_db
{failed,
  {cets_disco_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim2@localhost},meck,unload,[]],
          [{file,
             "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
           {line,140}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1638}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1346}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:epmd_just_returns_ip_from_db
{failed,
  {cets_disco_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim2@localhost},meck,unload,[]],
          [{file,
             "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
           {line,140}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1638}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1346}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:address_please
{failed,
  {cets_disco_SUITE,end_per_testcase,
    {'EXIT',
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim2@localhost},meck,unload,[]],
          [{file,
             "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
           {line,140}]},
        {test_server,do_end_per_testcase,4,
          [{file,"test_server.erl"},{line,1638}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1346}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:address_please_returns_ip
{skip,
  {failed,
    {cets_disco_SUITE,init_per_testcase,
      {{badrpc,nodedown},
       [{distributed_helper,rpc,
          [#{node => mongooseim2@localhost},
           supervisor,start_child,
           [ejabberd_sup,
          #{id => cets_discovery,restart => temporary,
            shutdown => infinity,
            start =>
              {mongoose_cets_discovery,start_link,
                [#{name => mongoose_cets_discovery,
                 cluster_name => <<"mim">>,
                 node_name_to_insert =>
                   <<"testmim2@localhost">>,
                 node_ip_binary => <<"192.168.115.112">>,
                 backend_module =>
                   mongoose_cets_discovery_rdbms}]},
            type => worker,
            modules => [cets_discovery]}]],
          [{file,
             "/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
           {line,140}]},
        {cets_disco_SUITE,start_disco,2,
          [{file,
             "/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
           {line,425}]},
        {cets_disco_SUITE,start_cets_discovery,1,
          [{file,
             "/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
           {line,349}]},
        {test_server,do_init_per_testcase,2,
          [{file,"test_server.erl"},{line,1564}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1265}]},
        {test_server,run_test_case_eval,9,
          [{file,"te...

Report log

cets_disco_SUITE:rdbms:address_please_returns_ip_fallbacks_to_resolve_with_file_backend
{skip,
  {failed,
    {cets_disco_SUITE,init_per_testcase,
      {{badmatch,{error,{already_started,<10456.146518.0>}}},
       [{cets_disco_SUITE,start_disco,2,
          [{file,
             "/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
           {line,425}]},
        {cets_disco_SUITE,start_cets_discovery_with_file_backnend,1,
          [{file,
             "/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
           {line,360}]},
        {test_server,do_init_per_testcase,2,
          [{file,"test_server.erl"},{line,1564}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1265}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:address_please_returns_ip_127_0_0_1_from_db
{skip,
  {failed,
    {cets_disco_SUITE,init_per_testcase,
      {{badmatch,{error,{already_started,<10456.146518.0>}}},
       [{cets_disco_SUITE,start_disco,2,
          [{file,
             "/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
           {line,425}]},
        {cets_disco_SUITE,start_cets_discovery_with_real_ips,1,
          [{file,
             "/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
           {line,354}]},
        {test_server,do_init_per_testcase,2,
          [{file,"test_server.erl"},{line,1564}]},
        {test_server,run_test_case_eval1,6,
          [{file,"test_server.erl"},{line,1265}]},
        {test_server,run_test_case_eval,9,
          [{file,"test_server.erl"},{line,1235}]}]}}}}

Report log

cets_disco_SUITE:rdbms:end_per_group
{error,{{badrpc,nodedown},
    [{distributed_helper,rpc,
               [#{node => mongooseim2@localhost},
                mongoose_cets_discovery,supervisor_specs,[]],
               [{file,"/home/circleci/project/big_tests/../test/common/distributed_helper.erl"},
                {line,140}]},
     {cets_disco_SUITE,restore_default_cets_discovery,1,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,386}]},
     {cets_disco_SUITE,end_per_group,2,
               [{file,"/home/circleci/project/big_tests/tests/cets_disco_SUITE.erl"},
              {line,58}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1794}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1391}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1235}]}]}}

Report log


mssql_mnesia_27 / odbc_mssql_mnesia / 729c237
Reports root/ big
OK: 5138 / Failed: 0 / User-skipped: 131 / Auto-skipped: 0


mysql_redis_27 / mysql_redis / 729c237
Reports root/ big
OK: 5122 / Failed: 0 / User-skipped: 147 / Auto-skipped: 0

Copy link
Contributor

@JanuszJakubiec JanuszJakubiec left a comment

Choose a reason for hiding this comment

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

Looks good 👍🏻

@JanuszJakubiec JanuszJakubiec merged commit fc86296 into master Sep 17, 2024
3 of 4 checks passed
@JanuszJakubiec JanuszJakubiec deleted the duplicated_mam_id branch September 17, 2024 11:32
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.

3 participants