niyue commented on PR #39098:
URL: https://github.com/apache/arrow/pull/39098#issuecomment-1848380367
I spent a day trying to address the last failed test case, but I am still
not able to reproduce it yet.
* My local env: macOS 14 + Macbook M1 MAX (Apple Silicon) + Docker Desktop
for Mac 4.26.0 (with Rosetta enabled for x86 images)
* I use `LLVM=14 CLANG_TOOLS=14 UBUNTU=22.04 archery docker run
ubuntu-cpp-sanitizer` to start the container
* When `ARROW_USE_ASAN` and `ARROW_USE_UBSAN` are set to `ON` (as CI does),
I don't see the `JIT session error: Symbols not found: [ atexit ]` and
`'_error_or_value29.status()' failed with CodeGenError in Gandiva: Failed to
look up function: llvm_gen_test_add_expr error: Failed to materialize symbols:
{ (main, { ...` error reported by CI, instead, I see some sanitizer issue
reported by ASAN and the program is aborted like:
> AddressSanitizer:DEADLYSIGNAL
=================================================================
==39275==ERROR: AddressSanitizer: SEGV on unknown address 0x200071c9c800 (pc
0x555555b9df32 bp 0x5554ffffa610 sp 0x5554ffff9dc8 T0)
==39275==The signal is caused by a READ memory access.
#0 0x555555b9df32 in __asan::QuickCheckForUnpoisonedRegion(unsigned
long, unsigned long) asan_interceptors.cpp.o
#1 0x555555ba1970 in __interceptor_memset
(/build/cpp/debug/gandiva-projector-test+0x64d970) (BuildId:
39a4e12fe1a577d720a2e859c0e80a0035e2f017)
#2 0x7fffda6bbd40 in
llvm::RuntimeDyldImpl::emitSection(llvm::object::ObjectFile const&,
llvm::object::SectionRef const&, bool)
(/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x288dd40) (BuildId:
2bc68177e1745130d2e10f07f1644b9def97578b)
#3 0x7fffda6bae69 in
llvm::RuntimeDyldImpl::findOrEmitSection(llvm::object::ObjectFile const&,
llvm::object::SectionRef const&, bool, std::map<llvm::object::SectionRef,
unsigned int, std::less<llvm::object::SectionRef>,
std::allocator<std::pair<llvm::object::SectionRef const, unsigned int> > >&)
(/lib/x86_64-linux-gnu/libLLVM-14.so.1+0x288ce69) (BuildId:
2bc68177e1745130d2e10f07f1644b9def97578b)
#4 0x7fffda6b9431 in
llvm::RuntimeDyldImpl::loadObjectImpl(llvm::object::ObjectFile const&) (/lib/
....
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV asan_interceptors.cpp.o in
__asan::QuickCheckForUnpoisonedRegion(unsigned long, unsigned long)
==39275==ABORTING
* When `ARROW_USE_ASAN` and `ARROW_USE_UBSAN` are set to `OFF`
* I saw CI still reported the same error (but there was only one case
reported such an error),
https://github.com/apache/arrow/actions/runs/7150176834/job/19473189846?pr=39098
* My local env reported no error, and all tests passed
I have no idea how to address this test case failure currently and will
spend some more time on investigation. Just in case this is triggered by
LLJIT's sanitizing issue, do we somehow suppress third party library's
ASAN/UBSAN issues anywhere? Thanks.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]