diff --git a/Framework/Core/src/runDataProcessing.cxx b/Framework/Core/src/runDataProcessing.cxx index 66fc2c7b2c3df..4a6e2e6accfb2 100644 --- a/Framework/Core/src/runDataProcessing.cxx +++ b/Framework/Core/src/runDataProcessing.cxx @@ -2933,8 +2933,9 @@ int doMain(int argc, char** argv, o2::framework::WorkflowSpec const& workflow, workflowHashA += hash_fn(dp.name); } - for (auto& dp : workflow) { + for (auto& dp : physicalWorkflow) { rankIndex.insert(std::make_pair(dp.name, workflowHashA)); + dp.metadata.emplace(dp.metadata.begin(), std::string{"executable"}, currentWorkflow.executable); } std::vector dataProcessorInfos; @@ -2959,7 +2960,7 @@ int doMain(int argc, char** argv, o2::framework::WorkflowSpec const& workflow, for (auto& dp : importedWorkflow) { auto found = std::find_if(physicalWorkflow.begin(), physicalWorkflow.end(), [&name = dp.name](DataProcessorSpec const& spec) { return spec.name == name; }); - if (found == physicalWorkflow.end()) { + if (found == physicalWorkflow.end() || (*dp.metadata.begin()).value != currentWorkflow.executable) { physicalWorkflow.push_back(dp); rankIndex.insert(std::make_pair(dp.name, workflowHashB)); }