DUNE-DAQ / iomanager

Package providing a unified API
0 stars 0 forks source link

Candidate changes to provide a way for user code to tell if Senders are really ready to send data #66

Closed bieryAtFnal closed 10 months ago

bieryAtFnal commented 11 months ago

In recent running of automated integration tests, I noticed occasional complaints about timeouts sending HSIEvents from FakeHSIEventGenerators to TimingTriggerCandidateMakers.

I found that the underlying problem was that the HSIEvent NetworkSender instance was not quite fully ready to send messages.

In order to provide a way for the FakeHSIEventGenerator code to check whether the Sender instance is really ready, I've prototyped a new method that provides this information. These changes are the subject of this PR.

As an aside, I want to mention that I found the existing contents of the NetworkSenderModel constructor very confusing. It had a try/catch block surrounding a method call that doesn't throw an exception. To help make things more clear, I removed that try/catch block. With this change, I now correctly see the "Initial connection attempt failed" log message. Previously, I was not correctly seeing this message in the logs.

The changes in this PR are precursors to ones in a companion PR that I will file soon in the hsilibs repo.