From dad465a2bfcd355e8a04afbfa1fd84364051a79e Mon Sep 17 00:00:00 2001 From: Philipp Moritz Date: Mon, 23 Apr 2018 23:51:25 -0700 Subject: [PATCH] [XRay] Add consistency check for protocol between node_manager and local_scheduler_client (#1944) --- src/ray/raylet/node_manager.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/ray/raylet/node_manager.cc b/src/ray/raylet/node_manager.cc index 14105e057..c346d82d5 100644 --- a/src/ray/raylet/node_manager.cc +++ b/src/ray/raylet/node_manager.cc @@ -1,10 +1,34 @@ #include "ray/raylet/node_manager.h" #include "common_protocol.h" +#include "local_scheduler/format/local_scheduler_generated.h" #include "ray/raylet/format/node_manager_generated.h" namespace { +#define RAY_CHECK_ENUM(x, y) \ + static_assert(static_cast(x) == static_cast(y), "protocol mismatch") + +// Check consistency between client and server protocol. +RAY_CHECK_ENUM(protocol::MessageType_SubmitTask, MessageType_SubmitTask); +RAY_CHECK_ENUM(protocol::MessageType_TaskDone, MessageType_TaskDone); +RAY_CHECK_ENUM(protocol::MessageType_EventLogMessage, MessageType_EventLogMessage); +RAY_CHECK_ENUM(protocol::MessageType_RegisterClientRequest, + MessageType_RegisterClientRequest); +RAY_CHECK_ENUM(protocol::MessageType_RegisterClientReply, + MessageType_RegisterClientReply); +RAY_CHECK_ENUM(protocol::MessageType_DisconnectClient, MessageType_DisconnectClient); +RAY_CHECK_ENUM(protocol::MessageType_GetTask, MessageType_GetTask); +RAY_CHECK_ENUM(protocol::MessageType_ExecuteTask, MessageType_ExecuteTask); +RAY_CHECK_ENUM(protocol::MessageType_ReconstructObject, MessageType_ReconstructObject); +RAY_CHECK_ENUM(protocol::MessageType_NotifyUnblocked, MessageType_NotifyUnblocked); +RAY_CHECK_ENUM(protocol::MessageType_PutObject, MessageType_PutObject); +RAY_CHECK_ENUM(protocol::MessageType_GetActorFrontierRequest, + MessageType_GetActorFrontierRequest); +RAY_CHECK_ENUM(protocol::MessageType_GetActorFrontierReply, + MessageType_GetActorFrontierReply); +RAY_CHECK_ENUM(protocol::MessageType_SetActorFrontier, MessageType_SetActorFrontier); + /// A helper function to determine whether a given actor task has already been executed /// according to the given actor registry. Returns true if the task is a duplicate. bool CheckDuplicateActorTask(