From f681b22ff6e287360ee481e67576087eb005a051 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Fri, 13 May 2022 14:16:05 -0500 Subject: [PATCH] Lock more methods of JobReport Production jobs were seeing scrambled job reports caused by pileup file entries. --- FWCore/MessageLogger/src/JobReport.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/FWCore/MessageLogger/src/JobReport.cc b/FWCore/MessageLogger/src/JobReport.cc index 742372996240d..f3c416c9cca3a 100644 --- a/FWCore/MessageLogger/src/JobReport.cc +++ b/FWCore/MessageLogger/src/JobReport.cc @@ -376,13 +376,11 @@ namespace edm { void JobReport::inputFileClosed(InputType inputType, JobReport::Token fileToken) { JobReport::InputFile& f = impl_->getInputFileForToken(inputType, fileToken); f.fileHasBeenClosed = true; + std::lock_guard lock(write_mutex); if (inputType == InputType::Primary) { impl_->writeInputFile(f); } else { - { - std::lock_guard lock(write_mutex); - impl_->writeInputFile(f); - } + impl_->writeInputFile(f); } } @@ -434,6 +432,7 @@ namespace edm { void JobReport::outputFileClosed(JobReport::Token fileToken) { JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken); f.fileHasBeenClosed = true; + std::lock_guard lock(write_mutex); impl_->writeOutputFile(f); } @@ -541,6 +540,7 @@ namespace edm { void JobReport::reportMemoryInfo(std::vector const& memoryData) { if (impl_->ost_) { + std::lock_guard lock(write_mutex); std::ostream& msg = *(impl_->ost_); msg << "\n"; @@ -555,6 +555,7 @@ namespace edm { void JobReport::reportMessageInfo(std::map const& messageData) { if (impl_->ost_) { + std::lock_guard lock(write_mutex); std::ostream& msg = *(impl_->ost_); msg << "\n"; typedef std::map::const_iterator const_iterator; @@ -572,6 +573,7 @@ namespace edm { if (not impl_->printedReadBranches_.compare_exchange_strong(expected, true)) return; if (impl_->ost_) { + std::lock_guard lock(write_mutex); std::ostream& ost = *(impl_->ost_); ost << "\n"; tinyxml2::XMLDocument doc;