intel / llvm

Intel staging area for llvm.org contribution. Home for Intel LLVM-based projects.
Other
1.22k stars 730 forks source link

AddressSanitizer/invalid-argument/out-of-bounds.cpp and AddressSanitizer/invalid-argument/released-pointer.cpp fail on DG2 #15449

Open steffenlarsen opened 2 hours ago

steffenlarsen commented 2 hours ago

Describe the bug

After enabling address sanitizer tests on DG2 in https://github.com/intel/llvm/pull/14891, the AddressSanitizer/invalid-argument/out-of-bounds.cpp and AddressSanitizer/invalid-argument/released-pointer.cpp tests fail on those devices.

See https://github.com/intel/llvm/actions/runs/10944839386/job/30388112619.

Additional context

Output:

******************** TEST 'SYCL :: AddressSanitizer/invalid-argument/released-pointer.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
.../toolchain/bin//clang++  -Werror  -fsycl -fsycl-targets=spir64  .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/released-pointer.cpp -Xarch_device -fsanitize=address -O2 -g -o .../build-e2e/AddressSanitizer/invalid-argument/Output/released-pointer.cpp.tmp
# executed command: .../toolchain/bin//clang++ -Werror -fsycl -fsycl-targets=spir64 .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/released-pointer.cpp -Xarch_device -fsanitize=address -O2 -g -o .../build-e2e/AddressSanitizer/invalid-argument/Output/released-pointer.cpp.tmp
# note: command had no output on stdout or stderr
# RUN: at line 3
env SYCL_PREFER_UR=1 UR_LAYER_ASAN_OPTIONS="quarantine_size_mb:1;detect_kernel_arguments:1" env ONEAPI_DEVICE_SELECTOR=level_zero:gpu  not .../build-e2e/AddressSanitizer/invalid-argument/Output/released-pointer.cpp.tmp 2>&1 | .../toolchain/bin/FileCheck .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/released-pointer.cpp
# executed command: env SYCL_PREFER_UR=1 'UR_LAYER_ASAN_OPTIONS=quarantine_size_mb:1;detect_kernel_arguments:1' env ONEAPI_DEVICE_SELECTOR=level_zero:gpu not .../build-e2e/AddressSanitizer/invalid-argument/Output/released-pointer.cpp.tmp
# note: command had no output on stdout or stderr
# executed command: .../toolchain/bin/FileCheck .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/released-pointer.cpp
# .---command stderr------------
# | .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/released-pointer.cpp:19:12: error: CHECK: expected string not found in input
# |  // CHECK: The 1th argument {{.*}} is a released USM pointer
# |            ^
# | <stdin>:4:45: note: scanning from here
# | ====ERROR: DeviceSanitizer: invalid-argument on kernel <typeinfo name for main::{lambda(sycl::_V1::handler&)#1}::operator()(sycl::_V1::handler&) const::MyKernel>
# |                                             ^
# | <stdin>:10:20: note: possible intended match here
# | The 0th argument 0xffffd556aa640010 is a released USM pointer
# |                    ^
# | 
# | Input file: <stdin>
# | Check file: .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/released-pointer.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: ZE_LOADER_DEBUG_TRACE:Using Loader Library Path:  
# |             2: ZE_LOADER_DEBUG_TRACE:Tracing Layer Library Path: libze_tracing_layer.so.1 
# |             3:  
# |             4: ====ERROR: DeviceSanitizer: invalid-argument on kernel <typeinfo name for main::{lambda(sycl::_V1::handler&)#1}::operator()(sycl::_V1::handler&) const::MyKernel> 
# | check:19'0                                                 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             5:  #0 in std::_Function_base::~_Function_base() .../include/c++/11/bits/std_function.h:243:11 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             6:  #1 in ?? (/lib/x86_64-linux-gnu/libc.so.6+0x7fa0c6480d90) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             7:  #2 in ?? (/lib/x86_64-linux-gnu/libc.so.6+0x7fa0c6480e40) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8:  #3 in _start (.../build-e2e/AddressSanitizer/invalid-argument/Output/released-pointer.cpp.tmp+0x402375) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             9:  
# | check:19'0     ~
# |            10: The 0th argument 0xffffd556aa640010 is a released USM pointer 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:19'1                        ?                                           possible intended match
# |            11: 0xffffd556aa640010 is located inside of Device USM region [0xffffd556aa640010, 0xffffd556aa640014) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            12: allocated here: 
# | check:19'0     ~~~~~~~~~~~~~~~~
# |            13:  #0 in int* sycl::_V1::malloc_device<int>(unsigned long, sycl::_V1::queue const&, sycl::_V1::property_list const&, sycl::_V1::detail::code_location const&) .../toolchain/bin/../include/sycl/usm.hpp:180:0 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            14:  #1 in main .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/released-pointer.cpp:11:15 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            15:  #2 in ?? (/lib/x86_64-linux-gnu/libc.so.6+0x7fa0c6480d90) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

********************
FAIL: SYCL :: AddressSanitizer/invalid-argument/out-of-bounds.cpp (26 of 2183)
******************** TEST 'SYCL :: AddressSanitizer/invalid-argument/out-of-bounds.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
.../toolchain/bin//clang++  -Werror  -fsycl -fsycl-targets=spir64  .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/out-of-bounds.cpp -Xarch_device -fsanitize=address -O2 -g -o .../build-e2e/AddressSanitizer/invalid-argument/Output/out-of-bounds.cpp.tmp
# executed command: .../toolchain/bin//clang++ -Werror -fsycl -fsycl-targets=spir64 .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/out-of-bounds.cpp -Xarch_device -fsanitize=address -O2 -g -o .../build-e2e/AddressSanitizer/invalid-argument/Output/out-of-bounds.cpp.tmp
# note: command had no output on stdout or stderr
# RUN: at line 3
env SYCL_PREFER_UR=1 UR_LAYER_ASAN_OPTIONS="detect_kernel_arguments:1" env ONEAPI_DEVICE_SELECTOR=level_zero:gpu  not .../build-e2e/AddressSanitizer/invalid-argument/Output/out-of-bounds.cpp.tmp 2>&1 | .../toolchain/bin/FileCheck .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/out-of-bounds.cpp
# executed command: env SYCL_PREFER_UR=1 UR_LAYER_ASAN_OPTIONS=detect_kernel_arguments:1 env ONEAPI_DEVICE_SELECTOR=level_zero:gpu not .../build-e2e/AddressSanitizer/invalid-argument/Output/out-of-bounds.cpp.tmp
# note: command had no output on stdout or stderr
# executed command: .../toolchain/bin/FileCheck .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/out-of-bounds.cpp
# .---command stderr------------
# | .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/out-of-bounds.cpp:19:12: error: CHECK: expected string not found in input
# |  // CHECK: The 1th argument {{.*}} is located outside of its region
# |            ^
# | <stdin>:4:45: note: scanning from here
# | ====ERROR: DeviceSanitizer: invalid-argument on kernel <typeinfo name for main::{lambda(sycl::_V1::handler&)#1}::operator()(sycl::_V1::handler&) const::MyKernel>
# |                                             ^
# | <stdin>:10:18: note: possible intended match here
# | The 0th argument 0xffffd556aa640014 is located outside of its region [0xffffd556aa640010, 0xffffd556aa640014)
# |                  ^
# | 
# | Input file: <stdin>
# | Check file: .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/out-of-bounds.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: ZE_LOADER_DEBUG_TRACE:Using Loader Library Path:  
# |             2: ZE_LOADER_DEBUG_TRACE:Tracing Layer Library Path: libze_tracing_layer.so.1 
# |             3:  
# |             4: ====ERROR: DeviceSanitizer: invalid-argument on kernel <typeinfo name for main::{lambda(sycl::_V1::handler&)#1}::operator()(sycl::_V1::handler&) const::MyKernel> 
# | check:19'0                                                 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             5:  #0 in std::_Function_base::~_Function_base() .../include/c++/11/bits/std_function.h:243:11 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             6:  #1 in ?? (/lib/x86_64-linux-gnu/libc.so.6+0x7f84db132d90) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             7:  #2 in ?? (/lib/x86_64-linux-gnu/libc.so.6+0x7f84db132e40) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8:  #3 in _start (.../build-e2e/AddressSanitizer/invalid-argument/Output/out-of-bounds.cpp.tmp+0x402365) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             9:  
# | check:19'0     ~
# |            10: The 0th argument 0xffffd556aa640014 is located outside of its region [0xffffd556aa640010, 0xffffd556aa640014) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:19'1                      ?                                                                                             possible intended match
# |            11: allocated here: 
# | check:19'0     ~~~~~~~~~~~~~~~~
# |            12:  #0 in int* sycl::_V1::malloc_device<int>(unsigned long, sycl::_V1::queue const&, sycl::_V1::property_list const&, sycl::_V1::detail::code_location const&) .../toolchain/bin/../include/sycl/usm.hpp:180:0 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            13:  #1 in main .../llvm/sycl/test-e2e/AddressSanitizer/invalid-argument/out-of-bounds.cpp:11:15 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            14:  #2 in ?? (/lib/x86_64-linux-gnu/libc.so.6+0x7f84db132d90) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            15:  #3 in ?? (/lib/x86_64-linux-gnu/libc.so.6+0x7f84db132e40) 
# | check:19'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--
steffenlarsen commented 2 hours ago

Tag @AllanZyne & @yingcong-wu for awareness. I will go disable the tests and hopefully fix global_nullptr.cpp in another patch.