Skip to content

Use local variable for postcoh ifo gaps

In MDC we've run into a crash due to, we think, an async issue with snr series.

In new_wrapped_snr_series_list, we make a list with size based on buffer_postcohtable->ifos, but setting fields based on buffer_postcohtable->snr_series_list[ifo_id]. They Should be in agreement, but postcoh uses PostcohState to track gaps and snr series.

If a buffer takes more than a second to process, and a second buffer begins processing with a different set of IFO gaps, it could overwrite the variables used by the first. When the first goes to write its buffer, it would be recording the wrong set of snr series.

That's the theory, though we don't have a reliable test yet. Regardless, I think this should be a reliable change & follow better patterns.

There's more mutable stuff in PostcohState that should move, but I'll do that as a separate MR.

Testing

I've done the usual short injection tests, nothing strange there. There are a few tiny 1s gaps in the segments files, which are all identical before & after too.

Edited by Timothy Davies

Merge request reports