Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-57824

ASan: Suppression file is ignored for tests registered via gtest_discover_tests()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 7.6.0
    • 7.6.0
    • build
    • Untriaged
    • 0
    • Unknown

    Description

      As identified during compiler upgrade testing by Blair Watt, unit tests which are registered with Make via gtest_discover_tests do not have the necessary env vars set to pass configuration to Address / Leak Sanitizer - in this specific case they are needed to specify the "lsan.suppression" leak suppression file.

      Example output of running one such suite (ep-engine_ep_unit_tests) - note no env vars are set:

      ctest -R ep-engine_ep_unit_tests.RocksFullOrValue/DurabilityWarmupTest -V
      ...
      264: Test command: /Users/dave/repos/couchbase/server/source/build-asan-ubsan-arm64/kv_engine/ep-engine_ep_unit_tests "--gtest_filter=RocksFullOrValue/DurabilityWarmupTest.*"
      264: Working Directory: /Users/dave/repos/couchbase/server/source/build-asan-ubsan-arm64/kv_engine
      264: Test timeout computed to be: 300
      264: Note: Google Test filter = RocksFullOrValue/DurabilityWarmupTest.*
      264: [==========] Running 74 tests from 1 test suite.
      

      Compare this to a test registered directly using add_test() where the necessary env vars are passed:

      $ ctest -R ep_testsuite.value_eviction.rocksdb -V
      ...
      317: Test command: /opt/homebrew/bin/timeout "--preserve-status" "--signal=ABRT" "1200s" "/Users/dave/repos/couchbase/server/source/build-asan-ubsan-arm64/kv_engine/ep_testsuite" "-E" "ep" "-v" "-e" "dbname=./ep_testsuite.value_eviction.rocksdb;backend=rocksdb"
      317: Working Directory: /Users/dave/repos/couchbase/server/source/build-asan-ubsan-arm64/kv_engine/engines/ep/tests
      317: Environment variables: 
      317:  ASAN_SYMBOLIZER_PATH=
      317:  LSAN_OPTIONS=suppressions=/Users/dave/repos/couchbase/server/source/tlm/lsan.suppressions
      317:  UBSAN_OPTIONS=suppressions=/Users/dave/repos/couchbase/server/source/tlm/ubsan.suppressions print_stacktrace=1 
      317: Test timeout computed to be: 2400
      317: Running [0/156]: expiry pager settings...(2347 ms) OK
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            drigby Dave Rigby (Inactive)
            drigby Dave Rigby (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              PagerDuty