[llvm-bugs] [Bug 50446] New: TestCases/Linux/use_tls_dynamic.cpp fails on CentOS
via llvm-bugs
llvm-bugs at lists.llvm.org
Sat May 22 11:46:04 PDT 2021
https://bugs.llvm.org/show_bug.cgi?id=50446
Bug ID: 50446
Summary: TestCases/Linux/use_tls_dynamic.cpp fails on CentOS
Product: compiler-rt
Version: 12.0
Hardware: PC
OS: Windows NT
Status: NEW
Severity: enhancement
Priority: P
Component: lsan
Assignee: unassignedbugs at nondot.org
Reporter: bryanpkc at gmail.com
CC: llvm-bugs at lists.llvm.org
When build LLVM 12 with GCC 9.3.0, and running "make check-lsan" on CentOS 7, I
see these failures:
Failed Tests (2):
LeakSanitizer-AddressSanitizer-x86_64 ::
TestCases/Linux/use_tls_dynamic.cpp
LeakSanitizer-Standalone-x86_64 :: TestCases/Linux/use_tls_dynamic.cpp
The failing step is this:
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s
It is expecting the sanitizer to detect a memory leak. If I run the command by
hand outside of llvm-lit, it does successfully report a memory leak:
$ env
LSAN_OPTIONS=:detect_leaks=1:"suppressions=:report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0:use_tls=0"
$PWD/build/projects/compiler-rt/test/lsan/X86_64LsanConfig/TestCases/Linux/Output/use_tls_dynamic.cpp.tmp
Test alloc: 0x61a000000600
=================================================================
==46854==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 1048576 byte(s) in 1 object(s) allocated from:
#0 0x40ad05
(/home/bryanpkc/llvm/build/projects/compiler-rt/test/lsan/X86_64LsanConfig/TestCases/Linux/Output/use_tls_dynamic.cpp.tmp+0x40ad05)
#1 0x7fa51ee25f67 (/lib64/ld-linux-x86-64.so.2+0x11f67)
#2 0x7fa51c7fe713
(/home/bryanpkc/llvm/build/projects/compiler-rt/test/lsan/X86_64LsanConfig/TestCases/Linux/Output/use_tls_dynamic.cpp.tmp-so.so+0x713)
#3 0x42f40b
(/home/bryanpkc/llvm/build/projects/compiler-rt/test/lsan/X86_64LsanConfig/TestCases/Linux/Output/use_tls_dynamic.cpp.tmp+0x42f40b)
#4 0x7fa51db4d3d4 (/lib64/libc.so.6+0x223d4)
Objects leaked above:
0x7fa51c6fe000 (1048576 bytes)
Indirect leak of 1337 byte(s) in 1 object(s) allocated from:
#0 0x40a5b0
(/home/bryanpkc/llvm/build/projects/compiler-rt/test/lsan/X86_64LsanConfig/TestCases/Linux/Output/use_tls_dynamic.cpp.tmp+0x40a5b0)
#1 0x42f3f7
(/home/bryanpkc/llvm/build/projects/compiler-rt/test/lsan/X86_64LsanConfig/TestCases/Linux/Output/use_tls_dynamic.cpp.tmp+0x42f3f7)
#2 0x7fa51db4d3d4 (/lib64/libc.so.6+0x223d4)
Objects leaked above:
0x61a000000600 (1337 bytes)
SUMMARY: LeakSanitizer: 1049913 byte(s) leaked in 2 allocation(s).
However, llvm-lit prepends ${LLVM_BINARY_DIR}/bin to the $PATH variable, and
this changes the behaviour of the test:
$ env PATH=$PWD/build/bin:$PATH
LSAN_OPTIONS=:detect_leaks=1:"suppressions=:report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0:use_tls=0"
$PWD/build/projects/compiler-rt/test/lsan/X86_64LsanConfig/TestCases/Linux/Output/use_tls_dynamic.cpp.tmp
Test alloc: 0x61a000000600
-----------------------------------------------------
Suppressions used:
count bytes template
1 1048576 *tls_get_addr*
-----------------------------------------------------
The test case itself does not use $PATH or invokes any subprocess, and it isn't
obvious how $PATH affect LSAN here.
The problem is not reproducible on Ubuntu 18.04.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210522/4c813b42/attachment-0001.html>
More information about the llvm-bugs
mailing list