diff --git a/ReleaseNotes.md b/ReleaseNotes.md index b7f615cd6b09bafca59ec6c1ee934991bcea6de0..289cf260d5cdd1cfbd26012f49baa18ee8018f9b 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -9,6 +9,10 @@ This release contains an improvement allowing to fetch the EOS free space via an - Upgraded EOS to 4.8.26-1 - cta/CTA#907 For backpressure, the EOS free space can be fetched by calling an external script +### Bug fixes + +- cta/CTA#917 Corrected the bug in the cta-admin showqueues command in the case ArchiveForUser and ArchiveForRepack exist for the same tapepool + # v3.1-8 ## Summary diff --git a/common/dataStructures/QueueAndMountSummary.cpp b/common/dataStructures/QueueAndMountSummary.cpp index 4b7c81cea533bc6baed0ffb0dda3543cd122ed39..03c1f660ca434304f0800b6ab0cf7f373a2a25ce 100644 --- a/common/dataStructures/QueueAndMountSummary.cpp +++ b/common/dataStructures/QueueAndMountSummary.cpp @@ -30,9 +30,9 @@ QueueAndMountSummary &QueueAndMountSummary::getOrCreateEntry(std::list<QueueAndM const common::dataStructures::VidToTapeMap &vid_to_tapeinfo) { for (auto & summary: summaryList) { - if (((mountType==MountType::ArchiveForUser || mountType==MountType::ArchiveForRepack) && summary.tapePool==tapePool) || - (mountType==MountType::Retrieve && summary.vid==vid)) + if((summary.tapePool == tapePool && summary.mountType == mountType) || (summary.vid == vid && mountType == MountType::Retrieve)) { return summary; + } } if (std::set<MountType>({MountType::ArchiveForUser, MountType::Retrieve, MountType::ArchiveForRepack}).count(mountType)) { summaryList.push_back(QueueAndMountSummary()); diff --git a/continuousintegration/orchestration/tests/repack_systemtest.sh b/continuousintegration/orchestration/tests/repack_systemtest.sh index 7832bbe9565b7d0cabf220e8deabca6c7773d8b8..995aa88bb6bc155a6de7e9b2d35064da3e452579 100755 --- a/continuousintegration/orchestration/tests/repack_systemtest.sh +++ b/continuousintegration/orchestration/tests/repack_systemtest.sh @@ -133,7 +133,7 @@ if [ ! -z $BACKPRESSURE_TEST ]; then echo "Backpressure test: setting too high free space requirements" # This should be idempotent as we will be called several times if [[ $( admin_cta --json ds ls | jq '.[] | select(.name=="repackBuffer") | .name') != '"repackBuffer"' ]]; then - admin_cta ds add -n repackBuffer -r "root://${EOSINSTANCE}/${REPACK_BUFFER_BASEDIR}" -u "eos:${EOSINSTANCE}:default" -i 5 -f 111222333444555 -s 60 -m toto + admin_cta ds add -n repackBuffer -r "root://${EOSINSTANCE}/${REPACK_BUFFER_BASEDIR}" -u "eos:${EOSINSTANCE}:default" -i 5 -f 111222333444555 -s 20 -m toto else echo "Disk system repackBuffer alread defined. Ensuring too high free space requirements." admin_cta ds ch -n repackBuffer -f 111222333444555 diff --git a/cta.spec.in b/cta.spec.in index 91ea875d5838e8b60bf7750323051871198e1f41..9bf0119ddf2f2152bdd0a1f5769d17b088b398c5 100644 --- a/cta.spec.in +++ b/cta.spec.in @@ -493,6 +493,7 @@ Currently contains a helper for the client-ar script, which should be installed * Wed Nov 04 2020 julien.leduc (at) cern.ch - 3.1-9 - Upstream EOS 4.8.26-1 - cta/CTA#907 For backpressure, the EOS free space can be fetched by calling an external script +- cta/CTA#917 Corrected the bug in the cta-admin showqueues command in the case ArchiveForUser and ArchiveForRepack exist for the same tapepool * Fri Oct 22 2020 julien.leduc (at) cern.ch - 3.1-8 - CTA software Recommended Access Order (RAO) implemented for LTO drives - cta-admin repack ls tabular output improvements diff --git a/scheduler/OStoreDB/OStoreDB.cpp b/scheduler/OStoreDB/OStoreDB.cpp index 3f7273a894bb889b2f96ef7309b8800dd10e4999..62faeeac3f4dc3f097cd001c3e5f7b2fca1b7752 100644 --- a/scheduler/OStoreDB/OStoreDB.cpp +++ b/scheduler/OStoreDB/OStoreDB.cpp @@ -249,7 +249,9 @@ void OStoreDB::fetchMountInfo(SchedulerDatabase::TapeMountDecisionInfo& tmdi, Ro .add("queueLockTime", queueLockTime) .add("queueFetchTime", queueFetchTime) .add("processingTime", processingTime); - logContext.log(log::INFO, "In OStoreDB::fetchMountInfo(): fetched an archive for user queue."); + if(queueLockTime > 1 || queueFetchTime > 1) { + logContext.log(log::WARNING, "In OStoreDB::fetchMountInfo(): fetched an archive for user queue and that lasted more than 1 second."); + } } // Walk the archive queues for REPACK for statistics for (auto & aqp: re.dumpArchiveQueues(JobQueueType::JobsToTransferForRepack)) { @@ -308,7 +310,9 @@ void OStoreDB::fetchMountInfo(SchedulerDatabase::TapeMountDecisionInfo& tmdi, Ro .add("queueLockTime", queueLockTime) .add("queueFetchTime", queueFetchTime) .add("processingTime", processingTime); - logContext.log(log::INFO, "In OStoreDB::fetchMountInfo(): fetched an archive for repack queue."); + if(queueLockTime > 1 || queueFetchTime > 1) { + logContext.log(log::WARNING, "In OStoreDB::fetchMountInfo(): fetched an archive for repack queue and that lasted more than 1 second."); + } } // Walk the retrieve queues for statistics for (auto & rqp: re.dumpRetrieveQueues(JobQueueType::JobsToTransferForUser)) {