From a29a07b48b3fb9a8f9730a6da51455c9c71a55b5 Mon Sep 17 00:00:00 2001 From: Pierrick Couderc Date: Mon, 24 Feb 2025 10:39:25 +0100 Subject: [PATCH] Revert "Merge tezos/tezos!16850: Octez/P2P: backport MR !16677" This reverts commit 42c655bdfc1e21821fe56415e82cb3962d89d56a, reversing changes made to c6dd5d11451a116125dfa6d8b55495f31231e7f2. --- src/lib_p2p/p2p_connect_handler.ml | 40 +++++++++--------------------- src/lib_p2p/p2p_events.ml | 9 ------- 2 files changed, 12 insertions(+), 37 deletions(-) diff --git a/src/lib_p2p/p2p_connect_handler.ml b/src/lib_p2p/p2p_connect_handler.ml index 0fe95ec5315a..390f2311ec51 100644 --- a/src/lib_p2p/p2p_connect_handler.ml +++ b/src/lib_p2p/p2p_connect_handler.ml @@ -236,7 +236,7 @@ let create_connection t p2p_conn id_point point_info peer_info return conn let is_acceptable t connection_point_info peer_info incoming version = - let open Lwt_result_syntax in + let open Result_syntax in (* Private mode only accept trusted *) let unexpected = t.config.private_mode @@ -247,9 +247,9 @@ let is_acceptable t connection_point_info peer_info incoming version = connection_point_info)) && not (t.dependencies.peer_state_info_trusted peer_info) in - if unexpected then - let*! () = Events.(emit peer_rejected) () in - tzfail P2p_errors.Private_mode + if unexpected then ( + Events.(emit__dont_wait__use_with_care peer_rejected) () ; + tzfail P2p_errors.Private_mode) else (* checking if point is acceptable *) let* version = @@ -258,26 +258,9 @@ let is_acceptable t connection_point_info peer_info incoming version = | Some connection_point_info -> ( match P2p_point_state.get connection_point_info with | Accepted _ | Running _ -> - Lwt.return P2p_rejection.(rejecting Already_connected) - | Requested {cancel} when incoming -> - (* Prioritise incoming connections. *) - let*! exns_opt = - Lwt.catch - (fun () -> - Lwt.bind (Lwt_canceler.cancel cancel) (fun result -> - match result with - | Error exns -> Lwt.return_some exns - | Ok () -> Lwt.return_none)) - (fun exn -> Lwt.return_some [exn]) - in - let*! () = - Option.iter_s - (fun exns -> - List.map Error_monad.error_of_exn exns - |> Events.(emit unexpected_cancellation_error)) - exns_opt - in - return version + P2p_rejection.(rejecting Already_connected) + | Requested _ when incoming -> + P2p_rejection.(rejecting Already_connected) | Requested _ | Disconnected -> return version) in (* Point is acceptable, checking if peer is. *) @@ -286,7 +269,7 @@ let is_acceptable t connection_point_info peer_info incoming version = (* TODO: https://gitlab.com/tezos/tezos/-/issues/4679 in some circumstances cancel and accept... *) | Running _ -> - Lwt.return P2p_rejection.(rejecting Already_connected) + P2p_rejection.(rejecting Already_connected) (* All right, welcome ! *) | Disconnected -> return version @@ -445,8 +428,9 @@ let raw_authenticate t ?point_info canceler scheduled_conn point = let peer_info = P2p_pool.register_peer t.pool info.peer_id in (* [acceptable] is either Ok with a network version, or a Rejecting error with a motive *) - let*! acceptable = - let*? version = + let acceptable = + let open Result_syntax in + let* version = select ~chain_name:t.message_config.chain_name ~distributed_db_versions:t.message_config.distributed_db_versions @@ -460,7 +444,7 @@ let raw_authenticate t ?point_info canceler scheduled_conn point = t.config.max_connections + Random.int 2 > P2p_pool.active_connections t.pool then return_unit - else Lwt.return P2p_rejection.(rejecting Too_many_connections) + else P2p_rejection.(rejecting Too_many_connections) in (* we have a slot, checking if point and peer are acceptable *) is_acceptable t connection_point_info peer_info incoming version diff --git a/src/lib_p2p/p2p_events.ml b/src/lib_p2p/p2p_events.ml index 47842d3fa989..cca6bf5777c8 100644 --- a/src/lib_p2p/p2p_events.ml +++ b/src/lib_p2p/p2p_events.ml @@ -244,15 +244,6 @@ module P2p_connect_handler = struct ~pp2:pp_print_top_error_of_trace ("errors", Error_monad.trace_encoding) - let unexpected_cancellation_error = - declare_1 - ~section - ~name:"unexpected_cancellation_error" - ~msg:"unexpected cancellation error: {errors}" - ~level:Error - ~pp1:pp_print_top_error_of_trace - ("errors", Error_monad.trace_encoding) - let connect_status = declare_2 ~section -- GitLab