[HELP] How can the 'global_name_server' receive nodeup/nodedown message

Siyang Zhang zhangsiyang0629725@REDACTED
Thu Mar 19 10:14:54 CET 2020


Hi
If a process want to monitor the other nodes up/down, it should call the
'net_kernel:monitor_nodes' interface. And the process could receive the
nodeup/nodedown message.

However, the global_name_server has not called 'net_kernel:monitor_nodes',
but still can receive the nodeup/nodedown message. How could this happen ?

Furthermore, consider the situation below.
There is node A, node B and node C connected, and node D try to connect the
Node B. I traced the message of global_name_server on node D, and found
that {nodeup B} is processed firstly,  a serial of global names exchange
operation messages followed, the {nodeup A} and {nodeup C} is processed
lastly. These messages stack is showed below:

[{'d@REDACTED',
     {1584,601184,246000},
     {*nodeup*,'c@REDACTED'},
     ['b@REDACTED','a@REDACTED','c@REDACTED'],
     []},
 {'d@REDACTED',
     {1584,601184,246000},
     {*nodeup*,'a@REDACTED'},
     ['b@REDACTED','a@REDACTED'],
     []},
 {'d@REDACTED',
     {1584,601184,246000},
     {rem_lock,'d@REDACTED'},
     ['b@REDACTED'],
     [{global,[<7817.41.0>,<0.41.0>]},<0.41.0>]},
 {'d@REDACTED',
     {1584,601184,246000},
     {added,['b@REDACTED','a@REDACTED','c@REDACTED']},
     ['b@REDACTED'],
     [{new_nodes,['b@REDACTED','a@REDACTED','c@REDACTED']},
      {abcast,[]},
      {ops,
          [{insert,{'10_test',<8199.87.0>,#Fun<global.0.107123556>}},
           {insert,{'11_test',<8199.88.0>,#Fun<global.0.107123556>}},
           {insert,{'12_test',<8199.89.0>,#Fun<global.0.107123556>}},
           {insert,{'13_test',<8199.90.0>,#Fun<global.0.107123556>}},
           {insert,{'14_test',<8199.91.0>,#Fun<global.0.107123556>}},
           {insert,{'15_test',<8199.92.0>,#Fun<global.0.107123556>}},
           {insert,{'16_test',<8199.93.0>,#Fun<global.0.107123556>}},
           {insert,{'17_test',<8199.94.0>,#Fun<global.0.107123556>}},
           {insert,{'18_test',<8199.95.0>,#Fun<global.0.107123556>}},
           {insert,{'19_test',<8199.96.0>,#Fun<global.0.107123556>}},
           {insert,{'20_test',<8199.97.0>,#Fun<global.0.107123556>}},
           {insert,{'1_test',<8199.78.0>,#Fun<global.0.107123556>}},
           {insert,{'2_test',<8199.79.0>,#Fun<global.0.107123556>}},
           {insert,{'3_test',<8199.80.0>,#Fun<global.0.107123556>}},
           {insert,{'4_test',<8199.81.0>,#Fun<global.0.107123556>}},
           {insert,{'5_test',<8199.82.0>,#Fun<global.0.107123556>}},
           {insert,{'6_test',<8199.83.0>,#Fun<global.0.107123556>}},
           {insert,{'7_test',<8199.84.0>,#Fun<global.0.107123556>}},
           {insert,{'8_test',<8199.85.0>,#Fun<global.0.107123556>}},
           {insert,{'9_test',<8199.86.0>,#Fun<global.0.107123556>}}]}]},
 {'d@REDACTED',
     {1584,601184,246000},
     {kill_resolver,'b@REDACTED'},
     ['b@REDACTED'],
     [-576460752303423488,<0.71.0>]},
 {'d@REDACTED',
     {1584,601184,246000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['9_test',<8199.86.0>]},
 {'d@REDACTED',
     {1584,601184,246000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['8_test',<8199.85.0>]},
 {'d@REDACTED',
     {1584,601184,246000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['7_test',<8199.84.0>]},
 {'d@REDACTED',
     {1584,601184,246000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['6_test',<8199.83.0>]},
 {'d@REDACTED',
     {1584,601184,246000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['5_test',<8199.82.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['4_test',<8199.81.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['3_test',<8199.80.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['2_test',<8199.79.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['1_test',<8199.78.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['20_test',<8199.97.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['19_test',<8199.96.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['18_test',<8199.95.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['17_test',<8199.94.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['16_test',<8199.93.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['15_test',<8199.92.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['14_test',<8199.91.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['13_test',<8199.90.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['12_test',<8199.89.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['11_test',<8199.88.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_name,'a@REDACTED'},
     ['b@REDACTED'],
     ['10_test',<8199.87.0>]},
 {'d@REDACTED',
     {1584,601184,231000},
     {exit_resolver,'b@REDACTED'},
     ['b@REDACTED'],
     [-576460752303423488]},
 {'d@REDACTED',
     {1584,601184,231000},
     {locker_succeeded,'d@REDACTED'},
     ['b@REDACTED'],
     {[],[]}},
 {'d@REDACTED',
     {1584,601184,231000},
     {ins_lock,'d@REDACTED'},
     ['b@REDACTED'],
     [{global,[<7817.41.0>,<0.41.0>]},<0.41.0>]},
 {'d@REDACTED',
     {1584,601184,12000},
     {new_resolver,'b@REDACTED'},
     ['b@REDACTED'],
     [-576460752303423488,<0.71.0>]},
 {'d@REDACTED',
     {1584,601184,12000},
     {*nodeup*,'b@REDACTED'},
     ['b@REDACTED'],
     []},
 {'d@REDACTED',
     {1584,601148,148000},
     {nodes_changed,{['d@REDACTED'],[nonode@REDACTED]}},
     [],[]},
 {nonode@REDACTED,{1584,601147,633000},{init,nonode@REDACTED},[],[]}]

Why the message of {nodup A/B} is received last ? In my opinion, these two
messages could appear anywhere, and may impact the operation of global
names exchange. In fact, it's not, the  global names exchange could be
operated rightly.

Could anybody help me ?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20200319/e15aa55b/attachment.htm>


More information about the erlang-questions mailing list