From 5f152369bcea595488b441b512b36de5cf3f2171 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse <10544+ktf@users.noreply.github.com> Date: Wed, 9 Aug 2023 15:09:32 +0200 Subject: [PATCH] DPL: avoid ODC waiting indefinitely for the driver When deploying in embedded mode, ODC will wait for the driver to transition through the state machine stetes. However right now the driver itself is not a FairMQ device, nor has any special plugin, so Control will wait for a transition which will never happen and eventually kill the run. This marks the task as expendable, telling ODC to ignore the state changes for it, hopefully working around the problem. Being expendable is also probably a good idea, because we do not want that a bug in the GUI crashes the whole workflow. --- Framework/Core/src/DDSConfigHelpers.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Framework/Core/src/DDSConfigHelpers.cxx b/Framework/Core/src/DDSConfigHelpers.cxx index 2556f958f4bd1..272a5cf36ea03 100644 --- a/Framework/Core/src/DDSConfigHelpers.cxx +++ b/Framework/Core/src/DDSConfigHelpers.cxx @@ -135,7 +135,7 @@ void DDSConfigHelpers::dumpDeviceSpec2DDS(std::ostream& out, } out << R"()" "\n"; - if (hasExpendableTask) { + if (hasExpendableTask || driverMode == DriverMode::EMBEDDED) { out << R"()" "\n"; } @@ -180,6 +180,9 @@ void DDSConfigHelpers::dumpDeviceSpec2DDS(std::ostream& out, << R"()"; out << fmt::format("cat ${{DDS_LOCATION}}/dpl_json{}.asset | o2-dpl-run --driver-mode embedded", workflowSuffix); out << R"()" + << "\n" + << " \n" + << "\n" << "\n"; out << ""; }