From 38de40bd04ebf1c8190f1b6568bdb7a307f3f3d5 Mon Sep 17 00:00:00 2001 From: Deepthi S Kumar Date: Tue, 24 Nov 2020 09:54:18 -0800 Subject: [PATCH] libp2p restarts if env variable specified --- src/lib/gossip_net/libp2p.ml | 45 +++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/lib/gossip_net/libp2p.ml b/src/lib/gossip_net/libp2p.ml index 2ee9dfab6b6..df09cd37f50 100644 --- a/src/lib/gossip_net/libp2p.ml +++ b/src/lib/gossip_net/libp2p.ml @@ -385,27 +385,30 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : let rec on_libp2p_create res = net2_ref := Deferred.map res ~f:(fun (n, _, _, _) -> - let restart_after = - let plus_or_minus initial ~delta = - initial +. (Random.float (2. *. delta) -. delta) - in - let base_time = - Option.value_map ~f:Float.of_string - (Sys.getenv "MINA_LIBP2P_HELPER_RESTART_INTERVAL_BASE") - ~default:7. - in - let delta = - Option.value_map ~f:Float.of_string - (Sys.getenv "MINA_LIBP2P_HELPER_RESTART_INTERVAL_DELTA") - ~default:2.5 - |> Float.min (base_time /. 2.) - in - Time.Span.(of_min (base_time |> plus_or_minus ~delta)) - in - upon (after restart_after) (fun () -> - don't_wait_for - (let%bind () = Coda_net2.shutdown n in - on_unexpected_termination ()) ) ; + ( match + Sys.getenv "MINA_LIBP2P_HELPER_RESTART_INTERVAL_BASE" + with + | Some base_time -> + let restart_after = + let plus_or_minus initial ~delta = + initial +. (Random.float (2. *. delta) -. delta) + in + let base_time = Float.of_string base_time in + let delta = + Option.value_map ~f:Float.of_string + (Sys.getenv + "MINA_LIBP2P_HELPER_RESTART_INTERVAL_DELTA") + ~default:2.5 + |> Float.min (base_time /. 2.) + in + Time.Span.(of_min (base_time |> plus_or_minus ~delta)) + in + upon (after restart_after) (fun () -> + don't_wait_for + (let%bind () = Coda_net2.shutdown n in + on_unexpected_termination ()) ) + | None -> + () ) ; n ) ; subscription_ref := Deferred.map res ~f:(fun (_, s, _, _) -> s) ; upon res (fun (_, _, m, me) ->