Skip to content

EventSelectorAthenaPool: Don't access event store in EndProcessing.

The event selectors keep track of the sourceIDs for events being processed, using the BeginProcessing and EndProcessing incidents. When handling each incident, it queries the event store to find the sourceID.

EndProcessing is fired by the event loop manager after all event processing is completed. In particular, in MT jobs, this incident is fired from the event loop thread after the scheduler has reported that an event has completed.

However, we would like to give the event loop manager the possibility of clearing the event store in the threaded part of event processing. If that happens, the event store will already have been cleared by the time EndProcessing is fired, so retrieving the sourceID will fail.

Change the event selectors so that they save the sourceID when handling the BeginProcessing incident (using SlotSpecificObj) and use that at EndProcessing rather than trying to retrieve it again from the event store.

Merge request reports