diff --git a/tapeserver/castor/tape/tapeserver/daemon/DiskReadTask.cpp b/tapeserver/castor/tape/tapeserver/daemon/DiskReadTask.cpp index a4706d83bc2c415cd58a3e81a2a6403e8219a623..d75779b65238d0f2f735ef034b19788561581725 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/DiskReadTask.cpp +++ b/tapeserver/castor/tape/tapeserver/daemon/DiskReadTask.cpp @@ -39,7 +39,10 @@ DiskReadTask::DiskReadTask(DataConsumer & destination, size_t numberOfBlock,castor::server::AtomicFlag& errorFlag): m_nextTask(destination),m_archiveJob(archiveJob), m_numberOfBlock(numberOfBlock),m_errorFlag(errorFlag) -{} +{ + m_archiveJobCachedInfo.remotePath = m_archiveJob->remotePathAndStatus.path.getRaw(); + m_archiveJobCachedInfo.fileId = m_archiveJob->archiveFile.fileId; +} //------------------------------------------------------------------------------ // DiskReadTask::execute @@ -208,8 +211,8 @@ void DiskReadTask::logWithStat(int level,const std::string& msg,log::LogContext& m_stats.transferTime?1.0*m_stats.dataVolume/1000/1000/m_stats.transferTime:0) .add("openRWCloseToTransferTimeRatio", m_stats.transferTime?(m_stats.openingTime+m_stats.readWriteTime+m_stats.closingTime)/m_stats.transferTime:0.0) - .add("FILEID",m_archiveJob->archiveFile.fileId) - .add("path",m_archiveJob->remotePathAndStatus.path.getRaw()); + .add("FILEID",m_archiveJobCachedInfo.fileId) + .add("path",m_archiveJobCachedInfo.remotePath); lc.log(level,msg); } diff --git a/tapeserver/castor/tape/tapeserver/daemon/DiskReadTask.hpp b/tapeserver/castor/tape/tapeserver/daemon/DiskReadTask.hpp index c12b86a5e9ddddefce32b13b473df9da368d101a..a849bb629800a4db96c775f864911859f010c731 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/DiskReadTask.hpp +++ b/tapeserver/castor/tape/tapeserver/daemon/DiskReadTask.hpp @@ -97,6 +97,16 @@ private: */ cta::ArchiveJob *m_archiveJob; + /** + * Information about the archive job we will cache as it is needed + * after the archive job is going to be potentially deleted by the + * writer + */ + struct { + std::string remotePath; + uint64_t fileId; + } m_archiveJobCachedInfo; + /** * The number of memory block we will need to read the whole file */