From 871f5a9bd480b856be24fe201d89eb990bcdb02f Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Fri, 6 Dec 2024 12:28:06 +0100 Subject: [PATCH 1/2] DAL/GS/P2P: fix trusted flag when trying to connect --- .../gossipsub/gs_transport_connection.ml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lib_dal_node/gossipsub/gs_transport_connection.ml b/src/lib_dal_node/gossipsub/gs_transport_connection.ml index 4933b05d925c..01b7d4ea592e 100644 --- a/src/lib_dal_node/gossipsub/gs_transport_connection.ml +++ b/src/lib_dal_node/gossipsub/gs_transport_connection.ml @@ -172,7 +172,7 @@ let disconnections_handler gs_worker peer_id = | None -> (* Something is off, we should log something probably. *) () | Some (peer, _) -> Worker.(Disconnection {peer} |> p2p_input gs_worker) -let try_connect ?expected_peer_id p2p_layer point = +let try_connect ?expected_peer_id p2p_layer ~trusted point = let open Lwt_syntax in (* We don't wait for the promise to resolve here, because if the advertised peer is not reachable or is not responding, we might block @@ -183,7 +183,7 @@ let try_connect ?expected_peer_id p2p_layer point = Lwt.dont_wait (fun () -> let* (_ : _ P2p.connection tzresult) = - P2p.connect ?expected_peer_id p2p_layer point + P2p.connect ?expected_peer_id ~trusted p2p_layer point in return_unit) (fun exn -> @@ -238,13 +238,18 @@ let gs_worker_p2p_output_handler gs_worker p2p_layer = P2p.find_connection_by_peer_id p2p_layer peer.peer_id |> Option.iter_s (P2p.disconnect ~reason:"disconnected by Gossipsub" p2p_layer) - | Connect {peer; origin = _} -> + | Connect {peer; origin} -> + let trusted = origin = Trusted in let Types.Peer. {maybe_reachable_point; peer_id; bootstrap = _; direct = _} = peer in - try_connect ~expected_peer_id:peer_id p2p_layer maybe_reachable_point - | Connect_point {point} -> try_connect p2p_layer point + try_connect + ~trusted + ~expected_peer_id:peer_id + p2p_layer + maybe_reachable_point + | Connect_point {point} -> try_connect p2p_layer point ~trusted:false | Forget _ -> return_unit | Kick {peer} -> P2p.pool p2p_layer -- GitLab From 9f317922e96cea925a62510c07ea8d57df55f999 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Tue, 10 Dec 2024 09:21:02 +0100 Subject: [PATCH 2/2] Tezt/DAL: fix flaky test --- tezt/tests/dal.ml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tezt/tests/dal.ml b/tezt/tests/dal.ml index ff2f4c71344a..132b59fdc82e 100644 --- a/tezt/tests/dal.ml +++ b/tezt/tests/dal.ml @@ -4226,11 +4226,14 @@ let observe_nodes_connection_via_bootstrap ?(extra_nodes_to_restart = []) client dal_node2 dal_node3 = let nodes = dal_node2 :: dal_node3 :: extra_nodes_to_restart in let* () = List.map Dal_node.terminate nodes |> Lwt.join in + let* dal_node2_identity = Dal_node.read_identity dal_node2 in + let* dal_node3_identity = Dal_node.read_identity dal_node3 in let check_conn_event_from_2_to_3 = Dal_common.Helpers.check_new_connection_event ~main_node:dal_node2 ~other_node:dal_node3 ~is_trusted:false + ~other_peer_id:dal_node3_identity () in let check_conn_event_from_3_to_2 = @@ -4238,6 +4241,7 @@ let observe_nodes_connection_via_bootstrap ?(extra_nodes_to_restart = []) client ~main_node:dal_node3 ~other_node:dal_node2 ~is_trusted:false + ~other_peer_id:dal_node2_identity () in let* () = List.map (Dal_node.run ~wait_ready:true) nodes |> Lwt.join in -- GitLab