Skip to content

Commit f1e1de0

Browse files
committed
DPL: Fix injectMissingData not always marking all inactive pipelines as present when exiting early due to allFound
1 parent f40f5c1 commit f1e1de0

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

Framework/Core/src/ExternalFairMQDeviceProxy.cxx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -279,10 +279,6 @@ void injectMissingData(fair::mq::Device& device, fair::mq::Parts& parts, std::ve
279279
LOG(error) << "unexpected nullptr found. Skipping message pair.";
280280
continue;
281281
}
282-
// Copy the DataProcessingHeader from the first message.
283-
if (dph == nullptr) {
284-
dph = o2::header::get<DataProcessingHeader*>(parts.At(msgidx)->GetData());
285-
}
286282
if (!dh) {
287283
LOG(error) << "data on input " << msgidx << " does not follow the O2 data model, DataHeader missing";
288284
if (msgidx > 0) {
@@ -296,6 +292,15 @@ void injectMissingData(fair::mq::Device& device, fair::mq::Parts& parts, std::ve
296292
doPrintSizes = 0;
297293
}
298294
}
295+
// Copy the DataProcessingHeader from the first message.
296+
if (dph == nullptr) {
297+
dph = o2::header::get<DataProcessingHeader*>(parts.At(msgidx)->GetData());
298+
for (size_t pi = 0; pi < present.size(); ++pi) {
299+
if (routes[pi].timeslice != (dph->startTime % routes[pi].maxTimeslices)) {
300+
present[pi] = true;
301+
}
302+
}
303+
}
299304
for (size_t pi = 0; pi < present.size(); ++pi) {
300305
if (present[pi] && !doPrintSizes) {
301306
continue;

0 commit comments

Comments
 (0)