Building, Running and Testing HTCondor with the Address Sanitizer (asan) under Linux

I've only run this with a non-rootly personal condor

ALSO NOTE: asan does not work correctly with the ancient compilers and library packages included with Centos 7! It is known to work on Fedora 32 and on recent Ubuntu.

  1. on your build container/server, install asan libraries if not already there; e.g. on Fedora, do
    yum install -y libasan

  2. cd to a checked out source directory
    cd condor

  3. mkdir a new binary directory and cd there
    mkdir asan
    cd asan

  4. configure with -DWITH_ADDRESS_SANITIZER:bool=true, and any other needed cmake options, and make
    rm ../CMakeCache.txt
    ../configure_uw -DWITH_ADDRESS_SANITIZER:bool=true ..
    make install

  5. make a directory for asan to write files to, and start the condor master with ASAN_OPTIONS pointing to this directory:
    mkdir /tmp/asan
    ASAN_OPTIONS="log_path=/tmp/asan/condor" condor_master

  6. Run tests, submit jobs, and condor_off -master. One file per process will be in /tmp/asan.

  7. If brave, run the whole test suite under asan:
    ASAN_OPTIONS="log_path=/tmp/asan/condor" ctest