From 655673d3e16314e1aa13232b70702c5c8dccbb03 Mon Sep 17 00:00:00 2001 From: David Rohr Date: Mon, 16 Oct 2023 14:22:24 +0200 Subject: [PATCH] Revert "DPL: If in OnlineMode, input proxies should only send EoS if they receive it" This reverts commit ed52430476f2bdb566ae5738f62efefb4323df32. --- Framework/Core/src/ExternalFairMQDeviceProxy.cxx | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/Framework/Core/src/ExternalFairMQDeviceProxy.cxx b/Framework/Core/src/ExternalFairMQDeviceProxy.cxx index d675deee43a4b..d1a45a95c6d98 100644 --- a/Framework/Core/src/ExternalFairMQDeviceProxy.cxx +++ b/Framework/Core/src/ExternalFairMQDeviceProxy.cxx @@ -29,8 +29,6 @@ #include "Framework/TimingInfo.h" #include "Framework/DeviceState.h" #include "Framework/Monitoring.h" -#include "Framework/DefaultsHelpers.h" -#include "Framework/DataTakingContext.h" #include "Headers/DataHeader.h" #include "Headers/Stack.h" #include "DecongestionService.h" @@ -54,10 +52,6 @@ namespace o2::framework { -// We do not allow to send EoS in online runs, until we receive (which is checked below) them upstream (to prevent premature shutdown of calibration) -static bool gAllowEoSdefault = !(DefaultsHelpers::deploymentMode() == DeploymentMode::OnlineDDS || DefaultsHelpers::deploymentMode() == DeploymentMode::OnlineECS); -static bool gAllowEoS = gAllowEoSdefault; - using DataHeader = o2::header::DataHeader; std::string formatExternalChannelConfiguration(InputChannelSpec const& spec) @@ -797,7 +791,6 @@ DataProcessorSpec specifyExternalFairMQDeviceProxy(char const* name, if (newRun) { std::fill(numberOfEoS.begin(), numberOfEoS.end(), 0); std::fill(eosPeersCount.begin(), eosPeersCount.end(), 0); - gAllowEoS = gAllowEoSdefault; } numberOfEoS[ci] += nEos; if (numberOfEoS[ci]) { @@ -828,8 +821,7 @@ DataProcessorSpec specifyExternalFairMQDeviceProxy(char const* name, } if (everyEoS) { - LOG(info) << "Received " << numberOfEoS[ci] << " end-of-stream from " << eosPeersCount[ci] << " peers, forwarding end-of-stream (shouldstop " << (int)shouldstop << ", nEos " << nEos << ", newRun " << (int)newRun << ")"; - gAllowEoS = true; + LOG(info) << "Received (on channel " << ci << ") " << numberOfEoS[ci] << " end-of-stream from " << eosPeersCount[ci] << " peers, forwarding end-of-stream (shouldstop " << (int)shouldstop << ", nEos " << nEos << ", newRun " << (int)newRun << ")"; // Mark all input channels as closed for (auto& info : deviceState->inputChannelInfos) { info.state = InputChannelState::Completed; @@ -957,9 +949,6 @@ DataProcessorSpec specifyFairMQDeviceOutputProxy(char const* name, // DPL implements an internal end of stream signal, which is propagated through // all downstream channels if a source is dry, make it available to other external // devices via a message of type {DPL/EOS/0} - if (!gAllowEoS) { - return; - } for (auto& channelInfo : device->GetChannels()) { auto& channelName = channelInfo.first; if (channelName != outputChannelName) {