Skip to content

Address segfaults in itacac when checkerboarding + misc

Patrick Godwin requested to merge fix-itacac_checkerboard into master

Main item this PR tackles is addressing #82 (closed), these segfaults and other issues cropping up in the online analysis from itacac.

When I set GStreamer in debug mode (GST_DEBUG=3):

0:00:29.416929942 2304570      0x122ad80 ERROR             lal_itacac gstlal_itacac.c:406:gstlal_itacac_pad_set_property:<gstlalitacac0:sink_0> vector length (669) does not match number of templates (335)
...
0:00:33.378427198 2304570      0x122ad80 ERROR             lal_itacac gstlal_itacac.c:406:gstlal_itacac_pad_set_property:<gstlalitacac6:sink_2> vector length (200) does not match number of templates (100)

Looking at where this error gets raised, it comes from setting the sigmasq property in the itacac element. It's off by a factor of two(-ish) because of the checkerboarding scheme which didn't take into account adjusting sigmasq. Unsure why this wasn't an issue before (maybe it was?) but also the various correlation properties stored within the SVD banks now correctly get adjusted when the checkerboarding is done.

Two other things encountered when trying to resolve this problem:

  • Fix issue in gstlal_inspiral_svd_checkerboard with output files when out_path didn't have a backslash. This now uses os.path.join to better handle this case.
  • Add in the bankcorrelation_matrix property in itacac when being invoked from gstlal_inspiral. Somehow this got dropped during the stream API changes so this adds this back in.

Closes #82 (closed).

Edited by Patrick Godwin

Merge request reports