Closed marcelo-alvarez closed 4 years ago
Thanks for documenting this. I agree that adding fedisableexcept
in specex_desi_main.cc
just before the return sounds like the right solution. As a double check, please confirm that the temporary per-bundle files that are being merged do not have NaNs in them.
When merging per-bundle fits files in
desi_compute_psf_mpi
on a single node a crash occurs at the linein
specex.py
due to a floating point exception:Removing
feenableexcept (FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW)
fromspecex_desi_main.cc
prevents the crash from occurring, but also alters the intended behaviour of the code.The proposed solution is adding the line:
before
in
specex_desi_main.cc
. This allows floating point exceptions to halt execution, as originally intended, while not causing the crash during python execution ofspecex.py
.Given that the floating point exception occurs during a routine and otherwise successful operation in python, the cause of the crash is probably not worth investigating further at this point. If @sbailey and @julienguy agree, we can make the change above and close this issue.