Skip to content

Commit 331f2cc

Browse files
authored
fix topology adjust corner case (#15053)
1 parent f10bf6e commit 331f2cc

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

Framework/Core/src/ArrowSupport.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,6 @@ o2::framework::ServiceSpec ArrowSupport::arrowBackendSpec()
581581
auto spawner = std::ranges::find_if(workflow, [](DataProcessorSpec const& spec) { return spec.name.starts_with("internal-dpl-aod-spawner"); });
582582
auto analysisCCDB = std::ranges::find_if(workflow, [](DataProcessorSpec const& spec) { return spec.name.starts_with("internal-dpl-aod-ccdb"); });
583583
auto builder = std::ranges::find_if(workflow, [](DataProcessorSpec const& spec) { return spec.name.starts_with("internal-dpl-aod-index-builder"); });
584-
auto reader = std::ranges::find_if(workflow, [](DataProcessorSpec const& spec) { return spec.name.starts_with("internal-dpl-aod-reader"); });
585584
auto writer = std::ranges::find_if(workflow, [](DataProcessorSpec const& spec) { return spec.name.starts_with("internal-dpl-aod-writer"); });
586585
auto& dec = ctx.services().get<DanglingEdgesContext>();
587586
dec.requestedAODs.clear();
@@ -659,6 +658,9 @@ o2::framework::ServiceSpec ArrowSupport::arrowBackendSpec()
659658
workflow.erase(writer);
660659
}
661660

661+
// removing writer would invalidate the reader iterator if it was created before
662+
auto reader = std::ranges::find_if(workflow, [](DataProcessorSpec const& spec) { return spec.name.starts_with("internal-dpl-aod-reader"); });
663+
662664
if (reader != workflow.end()) {
663665
// If reader and/or builder were adjusted, remove unneeded outputs
664666
// update currently requested AODs

run/o2sim_kine_publisher.cxx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "Framework/AnalysisTask.h"
1414
#include "Monitoring/Monitoring.h"
1515
#include "Framework/CommonDataProcessors.h"
16-
#include "SimulationDataFormat/MCTrack.h"
1716
#include "Steer/MCKinematicsReader.h"
1817

1918
#include "Framework/runDataProcessing.h"
@@ -64,6 +63,6 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
6463
spec.outputs.emplace_back("MC", "MCHEADER", 0, Lifetime::Timeframe);
6564
spec.outputs.emplace_back("MC", "MCTRACKS", 0, Lifetime::Timeframe);
6665
spec.requiredServices.push_back(o2::framework::ArrowSupport::arrowBackendSpec());
67-
spec.algorithm = CommonDataProcessors::wrapWithRateLimiting(spec.algorithm);
66+
spec.algorithm = CommonDataProcessors::wrapWithTimesliceConsumption(spec.algorithm);
6867
return {spec};
6968
}

0 commit comments

Comments
 (0)