@@ -590,7 +590,12 @@ o2::framework::ServiceSpec CommonServices::decongestionSpec()
590590 decongestion->nextTimeslice = std::max (decongestion->nextTimeslice , (int64_t )oldestPossibleOutput.timeslice .value );
591591 O2_SIGNPOST_EVENT_EMIT (data_processor_context, cid, " oldest_possible_timeslice" , " Next timeslice %" PRIi64, decongestion->nextTimeslice );
592592 if (oldNextTimeslice != decongestion->nextTimeslice ) {
593- O2_SIGNPOST_EVENT_EMIT_ERROR (data_processor_context, cid, " oldest_possible_timeslice" , " Some Lifetime::Timeframe data got dropped starting at %" PRIi64, oldNextTimeslice);
593+ auto & state = ctx.services ().get <DeviceState>();
594+ if (state.transitionHandling != TransitionHandlingState::NoTransition && DefaultsHelpers::onlineDeploymentMode ()) {
595+ O2_SIGNPOST_EVENT_EMIT_WARN (data_processor_context, cid, " oldest_possible_timeslice" , " Stop transition requested. Some Lifetime::Timeframe data got dropped starting at %" PRIi64, oldNextTimeslice);
596+ } else {
597+ O2_SIGNPOST_EVENT_EMIT_ERROR (data_processor_context, cid, " oldest_possible_timeslice" , " Some Lifetime::Timeframe data got dropped starting at %" PRIi64, oldNextTimeslice);
598+ }
594599 timesliceIndex.rescan ();
595600 }
596601 }
@@ -644,8 +649,9 @@ o2::framework::ServiceSpec CommonServices::decongestionSpec()
644649 oldestPossibleOutput.timeslice .value , decongestion.lastTimeslice );
645650 return ;
646651 }
647- auto &queue = services.get <AsyncQueue>();
648- auto & spec = services.get <DeviceSpec const >();
652+ auto & queue = services.get <AsyncQueue>();
653+ const auto & spec = services.get <DeviceSpec const >();
654+ const auto & state = services.get <DeviceState>();
649655 auto *device = services.get <RawDeviceService>().device ();
650656 // / We use the oldest possible timeslice to debounce, so that only the latest one
651657 // / at the end of one iteration is sent.
@@ -683,16 +689,20 @@ o2::framework::ServiceSpec CommonServices::decongestionSpec()
683689 TimesliceId{oldestPossibleTimeslice}, -1 );
684690 if (decongestion.orderedCompletionPolicyActive ) {
685691 AsyncQueueHelpers::post (
686- queue, decongestion.oldestPossibleTimesliceTask , [ref = services, oldestPossibleOutput, &decongestion, &proxy, &spec, device, ×liceIndex](size_t id) {
692+ queue, decongestion.oldestPossibleTimesliceTask , [ref = services, oldestPossibleOutput, &decongestion, &proxy, &spec, &state, device, ×liceIndex](size_t id) {
687693 O2_SIGNPOST_ID_GENERATE (cid, async_queue);
688694 int64_t oldNextTimeslice = decongestion.nextTimeslice ;
689695 decongestion.nextTimeslice = std::max (decongestion.nextTimeslice , (int64_t )oldestPossibleOutput.timeslice .value );
690696 if (oldNextTimeslice != decongestion.nextTimeslice ) {
691- O2_SIGNPOST_EVENT_EMIT_ERROR (async_queue, cid, " oldest_possible_timeslice" , " Some Lifetime::Timeframe data got dropped starting at %" PRIi64, oldNextTimeslice);
697+ if (state.transitionHandling != TransitionHandlingState::NoTransition && DefaultsHelpers::onlineDeploymentMode ()) {
698+ O2_SIGNPOST_EVENT_EMIT_WARN (async_queue, cid, " oldest_possible_timeslice" , " Stop transition requested. Some Lifetime::Timeframe data got dropped starting at %" PRIi64, oldNextTimeslice);
699+ } else {
700+ O2_SIGNPOST_EVENT_EMIT_ERROR (async_queue, cid, " oldest_possible_timeslice" , " Some Lifetime::Timeframe data got dropped starting at %" PRIi64, oldNextTimeslice);
701+ }
692702 timesliceIndex.rescan ();
693703 }
694- },
695- TimesliceId{oldestPossibleOutput.timeslice .value }, -1 );
704+ },
705+ TimesliceId{oldestPossibleOutput.timeslice .value }, -1 );
696706 } },
697707 .kind = ServiceKind::Serial};
698708}
0 commit comments