From 932cb3c2975c0ff6ffd079a997ca08d663733450 Mon Sep 17 00:00:00 2001 From: Edward Oakes Date: Fri, 20 Dec 2019 22:04:25 -0700 Subject: [PATCH] check connected (#6565) --- src/ray/core_worker/core_worker.cc | 14 +++++++++----- src/ray/core_worker/core_worker.h | 3 +++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/ray/core_worker/core_worker.cc b/src/ray/core_worker/core_worker.cc index cd28a7335..e5c31e60d 100644 --- a/src/ray/core_worker/core_worker.cc +++ b/src/ray/core_worker/core_worker.cc @@ -156,6 +156,7 @@ CoreWorker::CoreWorker(const WorkerType worker_type, const Language language, WorkerID::FromBinary(worker_context_.GetWorkerID().Binary()), (worker_type_ == ray::WorkerType::WORKER), worker_context_.GetCurrentJobID(), language_, &local_raylet_id, core_worker_server_.GetPort())); + connected_ = true; // Set our own address. RAY_CHECK(!local_raylet_id.IsNil()); @@ -266,11 +267,14 @@ void CoreWorker::Shutdown() { void CoreWorker::Disconnect() { io_service_.stop(); - if (gcs_client_) { - gcs_client_->Disconnect(); - } - if (local_raylet_client_) { - RAY_IGNORE_EXPR(local_raylet_client_->Disconnect()); + if (connected_) { + connected_ = false; + if (gcs_client_) { + gcs_client_->Disconnect(); + } + if (local_raylet_client_) { + RAY_IGNORE_EXPR(local_raylet_client_->Disconnect()); + } } } diff --git a/src/ray/core_worker/core_worker.h b/src/ray/core_worker/core_worker.h index b6351d030..a9a47c534 100644 --- a/src/ray/core_worker/core_worker.h +++ b/src/ray/core_worker/core_worker.h @@ -560,6 +560,9 @@ class CoreWorker { /// Address of our RPC server. rpc::Address rpc_address_; + /// Whether or not this worker is connected to the raylet and GCS. + bool connected_ = false; + // Client to the GCS shared by core worker interfaces. std::shared_ptr gcs_client_;