Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
| mlir/include/mlir/Dialect/SparseTensor/IR/Enums.h | ||
|---|---|---|
| 153 | we could start using 1 again ;-) | |
| mlir/include/mlir/ExecutionEngine/SparseTensor/Storage.h | ||
| 654 | strange edit? | |
| 1204 | typo: coordinate | |
| 1217 | yeah, a "swap" would be so awesome here but... maybe one day when we control runtime of external source too ;-) | |
| mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp | ||
| 665 | I was about to comment that you can now remove the static util in SparseTensorCodegen.cpp | |
| mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp | ||
| 216 | that point ... (since pointers is plural) | |
| 1314 | strange edit? | |
Since this change we have a test failing with a double free on our AArch64 bots: https://lab.llvm.org/buildbot/#/builders/179/builds/7122
This also occurs on our SVE bots, but they were failing to build for a time which masked the issue. The difference is that on the SVE bots the test runs natively, it's using QEMU otherwise (https://lab.llvm.org/buildbot/#/builders/184/builds/5631). Which means the failure isn't down to QEMU.
The 2 stage SVE bots aren't failing, but that's because they don't run the tests. You need to pass -DMLIR_INCLUDE_INTEGRATION_TESTS=True -DMLIR_RUN_ARM_SVE_TESTS=True to CMake to enable them.
ASAN results:
=================================================================
==3831480==ERROR: AddressSanitizer: attempting double-free on 0xffff956192a0 in thread T0:
#0 0xaaaac7242ec4 in __interceptor_free /home/tcwg-buildslave/workspace/tcwg-llvm-release/tcwg-jade-03/final/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:52:3
#1 0xffff9990d314 (<unknown module>)
#2 0xffff9990d384 (<unknown module>)
#3 0xaaaac7f2efc8 in compileAndExecute((anonymous namespace)::Options&, mlir::Operation*, llvm::StringRef, (anonymous namespace)::CompileAndExecuteConfig, void**, std::unique_ptr<llvm::TargetMachine, std::default_delete<llvm::TargetMachine>>) /home/david.spickett/llvm-project/mlir/lib/ExecutionEngine/JitRunner.cpp:215:3
#4 0xaaaac7f28754 in compileAndExecuteVoidFunction((anonymous namespace)::Options&, mlir::Operation*, llvm::StringRef, (anonymous namespace)::CompileAndExecuteConfig, std::unique_ptr<llvm::TargetMachine, std::default_delete<llvm::TargetMachine>>) /home/david.spickett/llvm-project/mlir/lib/ExecutionEngine/JitRunner.cpp:234:10
#5 0xaaaac7f23c28 in mlir::JitRunnerMain(int, char**, mlir::DialectRegistry const&, mlir::JitRunnerConfig) /home/david.spickett/llvm-project/mlir/lib/ExecutionEngine/JitRunner.cpp:391:23
#6 0xaaaac72727ec in main /home/david.spickett/llvm-project/mlir/tools/mlir-cpu-runner/mlir-cpu-runner.cpp:33:10
#7 0xffff9b140e0c in __libc_start_main /build/glibc-RIFKjK/glibc-2.31/csu/../csu/libc-start.c:308:16
#8 0xaaaac71cc414 in _start (/home/david.spickett/build-llvm-aarch64/bin/mlir-cpu-runner+0x1afe414)
0xffff956192a0 is located 0 bytes inside of 88-byte region [0xffff956192a0,0xffff956192f8)
freed by thread T0 here:
#0 0xaaaac7242ec4 in __interceptor_free /home/tcwg-buildslave/workspace/tcwg-llvm-release/tcwg-jade-03/final/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:52:3
#1 0xffff9990d2c4 (<unknown module>)
previously allocated by thread T0 here:
#0 0xaaaac7243158 in malloc /home/tcwg-buildslave/workspace/tcwg-llvm-release/tcwg-jade-03/final/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:69:3
#1 0xffff9990d024 (<unknown module>)
#2 0xaaaac7f28754 in compileAndExecuteVoidFunction((anonymous namespace)::Options&, mlir::Operation*, llvm::StringRef, (anonymous namespace)::CompileAndExecuteConfig, std::unique_ptr<llvm::TargetMachine, std::default_delete<llvm::TargetMachine>>) /home/david.spickett/llvm-project/mlir/lib/ExecutionEngine/JitRunner.cpp:234:10
#3 0xaaaac7f23c28 in mlir::JitRunnerMain(int, char**, mlir::DialectRegistry const&, mlir::JitRunnerConfig) /home/david.spickett/llvm-project/mlir/lib/ExecutionEngine/JitRunner.cpp:391:23
#4 0xaaaac72727ec in main /home/david.spickett/llvm-project/mlir/tools/mlir-cpu-runner/mlir-cpu-runner.cpp:33:10
#5 0xffff9b140e0c in __libc_start_main /build/glibc-RIFKjK/glibc-2.31/csu/../csu/libc-start.c:308:16
#6 0xaaaac71cc414 in _start (/home/david.spickett/build-llvm-aarch64/bin/mlir-cpu-runner+0x1afe414)
SUMMARY: AddressSanitizer: double-free /home/tcwg-buildslave/workspace/tcwg-llvm-release/tcwg-jade-03/final/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:52:3 in __interceptor_free
==3831480==ABORTING
FileCheck error: '<stdin>' is empty.
FileCheck command line: /home/david.spickett/build-llvm-aarch64/bin/FileCheck /home/david.spickett/llvm-project/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pack_libgen.mlir
--@DavidSpickett , thanks for reporting!
To avoid a full a revert: https://github.com/llvm/llvm-project/commit/51eaee3b42f057fc2cc3fae7ec71d44fa1b82057
Issue reported here: https://github.com/llvm/llvm-project/issues/64727
@Peiming and @aartbik - do you see where the "double free" could be coming from?
-Andrzej
Thanks for reporting! I think you partial revert is the right fix: I forget to change the flag for VLA test and my local test environment can not cover that path either.
we could start using 1 again ;-)