diff --git a/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPacker.cpp b/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPacker.cpp index eff8fe45d42645b1b32bf185c2ac7b46efe5722c..b798c239c803f687f63e6e3ca34196e958f4774e 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPacker.cpp +++ b/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPacker.cpp @@ -137,7 +137,7 @@ void MigrationReportPacker::reportTestGoingToEnd(cta::log::LogContext & lc){ void MigrationReportPacker::synchronousReportEndWithErrors(const std::string msg, int errorCode, cta::log::LogContext & lc){ cta::log::ScopedParamContainer params(lc); params.add("type", "ReportEndofSessionWithErrors"); - lc.log(cta::log::DEBUG, "In MigrationReportPacker::synchronousReportEndWithErrors(), reporting asynchronously."); + lc.log(cta::log::DEBUG, "In MigrationReportPacker::synchronousReportEndWithErrors(), reporting asynchronously session complete."); m_continue=false; m_archiveMount->complete(); if(m_errorHappened) { @@ -176,7 +176,8 @@ void MigrationReportPacker::ReportSuccessful::execute(MigrationReportPacker& rep //------------------------------------------------------------------------------ void MigrationReportPacker::reportDriveStatus(cta::common::dataStructures::DriveStatus status, cta::log::LogContext & lc) { cta::log::ScopedParamContainer params(lc); - params.add("type", "ReportDriveStatus"); + params.add("type", "ReportDriveStatus") + .add("Status", cta::common::dataStructures::toString(status)); lc.log(cta::log::DEBUG, "In MigrationReportPacker::reportDriveStatus(), pushing a report."); cta::threading::MutexLocker ml(m_producterProtection); m_fifo.push(new ReportDriveStatus(status)); @@ -186,6 +187,9 @@ void MigrationReportPacker::reportDriveStatus(cta::common::dataStructures::Drive //ReportDriveStatus::execute //------------------------------------------------------------------------------ void MigrationReportPacker::ReportDriveStatus::execute(MigrationReportPacker& parent){ + cta::log::ScopedParamContainer params(parent.m_lc); + params.add("status", cta::common::dataStructures::toString(m_status)); + parent.m_lc.log(cta::log::DEBUG, "In MigrationReportPacker::ReportDriveStatus::execute(): reporting drive status."); parent.m_archiveMount->setDriveStatus(m_status); } @@ -266,6 +270,7 @@ void MigrationReportPacker::ReportTapeFull::execute(MigrationReportPacker& repor //------------------------------------------------------------------------------ void MigrationReportPacker::ReportEndofSession::execute(MigrationReportPacker& reportPacker){ reportPacker.m_continue=false; + reportPacker.m_lc.log(cta::log::DEBUG, "In MigrationReportPacker::ReportEndofSession::execute(): reporting session complete."); reportPacker.m_archiveMount->complete(); if(!reportPacker.m_errorHappened){ cta::log::ScopedParamContainer sp(reportPacker.m_lc); @@ -298,6 +303,7 @@ void MigrationReportPacker::ReportEndofSession::execute(MigrationReportPacker& r //------------------------------------------------------------------------------ void MigrationReportPacker::ReportEndofSessionWithErrors::execute(MigrationReportPacker& reportPacker){ reportPacker.m_continue=false; + reportPacker.m_lc.log(cta::log::DEBUG, "In MigrationReportPacker::ReportEndofSessionWithErrors::execute(): reporting session complete."); reportPacker.m_archiveMount->complete(); if(reportPacker.m_errorHappened) { cta::log::ScopedParamContainer sp(reportPacker.m_lc); diff --git a/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPacker.hpp b/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPacker.hpp index 66ae7de1ed025e85da6ac80136addb30516254f0..dd014536c7a2e4ff5e068f3294ef558c2311164c 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPacker.hpp +++ b/tapeserver/castor/tape/tapeserver/daemon/MigrationReportPacker.hpp @@ -140,7 +140,9 @@ private: public: ReportTestGoingToEnd() {} virtual void execute(MigrationReportPacker& reportPacker) override { - reportPacker.m_continue=false;reportPacker.m_archiveMount->complete(); + reportPacker.m_continue=false; + reportPacker.m_lc.log(cta::log::DEBUG, "In MigrationReportPacker::ReportTestGoingToEnd::execute(): Reporting session complete."); + reportPacker.m_archiveMount->complete(); } }; diff --git a/tapeserver/castor/tape/tapeserver/daemon/RecallReportPacker.cpp b/tapeserver/castor/tape/tapeserver/daemon/RecallReportPacker.cpp index 21a8df7e9e375e2773a9527e5c98c93bbff6a45c..fc19a2aa011b926ab80125735cd5d3b63a7f4422 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/RecallReportPacker.cpp +++ b/tapeserver/castor/tape/tapeserver/daemon/RecallReportPacker.cpp @@ -27,6 +27,7 @@ #include <signal.h> #include <iostream> +#include <cxxabi.h> namespace{ struct failedReportRecallResult : public cta::exception::Exception{ @@ -221,7 +222,14 @@ void RecallReportPacker::WorkerThread::run(){ std::unique_ptr<Report> rep(m_parent.m_fifo.pop()); { cta::log::ScopedParamContainer spc(m_parent.m_lc); - spc.add("ReportType", debugType=typeid(*rep).name()); + int demangleStatus; + char * demangledReportType = abi::__cxa_demangle(typeid(*rep.get()).name(), nullptr, nullptr, &demangleStatus); + if (!demangleStatus) { + spc.add("typeId", demangledReportType); + } else { + spc.add("typeId", typeid(*rep.get()).name()); + } + free(demangledReportType); if (rep->goingToEnd()) spc.add("goingToEnd", "true"); m_parent.m_lc.log(cta::log::DEBUG, "Popping report"); diff --git a/tapeserver/castor/tape/tapeserver/daemon/TapeWriteSingleThread.cpp b/tapeserver/castor/tape/tapeserver/daemon/TapeWriteSingleThread.cpp index 2985569d91247c94f316be0ff7764920d2d1479c..515d2c67eac8a01e52ee52c7649fadc21d2ae413 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/TapeWriteSingleThread.cpp +++ b/tapeserver/castor/tape/tapeserver/daemon/TapeWriteSingleThread.cpp @@ -397,8 +397,6 @@ void castor::tape::tapeserver::daemon::TapeWriteSingleThread::run() { //we flush without asking tapeFlush("No more data to write on tape, unconditional flushing to the client",bytes,files,timer); m_stats.flushTime += timer.secs(cta::utils::Timer::resetCounter); - //end of session + log - m_reportPacker.reportEndOfSession(m_logContext); cta::log::LogContext::ScopedParam sp0(m_logContext, cta::log::Param("tapeThreadDuration", totalTimer.secs())); m_logContext.log(cta::log::DEBUG, "writing data to tape has finished"); break; @@ -432,6 +430,8 @@ void castor::tape::tapeserver::daemon::TapeWriteSingleThread::run() { logWithStats(cta::log::INFO, "Tape thread complete",params); // Report one last time the stats, after unloading/unmounting. m_watchdog.updateStats(m_stats); + //end of session + log + m_reportPacker.reportEndOfSession(m_logContext); } //end of try catch(const cta::exception::Exception& e){ //we end there because write session could not be opened