test/unit: Add verbose opt to valgrind and unset DEBUGINFOD_*

It looks like fedora intentionally sets $DEBUGINFOD_URLS inside the
environment as per the contents of /etc/debuginfod/. When set,
valgrind uses this URL list to fetch extra debuginfo from the target
servers. This is an unwanted behavior, since depending on the net
state it may block the tests leading to job timeouts under CI.

To mitigate, unset all DEBUGINFOD_* vars while running valgrind. Also,
enable verbose output to make sure we are aware what valgrind is
actually doing under the hood (e.g. info about fetching debuginfo
could not be seen without it).

Fixes issue #2767

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: If7c3bf341bd78c1cb9a68c5f86379fd7d3682f4e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15774
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Michal Berger 2022-12-05 14:21:37 +01:00 committed by Konrad Sztyber
parent d82abf6638
commit 1f4a8945d1
2 changed files with 4 additions and 1 deletions

View File

@ -251,6 +251,9 @@ export AR_TOOL=$rootdir/scripts/ar-xnvme-fixer
# pass our valgrind desire on to unittest.sh
if [ $SPDK_RUN_VALGRIND -eq 0 ]; then
export valgrind=''
else
# unset all DEBUGINFOD_* vars that may affect our valgrind instance
unset -v "${!DEBUGINFOD_@}"
fi
if [ "$(uname -s)" = "Linux" ]; then

View File

@ -152,7 +152,7 @@ fi
# the env variable to override the default shown below.
if [ -z ${valgrind+x} ]; then
if grep -q '#undef SPDK_CONFIG_ASAN' $rootdir/include/spdk/config.h && hash valgrind; then
valgrind='valgrind --leak-check=full --error-exitcode=2'
valgrind='valgrind --leak-check=full --error-exitcode=2 --verbose'
else
valgrind=''
fi