Skip to content

CxxUtils: Add a preload to change the bad_array_new_length to an immediate abort.

Scott Snyder requested to merge ssnyder/athena:excabort.CxxUtils-20240710 into 24.0

The C++ library tends to report errors by raising exceptions. This can however be annoying, since there is then generally no information as to where the exception happened. While we do have the exctrace code as a partial workaround for this, this requires code changes at the point where exceptions are caught, and it adds overhead to all thrown exceptions.

Here we try a different workaround. Some exceptions never really make any sense to catch, so we can just turn them into unconditional aborts. If we preload this in athena, then we can get stack tracebacks when these occur.

For now, do this for bad_array_new_length, as this has been observed in some irreproducible crashes. See ATLASRECTS-8008.

Merge request reports