From 3ba461666b41848eb643ae8b92dfa33a6345ca7b Mon Sep 17 00:00:00 2001 From: LiuYoung00 Date: Thu, 2 Nov 2023 06:39:28 +0000 Subject: [PATCH] [to #53004315]piece cache add destructor when close_all --- src/sql/session/ob_sql_session_info.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/sql/session/ob_sql_session_info.cpp b/src/sql/session/ob_sql_session_info.cpp index e6cca2f7a2..037840d93a 100644 --- a/src/sql/session/ob_sql_session_info.cpp +++ b/src/sql/session/ob_sql_session_info.cpp @@ -591,6 +591,7 @@ void ObSQLSessionInfo::destroy(bool skip_sys_var) ->close_all(*this))) { LOG_WARN("failed to close all piece", K(ret)); } + static_cast(piece_cache_)->~ObPieceCache(); get_session_allocator().free(piece_cache_); piece_cache_ = NULL; } @@ -2809,6 +2810,7 @@ void* ObSQLSessionInfo::get_piece_cache(bool need_init) { piece_cache_ = new (buf) observer::ObPieceCache(); if (OB_SUCCESS != (static_cast(piece_cache_))->init( get_effective_tenant_id())) { + static_cast(piece_cache_)->~ObPieceCache(); get_session_allocator().free(piece_cache_); piece_cache_ = NULL; LOG_WARN_RET(OB_ERR_UNEXPECTED, "init piece cache fail");