From f8a916fef54d26f647cf99d18b795f627da7c93a Mon Sep 17 00:00:00 2001 From: Michael Davis <michael.davis@cern.ch> Date: Wed, 11 Mar 2020 14:46:29 +0100 Subject: [PATCH] [frontend] Sends ObjectStore Id along with failed requests --- common/dataStructures/ArchiveJob.hpp | 1 + common/dataStructures/RetrieveJob.hpp | 1 + scheduler/OStoreDB/QueueItor.cpp | 2 ++ xroot_plugins/XrdCtaFailedRequestLs.hpp | 4 ++-- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/dataStructures/ArchiveJob.hpp b/common/dataStructures/ArchiveJob.hpp index 5073d6c975..637769507f 100644 --- a/common/dataStructures/ArchiveJob.hpp +++ b/common/dataStructures/ArchiveJob.hpp @@ -45,6 +45,7 @@ struct ArchiveJob { std::string instanceName; uint32_t copyNumber; uint64_t archiveFileID; + std::string objectId; //!< Objectstore address, provided when reporting a failed job std::list<std::string> failurelogs; }; // struct ArchiveJob diff --git a/common/dataStructures/RetrieveJob.hpp b/common/dataStructures/RetrieveJob.hpp index c1958bc656..b0c37de28b 100644 --- a/common/dataStructures/RetrieveJob.hpp +++ b/common/dataStructures/RetrieveJob.hpp @@ -44,6 +44,7 @@ struct RetrieveJob { RetrieveRequest request; uint64_t fileSize; std::map<std::string,std::pair<uint32_t,TapeFile>> tapeCopies; + std::string objectId; //!< Objectstore address, provided when reporting a failed job std::list<std::string> failurelogs; }; // struct RetrieveJob diff --git a/scheduler/OStoreDB/QueueItor.cpp b/scheduler/OStoreDB/QueueItor.cpp index 457c93abcc..2173d35d79 100644 --- a/scheduler/OStoreDB/QueueItor.cpp +++ b/scheduler/OStoreDB/QueueItor.cpp @@ -118,6 +118,7 @@ getQueueJobs(const jobQueue_t &jobQueueChunk) job.request.srcURL = osar.first.getSrcURL(); job.request.archiveReportURL = osar.first.getArchiveReportURL(); job.request.storageClass = osar.first.getArchiveFile().storageClass; + job.objectId = osar.first.getAddressIfSet(); job.failurelogs = osar.first.getFailures(); m_jobCache.push_back(job); @@ -209,6 +210,7 @@ getQueueJobs(const jobQueue_t &jobQueueChunk) job.request = osrr.first.getSchedulerRequest(); job.fileSize = osrr.first.getArchiveFile().fileSize; job.tapeCopies[tf.vid] = std::make_pair(tf.copyNb, tf); + job.objectId = osrr.first.getAddressIfSet(); job.failurelogs = osrr.first.getFailures(); m_jobCache.push_back(job); diff --git a/xroot_plugins/XrdCtaFailedRequestLs.hpp b/xroot_plugins/XrdCtaFailedRequestLs.hpp index 376cd776a9..c3e844068e 100644 --- a/xroot_plugins/XrdCtaFailedRequestLs.hpp +++ b/xroot_plugins/XrdCtaFailedRequestLs.hpp @@ -137,7 +137,7 @@ pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const common::dataStructure auto &tapepool = m_archiveQueueItorPtr->qid(); Data record; - record.mutable_frls_item()->set_object_id("PLACEHOLDER"); + record.mutable_frls_item()->set_object_id(item.objectId); record.mutable_frls_item()->set_request_type(admin::RequestType::ARCHIVE_REQUEST); record.mutable_frls_item()->set_tapepool(tapepool); record.mutable_frls_item()->set_copy_nb(item.copyNumber); @@ -166,7 +166,7 @@ pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const common::dataStructure Data record; - record.mutable_frls_item()->set_object_id("PLACEHOLDER"); + record.mutable_frls_item()->set_object_id(item.objectId); record.mutable_frls_item()->set_request_type(admin::RequestType::RETRIEVE_REQUEST); record.mutable_frls_item()->set_copy_nb(item.tapeCopies.at(vid).first); record.mutable_frls_item()->mutable_requester()->set_username(item.request.requester.name); -- GitLab