Valgrinding Htcondor

Running the tests under Valgrind is a tricky.

  1. Start with setting up to run tests following the instructions at TestingCondorOnUnix
  2. cd src/condor_tests
  3. mkdir valgrind-results
  4. OUTDIR=`pwd`/valgrind-results
  5. Start up a copy of HTCondor for those tests that rely on a running instance. Use a command line similar to:
    exec valgrind --verbose --trace-children=yes --child-silent-after-fork=yes \
      --trace-children-skip=/usr/bin/*,/bin/* --time-stamp=yes \
      --log-file=$OUTDIR/log-%p \  --xml=yes --xml-file=$OUTDIR/xml-%p \
      condor_master
    
  6. Run the tests under Valgrind using run-tests. This example tries to run every test, you might want to run a subset.
    ../condor_scripts/run-tests *.run
  7. Wait many hours. Output is written to $OUTDIR.
  8. ../condor_scripts/process-logs $OUTDIR
  9. Wait 10 minutes or so.

HTML reports are now in ./out. There will be one file per executable with the name being the basename. These are less useful. There are numbered files with each number indicating a unique stack trace (only HTCondor layers are considered for that comparison). Those are more useful.