Browse Source

Rearrange tests.

Roberto Ostinelli 3 years ago
parent
commit
78d8d1fad4
4 changed files with 28 additions and 28 deletions
  1. 2 2
      src/syn_gen_scope.erl
  2. 16 16
      src/syn_registry.erl
  3. 9 9
      test/syn_registry_SUITE.erl
  4. 1 1
      test/syn_test_suite_helper.erl

+ 2 - 2
src/syn_gen_scope.erl

@@ -228,8 +228,8 @@ handle_info({'3.0', ack_sync, RemoteScopePid, Data}, #state{
     scope = Scope
 } = State) ->
     RemoteScopeNode = node(RemoteScopePid),
-    error_logger:info_msg("SYN[~s] Received ACK SYNC from node '~s' for ~s and scope '~s'",
-        [node(), RemoteScopeNode, Handler, Scope]
+    error_logger:info_msg("SYN[~s] Received ACK SYNC (~w entries) from node '~s' for ~s and scope '~s'",
+        [node(), length(Data), RemoteScopeNode, Handler, Scope]
     ),
     %% save remote data
     Handler:save_remote_data(Data, State),

+ 16 - 16
src/syn_registry.erl

@@ -528,37 +528,37 @@ resolve_conflict(Scope, Name, {Pid, Meta, Time}, {TablePid, TableMeta, TableTime
     case PidToKeep of
         Pid ->
             %% -> we keep the remote pid
+            error_logger:info_msg("SYN[~s] Registry CONFLICT for name ~p@~s: ~p vs ~p -> keeping remote: ~p",
+                [node(), Name, Scope, Pid, TablePid, Pid]
+            ),
             %% update locally, the incoming sync_register will update with the time coming from remote node
             update_local_table(Name, TablePid, {Pid, Meta, Time, undefined}, TableByName, TableByPid),
-            %% callbacks
-            syn_event_handler:do_on_process_unregistered(Scope, Name, TablePid, TableMeta),
-            syn_event_handler:do_on_process_registered(Scope, Name, {TablePid, TableMeta}, {Pid, Meta}),
             %% kill
             exit(TablePid, {syn_resolve_kill, Name, TableMeta}),
-            error_logger:info_msg("SYN[~s] Registry CONFLICT for name ~p@~s: ~p ~p -> chosen: ~p",
-                [node(), Name, Scope, Pid, TablePid, Pid]
-            );
+            %% callbacks
+            syn_event_handler:do_on_process_unregistered(Scope, Name, TablePid, TableMeta),
+            syn_event_handler:do_on_process_registered(Scope, Name, {TablePid, TableMeta}, {Pid, Meta});
 
         TablePid ->
             %% -> we keep the local pid
+            error_logger:info_msg("SYN[~s] Registry CONFLICT for name ~p@~s: ~p vs ~p -> keeping local: ~p",
+                [node(), Name, Scope, Pid, TablePid, TablePid]
+            ),
             %% overwrite with updated time
             ResolveTime = erlang:system_time(),
             add_to_local_table(Name, TablePid, TableMeta, ResolveTime, TableMRef, TableByName, TableByPid),
-            %% broadcast
-            syn_gen_scope:broadcast({'3.0', sync_register, Scope, Name, TablePid, TableMeta, ResolveTime}, State),
-            error_logger:info_msg("SYN[~s] Registry CONFLICT for name ~p@~s: ~p ~p -> chosen: ~p",
-                [node(), Name, Scope, Pid, TablePid, TablePid]
-            );
+            %% broadcast to all but remote node
+            syn_gen_scope:broadcast({'3.0', sync_register, Scope, Name, TablePid, TableMeta, ResolveTime}, State);
 
         Invalid ->
+            error_logger:info_msg("SYN[~s] Registry CONFLICT for name ~p@~s: ~p vs ~p -> none chosen (got: ~p)",
+                [node(), Name, Scope, Pid, TablePid, Invalid]
+            ),
             %% remove
             maybe_demonitor(TablePid, TableByPid),
             remove_from_local_table(Name, TablePid, TableByName, TableByPid),
-            %% callback
-            syn_event_handler:do_on_process_unregistered(Scope, Name, TablePid, TableMeta),
             %% kill local, remote will be killed by other node performing the same resolve
             exit(TablePid, {syn_resolve_kill, Name, TableMeta}),
-            error_logger:info_msg("SYN[~s] Registry CONFLICT for name ~p@~s: ~p ~p -> none chosen (got: ~p)",
-                [node(), Name, Scope, Pid, TablePid, Invalid]
-            )
+            %% callback
+            syn_event_handler:do_on_process_unregistered(Scope, Name, TablePid, TableMeta)
     end.

+ 9 - 9
test/syn_registry_SUITE.erl

@@ -1101,10 +1101,10 @@ three_nodes_cluster_conflicts(Config) ->
     Pid2RemoteOn2 = syn_test_suite_helper:start_process(SlaveNode2),
 
     %% --> conflict by netsplit
-    ok = rpc:call(SlaveNode1, syn, register, ["proc-confict", Pid2RemoteOn1, "meta-1"]),
-    ok = rpc:call(SlaveNode2, syn, register, ["proc-confict", Pid2RemoteOn2, "meta-2"]),
-    ok = rpc:call(SlaveNode1, syn, register, [custom_scope_bc, "proc-confict", Pid2RemoteOn1, "meta-1"]),
-    ok = rpc:call(SlaveNode2, syn, register, [custom_scope_bc, "proc-confict", Pid2RemoteOn2, "meta-2"]),
+    ok = rpc:call(SlaveNode1, syn, register, ["proc-confict-by-netsplit", Pid2RemoteOn1, "meta-1"]),
+    ok = rpc:call(SlaveNode2, syn, register, ["proc-confict-by-netsplit", Pid2RemoteOn2, "meta-2"]),
+    ok = rpc:call(SlaveNode1, syn, register, [custom_scope_bc, "proc-confict-by-netsplit-scoped", Pid2RemoteOn1, "meta-1"]),
+    ok = rpc:call(SlaveNode2, syn, register, [custom_scope_bc, "proc-confict-by-netsplit-scoped", Pid2RemoteOn2, "meta-2"]),
 
     %% re-join
     rpc:call(SlaveNode1, syn_test_suite_helper, connect_node, [SlaveNode2]),
@@ -1115,15 +1115,15 @@ three_nodes_cluster_conflicts(Config) ->
     %% retrieve
     syn_test_suite_helper:assert_wait(
         {Pid2RemoteOn2, "meta-2"},
-        fun() -> syn:lookup("proc-confict") end
+        fun() -> syn:lookup("proc-confict-by-netsplit") end
     ),
     syn_test_suite_helper:assert_wait(
         {Pid2RemoteOn2, "meta-2"},
-        fun() -> rpc:call(SlaveNode1, syn, lookup, ["proc-confict"]) end
+        fun() -> rpc:call(SlaveNode1, syn, lookup, ["proc-confict-by-netsplit"]) end
     ),
     syn_test_suite_helper:assert_wait(
         {Pid2RemoteOn2, "meta-2"},
-        fun() -> rpc:call(SlaveNode2, syn, lookup, ["proc-confict"]) end
+        fun() -> rpc:call(SlaveNode2, syn, lookup, ["proc-confict-by-netsplit"]) end
     ),
     1 = syn:registry_count(default),
     0 = syn:registry_count(default, node()),
@@ -1139,11 +1139,11 @@ three_nodes_cluster_conflicts(Config) ->
     1 = rpc:call(SlaveNode2, syn, registry_count, [default, SlaveNode2]),
     syn_test_suite_helper:assert_wait(
         {Pid2RemoteOn2, "meta-2"},
-        fun() -> rpc:call(SlaveNode1, syn, lookup, [custom_scope_bc, "proc-confict"]) end
+        fun() -> rpc:call(SlaveNode1, syn, lookup, [custom_scope_bc, "proc-confict-by-netsplit-scoped"]) end
     ),
     syn_test_suite_helper:assert_wait(
         {Pid2RemoteOn2, "meta-2"},
-        fun() -> rpc:call(SlaveNode2, syn, lookup, [custom_scope_bc, "proc-confict"]) end
+        fun() -> rpc:call(SlaveNode2, syn, lookup, [custom_scope_bc, "proc-confict-by-netsplit-scoped"]) end
     ),
     1 = rpc:call(SlaveNode1, syn, registry_count, [custom_scope_bc]),
     0 = rpc:call(SlaveNode1, syn, registry_count, [custom_scope_bc, node()]),

+ 1 - 1
test/syn_test_suite_helper.erl

@@ -45,7 +45,7 @@
 -export([process_main/0]).
 
 %% macro
--define(TIMEOUT, 10000).
+-define(TIMEOUT, 5000).
 
 %% ===================================================================
 %% API