It seems like a good idea that we run thread and address sanitizers in our CI to uncover issues which would otherwise be found in production deployments and/or users running these sanitizers manually during testing.
We should compile all of Nav2 in our CI to use these with options to stop on failures, leaks, etc so our CI fails in cases that this occurs with the logs. Then, run Nav2's system tests to capture these metrics in particular and save the failure logs in the artifacts for later debugging.
It may be nice to have the option to run the Nav2 System Tests as-is without this to check the behavior working and a separate parallel job to run with the sanitizers enabled (TBD) as they serve slightly different purposes and we may be able to build more sanitizer-specific tests over time or non-sanitizer based system testing.
It seems like a good idea that we run thread and address sanitizers in our CI to uncover issues which would otherwise be found in production deployments and/or users running these sanitizers manually during testing.
We should compile all of Nav2 in our CI to use these with options to stop on failures, leaks, etc so our CI fails in cases that this occurs with the logs. Then, run Nav2's system tests to capture these metrics in particular and save the failure logs in the artifacts for later debugging.
It may be nice to have the option to run the Nav2 System Tests as-is without this to check the behavior working and a separate parallel job to run with the sanitizers enabled (TBD) as they serve slightly different purposes and we may be able to build more sanitizer-specific tests over time or non-sanitizer based system testing.