@@ -637,8 +637,7 @@ query_node_props2([{Node, Members} | Rest], NodesAndProps, FromNode) ->
637637 [" Peer discovery: temporary hidden node '~ts ' "
638638 " queries properties from node '~ts '" ,
639639 [node (), Node ]], FromNode ),
640- StartTime = get_node_start_time (
641- Node , microsecond , FromNode ),
640+ StartTime = get_node_start_time (Node , FromNode ),
642641 IsReady = is_node_db_ready (Node , FromNode ),
643642 NodeAndProps = {Node , Members , StartTime , IsReady },
644643 NodesAndProps1 = [NodeAndProps | NodesAndProps ],
@@ -666,9 +665,8 @@ query_node_props2([], NodesAndProps, _FromNode) ->
666665 ? assert (length (NodesAndProps1 ) =< length (nodes (hidden ))),
667666 NodesAndProps1 .
668667
669- -spec get_node_start_time (Node , Unit , FromNode ) -> StartTime when
668+ -spec get_node_start_time (Node , FromNode ) -> StartTime when
670669 Node :: node (),
671- Unit :: erlang :time_unit (),
672670 FromNode :: node (),
673671 StartTime :: non_neg_integer ().
674672% % @doc Returns the start time of the given `Node' in `Unit'.
@@ -689,15 +687,21 @@ query_node_props2([], NodesAndProps, _FromNode) ->
689687% %
690688% % @private
691689
692- get_node_start_time (Node , Unit , FromNode ) ->
693- NativeStartTime = erpc_call (
694- Node , erlang , system_info , [start_time ], FromNode ),
695- TimeOffset = erpc_call (Node , erlang , time_offset , [], FromNode ),
696- SystemStartTime = NativeStartTime + TimeOffset ,
697- StartTime = erpc_call (
698- Node , erlang , convert_time_unit ,
699- [SystemStartTime , native , Unit ], FromNode ),
700- StartTime .
690+ get_node_start_time (Node , FromNode ) ->
691+ try
692+ erpc_call (Node ,rabbit_boot_state , get_start_time , [], FromNode )
693+ catch
694+ error :{exception , _ , _ } ->
695+ NativeStartTime = erpc_call (
696+ Node , erlang , system_info , [start_time ],
697+ FromNode ),
698+ TimeOffset = erpc_call (Node , erlang , time_offset , [], FromNode ),
699+ SystemStartTime = NativeStartTime + TimeOffset ,
700+ StartTime = erpc_call (
701+ Node , erlang , convert_time_unit ,
702+ [SystemStartTime , native , microsecond ], FromNode ),
703+ StartTime
704+ end .
701705
702706-spec is_node_db_ready (Node , FromNode ) -> IsReady when
703707 Node :: node (),
0 commit comments