From 1709061ae6dedbd095220e3760f132a861d8c588 Mon Sep 17 00:00:00 2001 From: Roman Gershman Date: Tue, 26 Nov 2024 10:02:15 +0200 Subject: [PATCH] chore: stop periodic task earlier during the shutdown process (#4187) Fixes #4151 Signed-off-by: Roman Gershman --- src/server/engine_shard.cc | 3 +-- src/server/rdb_save.cc | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/engine_shard.cc b/src/server/engine_shard.cc index 29c7957f2..a90e37838 100644 --- a/src/server/engine_shard.cc +++ b/src/server/engine_shard.cc @@ -403,11 +403,10 @@ void EngineShard::Shutdown() { queue2_.Shutdown(); DCHECK(!fiber_heartbeat_periodic_.IsJoinable()); DCHECK(!fiber_shard_handler_periodic_.IsJoinable()); - - ProactorBase::me()->RemoveOnIdleTask(defrag_task_); } void EngineShard::StopPeriodicFiber() { + ProactorBase::me()->RemoveOnIdleTask(defrag_task_); fiber_heartbeat_periodic_done_.Notify(); if (fiber_heartbeat_periodic_.IsJoinable()) { fiber_heartbeat_periodic_.Join(); diff --git a/src/server/rdb_save.cc b/src/server/rdb_save.cc index 940bace26..1f4612a2d 100644 --- a/src/server/rdb_save.cc +++ b/src/server/rdb_save.cc @@ -969,7 +969,8 @@ void SerializerBase::DumpObject(const CompactObj& obj, io::StringSink* out) { // 1. Save the value itself - without the key // 2. Save footer: this include the RDB version and the CRC value for the message auto type = RdbObjectType(obj); - DVLOG(1) << "We are going to dump object type: " << int(type); + DVLOG(2) << "We are going to dump object type: " << int(type); + std::error_code ec = serializer.WriteOpcode(type); CHECK(!ec); ec = serializer.SaveValue(obj);