From b852f0a884bb1cbb2af351a3f0e99cb923b35f1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20El=20Siba=C3=AFe?= Date: Tue, 11 Jul 2023 15:46:06 +0200 Subject: [PATCH] Tezt: fix flaky external validator test - actually wait for the external validator to die before trying to bake, otherwise the node thinks its dead when it is in fact dying (closing fd probably) --- tezt/tests/external_validation.ml | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/tezt/tests/external_validation.ml b/tezt/tests/external_validation.ml index 0fe58a2d201b..11292d161e59 100644 --- a/tezt/tests/external_validation.ml +++ b/tezt/tests/external_validation.ml @@ -74,19 +74,23 @@ let kill_process ~pid ~signal = signal ; Unix.kill pid (signal_to_int signal) +let rec wait_for_killing pid = + let alive = + try + Unix.kill pid 0 ; + true + with _ -> false + in + if alive then + let* () = Lwt_unix.sleep 0.2 in + wait_for_killing pid + else Lwt.return_unit + let test_kill = Protocol.register_test ~__FILE__ ~title:"external validator kill" - ~tags: - [ - "node"; - "external"; - "validator"; - "kill"; - (* FIXME: https://gitlab.com/tezos/tezos/-/issues/5467 *) - Tag.flaky; - ] + ~tags:["node"; "external"; "validator"; "kill"] @@ fun protocol -> let node = Node.create [] in let wait_for_validator_pid = wait_for_external_validator_pid node in @@ -102,6 +106,7 @@ let test_kill = let wait_for_new_validator_pid = wait_for_external_validator_pid node in let wait_for_failure = wait_for_external_validator_failure node in let () = kill_process ~pid:validator_pid ~signal in + let* () = wait_for_killing validator_pid in Log.info "External validator was killed by %a" pp_signal signal ; Log.info "Baking a block with a dead validator" ; let* () = Client.bake_for_and_wait client in -- GitLab