From 21da4412029ecd1d32b684c21b5855db6ea6931a Mon Sep 17 00:00:00 2001 From: Lasse Tjernaes Wardenaer <lasse.tjernaes.wardenaer@cern.ch> Date: Wed, 8 Feb 2023 14:10:49 +0100 Subject: [PATCH] Resolve "castor::tape::tapeserver::daemon::Payload not being deallocated in cta-readtp" --- ReleaseNotes.md | 1 + tapeserver/readtp/ReadtpCmd.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 810f056b6c..c417c8538b 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -3,6 +3,7 @@ ## Summary ### Features - cta/CTA#250 - Trim SQL query length in catalogue DB failure reason +- cta/CTA#301 - Switch from new to unique pointer in CtaReadTp to fix memory leak ### Bug Fixes ### Continuous Integration diff --git a/tapeserver/readtp/ReadtpCmd.cpp b/tapeserver/readtp/ReadtpCmd.cpp index 3e44487102..2c713b8c1e 100644 --- a/tapeserver/readtp/ReadtpCmd.cpp +++ b/tapeserver/readtp/ReadtpCmd.cpp @@ -487,7 +487,7 @@ void ReadtpCmd::readTapeFile( const size_t buffer_size = 1 * 1024 * 1024 * 1024; // 1Gb size_t read_data_size = 0; // allocate one gigabyte buffer - auto payload = new castor::tape::tapeserver::daemon::Payload(buffer_size); + auto payload = std::make_unique<castor::tape::tapeserver::daemon::Payload>(buffer_size); try { while (1) { if (payload->remainingFreeSpace() <= reader->getBlockSize()) { -- GitLab