diff --git a/continuousintegration/orchestration/tests/repack_systemtest.sh b/continuousintegration/orchestration/tests/repack_systemtest.sh index 6092a5a6364c0d5f8b66e2f0c7b021b80e20422f..a7df0ffccb9264d77ac2a145aa0c9b7280554dbc 100755 --- a/continuousintegration/orchestration/tests/repack_systemtest.sh +++ b/continuousintegration/orchestration/tests/repack_systemtest.sh @@ -160,6 +160,14 @@ while test 0 = `admin_cta --json repack ls --vid ${VID_TO_REPACK} | jq -r '.[0] if test ${SECONDS_PASSED} == ${WAIT_FOR_REPACK_TIMEOUT}; then echo "Timed out after ${WAIT_FOR_REPACK_TIMEOUT} seconds waiting for tape ${VID_TO_REPACK} to be repacked" + echo "Result of Repack ls" + admin_cta repack ls --vid ${VID_TO_REPACK} + destinationInfos=`admin_cta --json repack ls --vid ${VID_TO_REPACK} | jq -r ". [0] | .destinationInfos"` + if [[ `echo $destinationInfos | jq length` != 0 ]] + then + header="DestinationVID\tNbFiles\ttotalSize\n" + { echo -e $header; echo $destinationInfos | jq -r ".[] | [(.vid),(.files),(.bytes)] | @tsv"; } | column -t + fi exec /root/repack_generate_report.sh -v ${VID_TO_REPACK} -r ${REPORT_DIRECTORY} ${ADD_COPIES_ONLY} & wait $! exit 1 @@ -167,6 +175,13 @@ while test 0 = `admin_cta --json repack ls --vid ${VID_TO_REPACK} | jq -r '.[0] done if test 1 = `admin_cta --json repack ls --vid ${VID_TO_REPACK} | jq -r '[.[0] | select (.status == "Failed")] | length'`; then echo "Repack failed for tape ${VID_TO_REPACK}." + admin_cta repack ls --vid ${VID_TO_REPACK} + destinationInfos=`admin_cta --json repack ls --vid ${VID_TO_REPACK} | jq -r ". [0] | .destinationInfos"` + if [[ `echo $destinationInfos | jq length` != 0 ]] + then + header="DestinationVID\tNbFiles\ttotalSize\n" + { echo -e $header; echo $destinationInfos | jq -r ".[] | [(.vid),(.files),(.bytes)] | @tsv"; } | column -t + fi exec /root/repack_generate_report.sh -v ${VID_TO_REPACK} -r ${REPORT_DIRECTORY} ${ADD_COPIES_ONLY} & wait $! exit 1 diff --git a/objectstore/AlgorithmsTest.cpp b/objectstore/AlgorithmsTest.cpp index 9505536bc402b3cd90e99c26cf2f1c5182eff82e..bf0ca183a1baae7318b30e11085b1135b7fab1e5 100644 --- a/objectstore/AlgorithmsTest.cpp +++ b/objectstore/AlgorithmsTest.cpp @@ -76,7 +76,7 @@ void fillRetrieveRequests( rqc.mountPolicy.retrievePriority = 1; requestPtrs.emplace_back(new cta::objectstore::RetrieveRequest(rrAddr, be)); requests.emplace_back(ContainerAlgorithms<RetrieveQueue,RetrieveQueueToTransfer>::InsertedElement{ - requestPtrs.back().get(), 1, i, 667, mp, serializers::RetrieveJobStatus::RJS_ToTransfer, cta::nullopt, cta::nullopt + requestPtrs.back().get(), 1, i, 667, mp, cta::nullopt, cta::nullopt }); auto &rr = *requests.back().retrieveRequest; rr.initialize(); diff --git a/objectstore/RetrieveQueueAlgorithms.hpp b/objectstore/RetrieveQueueAlgorithms.hpp index 2146f17783d857a81e989b6c2731bcafb973c8fe..a97f189167ce224831daebc0febbae910b0b1d3b 100644 --- a/objectstore/RetrieveQueueAlgorithms.hpp +++ b/objectstore/RetrieveQueueAlgorithms.hpp @@ -43,7 +43,6 @@ struct ContainerTraits<RetrieveQueue,C> uint64_t fSeq; uint64_t filesize; cta::common::dataStructures::MountPolicy policy; - serializers::RetrieveJobStatus status; optional<RetrieveActivityDescription> activityDescription; optional<std::string> diskSystemName; typedef std::list<InsertedElement> list; diff --git a/objectstore/Sorter.cpp b/objectstore/Sorter.cpp index 06d7ad729624252540f13cc52628b8490cf45305..73ba279b437263b31b021cad6a615b1e52dc0c80 100644 --- a/objectstore/Sorter.cpp +++ b/objectstore/Sorter.cpp @@ -162,7 +162,7 @@ void Sorter::executeRetrieveAlgorithm(const std::string vid, std::string& queueA Sorter::RetrieveJob job = std::get<0>(jobToAdd->jobToQueue); succeededJobs[job.jobDump.copyNb] = jobToAdd; previousOwner = job.previousOwner->getAgentAddress(); - jobsToAdd.push_back({job.retrieveRequest.get(),job.jobDump.copyNb,job.fSeq,job.fileSize,job.mountPolicy,job.jobDump.status,job.activityDescription,job.diskSystemName}); + jobsToAdd.push_back({job.retrieveRequest.get(),job.jobDump.copyNb,job.fSeq,job.fileSize,job.mountPolicy,job.activityDescription,job.diskSystemName}); } try{ algo.referenceAndSwitchOwnershipIfNecessary(vid,previousOwner,queueAddress,jobsToAdd,lc); diff --git a/scheduler/OStoreDB/OStoreDB.cpp b/scheduler/OStoreDB/OStoreDB.cpp index fdc2e51473daf31cb1fba38b7ec21ceb4ea05f15..51323a4784c660cf0dc3894c3370edfd891f81ea 100644 --- a/scheduler/OStoreDB/OStoreDB.cpp +++ b/scheduler/OStoreDB/OStoreDB.cpp @@ -1118,7 +1118,7 @@ void OStoreDB::setRetrieveJobBatchReportedToUser(std::list<cta::SchedulerDatabas ); insertedElements.emplace_back(CaRQF::InsertedElement{ &j.job->m_retrieveRequest, tf_it->copyNb, tf_it->fSeq, j.job->archiveFile.fileSize, - common::dataStructures::MountPolicy(), serializers::RetrieveJobStatus::RJS_Failed, + common::dataStructures::MountPolicy(), j.job->m_activityDescription, j.job->m_diskSystemName }); } @@ -4083,8 +4083,7 @@ void OStoreDB::RetrieveMount::flushAsyncSuccessReports(std::list<cta::SchedulerD for (auto & req: repackRequestQueue.second) { insertedRequests.push_back(RQTRTRFSAlgo::InsertedElement{&req->m_retrieveRequest, req->selectedCopyNb, req->archiveFile.tapeFiles.at(req->selectedCopyNb).fSeq, req->archiveFile.fileSize, - mountPolicy, - serializers::RetrieveJobStatus::RJS_ToReportToRepackForSuccess, req->m_activityDescription, req->m_diskSystemName}); + mountPolicy, req->m_activityDescription, req->m_diskSystemName}); requestToJobMap[&req->m_retrieveRequest] = req; } RQTRTRFSAlgo rQTRTRFSAlgo(m_oStoreDB.m_objectStore, *m_oStoreDB.m_agentReference); @@ -4869,13 +4868,15 @@ void OStoreDB::RepackArchiveReportBatch::report(log::LogContext& lc){ jou.jobOwnerUpdater->wait(); log::ScopedParamContainer params(lc); params.add("fileId", jou.subrequestInfo.archiveFile.archiveFileID) - .add("subrequestAddress", jou.subrequestInfo.subrequest->getAddressIfSet()); + .add("subrequestAddress", jou.subrequestInfo.subrequest->getAddressIfSet()) + .add("copyNb", jou.subrequestInfo.archivedCopyNb); lc.log(log::INFO, "In OStoreDB::RepackArchiveReportBatch::report(): async updated job."); } catch(const cta::objectstore::Backend::NoSuchObject &ex){ // Log the error log::ScopedParamContainer params(lc); params.add("fileId", jou.subrequestInfo.archiveFile.archiveFileID) .add("subrequestAddress", jou.subrequestInfo.subrequest->getAddressIfSet()) + .add("copyNb", jou.subrequestInfo.archivedCopyNb) .add("exceptionMsg", ex.getMessageValue()); lc.log(log::WARNING, "In OStoreDB::RepackArchiveReportBatch::report(): async job update failed. Object does not exist in the objectstore."); } catch (cta::exception::Exception & ex) { @@ -4883,6 +4884,7 @@ void OStoreDB::RepackArchiveReportBatch::report(log::LogContext& lc){ log::ScopedParamContainer params(lc); params.add("fileId", jou.subrequestInfo.archiveFile.archiveFileID) .add("subrequestAddress", jou.subrequestInfo.subrequest->getAddressIfSet()) + .add("copyNb", jou.subrequestInfo.archivedCopyNb) .add("exceptionMsg", ex.getMessageValue()); lc.log(log::ERR, "In OStoreDB::RepackArchiveReportBatch::report(): async job update failed."); } @@ -5039,7 +5041,7 @@ void OStoreDB::RetrieveJob::failTransfer(const std::string &failureReason, log:: CaRqtr::InsertedElement::list insertedElements; insertedElements.push_back(CaRqtr::InsertedElement{ &m_retrieveRequest, tf.copyNb, tf.fSeq, af.fileSize, rfqc.mountPolicy, - serializers::RetrieveJobStatus::RJS_Failed, m_activityDescription, m_diskSystemName + m_activityDescription, m_diskSystemName }); m_retrieveRequest.commit(); rel.release(); @@ -5106,7 +5108,7 @@ void OStoreDB::RetrieveJob::failTransfer(const std::string &failureReason, log:: CaRqtr::InsertedElement::list insertedElements; insertedElements.push_back(CaRqtr::InsertedElement{ - &m_retrieveRequest, tf.copyNb, tf.fSeq, af.fileSize, rfqc.mountPolicy, serializers::RetrieveJobStatus::RJS_ToTransfer, + &m_retrieveRequest, tf.copyNb, tf.fSeq, af.fileSize, rfqc.mountPolicy, m_activityDescription, m_diskSystemName }); @@ -5170,8 +5172,7 @@ void OStoreDB::RetrieveJob::failReport(const std::string &failureReason, log::Lo CaRqtr caRqtr(m_oStoreDB.m_objectStore, *m_oStoreDB.m_agentReference); CaRqtr::InsertedElement::list insertedElements; insertedElements.push_back(CaRqtr::InsertedElement{ - &m_retrieveRequest, tf.copyNb, tf.fSeq, af.fileSize, rfqc.mountPolicy, - serializers::RetrieveJobStatus::RJS_ToReportToUserForFailure, m_activityDescription, m_diskSystemName + &m_retrieveRequest, tf.copyNb, tf.fSeq, af.fileSize, rfqc.mountPolicy, m_activityDescription, m_diskSystemName }); caRqtr.referenceAndSwitchOwnership(tf.vid, insertedElements, lc); log::ScopedParamContainer params(lc); @@ -5189,8 +5190,7 @@ void OStoreDB::RetrieveJob::failReport(const std::string &failureReason, log::Lo CaRqtr caRqtr(m_oStoreDB.m_objectStore, *m_oStoreDB.m_agentReference); CaRqtr::InsertedElement::list insertedElements; insertedElements.push_back(CaRqtr::InsertedElement{ - &m_retrieveRequest, tf.copyNb, tf.fSeq, af.fileSize, rfqc.mountPolicy, - serializers::RetrieveJobStatus::RJS_Failed, m_activityDescription, m_diskSystemName + &m_retrieveRequest, tf.copyNb, tf.fSeq, af.fileSize, rfqc.mountPolicy, m_activityDescription, m_diskSystemName }); caRqtr.referenceAndSwitchOwnership(tf.vid, insertedElements, lc); log::ScopedParamContainer params(lc);