From 818afbe25b79a6700ca5bf12f4d450210e4ba173 Mon Sep 17 00:00:00 2001 From: xuyongfei Date: Thu, 10 Dec 2020 11:17:55 +0800 Subject: [PATCH] update mindspore --- mindspore_serving/ccsrc/worker/worker.cc | 10 +++++++++- mindspore_serving/ccsrc/worker/worker.h | 3 +++ third_party/mindspore | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/mindspore_serving/ccsrc/worker/worker.cc b/mindspore_serving/ccsrc/worker/worker.cc index 9580147..761fb61 100644 --- a/mindspore_serving/ccsrc/worker/worker.cc +++ b/mindspore_serving/ccsrc/worker/worker.cc @@ -75,7 +75,7 @@ Status Worker::RegisterWorker() { } Status Worker::StartVersionController() { - version_controller_.StartPollModelPeriodic(); + // first disable auto updated return SUCCESS; } @@ -110,6 +110,13 @@ Status Worker::RemoveWorker(const ServableWorkerContext &work) { } Status Worker::Run(const proto::PredictRequest &request, proto::PredictReply *reply) { + std::shared_lock lock(worker_shared_lock_); + if (servable_stoppedd_) { + return INFER_STATUS_LOG_ERROR(FAILED) << "Run worker for inference failed, worker has been stopped"; + } + if (!servable_started_) { + return INFER_STATUS_LOG_ERROR(FAILED) << "Run worker for inference failed, worker has not been started"; + } MSI_EXCEPTION_IF_NULL(reply); std::vector inputs; RequestSpec request_spec; @@ -347,6 +354,7 @@ void Worker::StopServable(bool notify_master) { } void Worker::Clear() { + std::unique_lock lock(worker_shared_lock_); if (clear_flag_.test_and_set()) { return; } diff --git a/mindspore_serving/ccsrc/worker/worker.h b/mindspore_serving/ccsrc/worker/worker.h index d30ad4f..5f80ba4 100644 --- a/mindspore_serving/ccsrc/worker/worker.h +++ b/mindspore_serving/ccsrc/worker/worker.h @@ -22,6 +22,7 @@ #include #include #include +#include #include "worker/work_executor.h" #include "common/serving_common.h" #include "proto/ms_service.pb.h" @@ -108,6 +109,8 @@ class MS_API Worker { std::atomic_flag clear_flag_ = ATOMIC_FLAG_INIT; std::shared_ptr notify_master_ = nullptr; + std::shared_mutex worker_shared_lock_; + Status LoadServableConfig(const LoadServableSpec &servable_spec, const std::string &version_strategy, std::vector *real_version_number); void GetVersions(const LoadServableSpec &servable_spec, std::vector *real_versions); diff --git a/third_party/mindspore b/third_party/mindspore index 2403618..defb644 160000 --- a/third_party/mindspore +++ b/third_party/mindspore @@ -1 +1 @@ -Subproject commit 2403618aaa00d731f10e907ff12388abc3f1c751 +Subproject commit defb644c72edcd161e6011ef6d5dd92a51dbb802