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

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

Siyang Zhang
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:

[{'[hidden email]',
     {1584,601184,246000},
     {nodeup,'[hidden email]'},
     ['[hidden email]','[hidden email]','[hidden email]'],
     []},
 {'[hidden email]',
     {1584,601184,246000},
     {nodeup,'[hidden email]'},
     ['[hidden email]','[hidden email]'],
     []},
 {'[hidden email]',
     {1584,601184,246000},
     {rem_lock,'[hidden email]'},
     ['[hidden email]'],
     [{global,[<7817.41.0>,<0.41.0>]},<0.41.0>]},
 {'[hidden email]',
     {1584,601184,246000},
     {added,['[hidden email]','[hidden email]','[hidden email]']},
     ['[hidden email]'],
     [{new_nodes,['[hidden email]','[hidden email]','[hidden email]']},
      {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>}}]}]},
 {'[hidden email]',
     {1584,601184,246000},
     {kill_resolver,'[hidden email]'},
     ['[hidden email]'],
     [-576460752303423488,<0.71.0>]},
 {'[hidden email]',
     {1584,601184,246000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['9_test',<8199.86.0>]},
 {'[hidden email]',
     {1584,601184,246000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['8_test',<8199.85.0>]},
 {'[hidden email]',
     {1584,601184,246000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['7_test',<8199.84.0>]},
 {'[hidden email]',
     {1584,601184,246000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['6_test',<8199.83.0>]},
 {'[hidden email]',
     {1584,601184,246000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['5_test',<8199.82.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['4_test',<8199.81.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['3_test',<8199.80.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['2_test',<8199.79.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['1_test',<8199.78.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['20_test',<8199.97.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['19_test',<8199.96.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['18_test',<8199.95.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['17_test',<8199.94.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['16_test',<8199.93.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['15_test',<8199.92.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['14_test',<8199.91.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['13_test',<8199.90.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['12_test',<8199.89.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['11_test',<8199.88.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_name,'[hidden email]'},
     ['[hidden email]'],
     ['10_test',<8199.87.0>]},
 {'[hidden email]',
     {1584,601184,231000},
     {exit_resolver,'[hidden email]'},
     ['[hidden email]'],
     [-576460752303423488]},
 {'[hidden email]',
     {1584,601184,231000},
     {locker_succeeded,'[hidden email]'},
     ['[hidden email]'],
     {[],[]}},
 {'[hidden email]',
     {1584,601184,231000},
     {ins_lock,'[hidden email]'},
     ['[hidden email]'],
     [{global,[<7817.41.0>,<0.41.0>]},<0.41.0>]},
 {'[hidden email]',
     {1584,601184,12000},
     {new_resolver,'[hidden email]'},
     ['[hidden email]'],
     [-576460752303423488,<0.71.0>]},
 {'[hidden email]',
     {1584,601184,12000},
     {nodeup,'[hidden email]'},
     ['[hidden email]'],
     []},
 {'[hidden email]',
     {1584,601148,148000},
     {nodes_changed,{['[hidden email]'],[nonode@nohost]}},
     [],[]},
 {nonode@nohost,{1584,601147,633000},{init,nonode@nohost},[],[]}]

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 ?