I have a simple script that sets UBSAN_OPTIONS, TSAN_OPTIONS, etc. all at once to specify log_path for each sanitizer.
On Linux/gcc everything is as expected but when I compile with TSAN using AppleClang on MacOSX it appears that TSAN takes the log_path from UBSAN_OPTIONS instead of TSAN_OPTIONS if both are set. If only TSAN_OPTIONS are set then everything works as expected. This leads to ThreadSanitizer output land in TestName.ubsan.log.[PID].