Feature #22379
Make requests that have InvalidTimestamp only cause issues if applied to Window mode
0%
Description
Right now, if SharedMemoryEventManager notices that if the first Fragment it receives for an event has a timestamp of InvalidTimestamp, it will not generate a request for that event.
It would be better to generate the request anyway, but if any of the BoardReaders are in a request mode which requires a timestamp (i.e. Window mode), then they should raise an error if they receive a request with an invalid timestamp.
History
#1 Updated by Eric Flumerfelt over 1 year ago
- Assignee set to Eric Flumerfelt
- Status changed from New to Work in progress
- Tracker changed from Idea to Feature
I've started to work on this on artdaq:feature/22379_CFG_InvalidTimestampInRequest. I have also made a change necessary for testing it on artdaq-demo:feature/22379_ToySimulator_TestInvalidTimestamp
#2 Updated by Eric Flumerfelt over 1 year ago
- Status changed from Work in progress to Resolved
Running request_based_dataflow_example with starting_timestamp: -1
in component01.fcl, I see the new error message from component03, and each event is released incomplete missing one Fragment (component02 is in Single pull mode and returns a Fragment despite the invalid timestamp).
#3 Updated by Kurt Biery over 1 year ago
Hi Eric,
Please add some background information to this Issue so that we remember the discussion that prompted it.
Thanks,
Kurt
#4 Updated by Eric Flumerfelt over 1 year ago
This issue came about because during SBND testing, the system would not run, and it took them some time to determine why. Their push-mode BR was making and sending Fragments, but they were never seeing requests coming from their EventBuilder. This can be a confusing situation, as there are several things which can cause requests to not get through, such as firewall settings. They were eventually able to pinpoint the issue (the push-mode BR was not putting timestamps in the Fragments, and the EventBuilder was refusing to generate requests as a consequence).
The motivation for this change is to allow invalid timestamps in requests in cases where the timestamp is irrelevant (Ignore, Single and Buffer request modes), and to provide a clear indication of the problem when it does matter (Window mode).