raulcd commented on PR #49849:
URL: https://github.com/apache/arrow/pull/49849#issuecomment-4337712686
I think it works. I was expecting more failures :)
```
__________________________ test_asan_sanity_oob_numpy
__________________________
def test_asan_sanity_oob_numpy():
# TODO: ASAN sanity check (libarrow_python.so / numpy_convert.cc).
# Same pattern as test_asan_sanity_oob. Revert before final commit.
res = subprocess.run(
[sys.executable, "-c",
"import pyarrow.lib; pyarrow.lib._asan_sanity_oob_numpy()"],
capture_output=True, text=True, timeout=30,
)
> assert res.returncode == 0, (
f"ASAN caught heap-buffer-overflow in libarrow_python.\n"
f"returncode={res.returncode}\n"
f"stderr:\n{res.stderr}"
)
E AssertionError: ASAN caught heap-buffer-overflow in libarrow_python.
E returncode=1
E stderr:
E =================================================================
E ==23268==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x7b5eb9a14900 at pc 0x7b3eb364e7a8 bp 0x7ffe91d6cfa0 sp 0x7ffe91d6cf98
E READ of size 4 at 0x7b5eb9a14900 thread T0
E #0 0x7b3eb364e7a7 in arrow::py::AsanSanityOobNumpy()
/arrow/python/pyarrow/src/arrow/python/numpy_convert.cc:565
E #1 0x7b3eb5d8f14d in
__pyx_pf_7pyarrow_3lib_6_asan_sanity_oob_numpy
/tmp/tmprle2nfdj/build/lib.cpp:21869
E #2 0x7b3eb5d8f129 in
__pyx_pw_7pyarrow_3lib_7_asan_sanity_oob_numpy
/tmp/tmprle2nfdj/build/lib.cpp:21850
E #3 0x7b3eb67275c5 in __Pyx_CyFunction_Vectorcall_NOARGS
/tmp/tmprle2nfdj/build/lib.cpp:345932
E #4 0x7f3ebb0c546b in _PyObject_VectorcallTstate
/usr/local/src/conda/python-3.15/Include/internal/pycore_call.h:136
E #5 0x7f3ebb0c546b in PyObject_Vectorcall
/usr/local/src/conda/python-3.15/Objects/call.c:327
E #6 0x7f3ebb376d2e in
_Py_VectorCallInstrumentation_StackRefSteal
/usr/local/src/conda/python-3.15/Python/ceval.c:762
E #7 0x7f3ebb384d29 in _PyEval_EvalFrameDefault
/usr/local/src/conda/python-3.15/Python/generated_cases.c.h:1817
E #8 0x7f3ebb3b87e6 in _PyEval_EvalFrame
/usr/local/src/conda/python-3.15/Include/internal/pycore_ceval.h:118
E #9 0x7f3ebb3b87e6 in _PyEval_Vector
/usr/local/src/conda/python-3.15/Python/ceval.c:2125
E #10 0x7f3ebb3b8b58 in PyEval_EvalCode
/usr/local/src/conda/python-3.15/Python/ceval.c:673
E #11 0x7f3ebb4c1f74 in run_mod
/usr/local/src/conda/python-3.15/Python/pythonrun.c:1469
E #12 0x7f3ebb4c275b in _PyRun_StringFlagsWithName
/usr/local/src/conda/python-3.15/Python/pythonrun.c:1258
E #13 0x7f3ebb4c7348 in _PyRun_SimpleStringFlagsWithName
/usr/local/src/conda/python-3.15/Python/pythonrun.c:572
E #14 0x7f3ebb52a1fc in pymain_run_command
/usr/local/src/conda/python-3.15/Modules/main.c:261
E #15 0x7f3ebb52a1fc in pymain_run_python
/usr/local/src/conda/python-3.15/Modules/main.c:682
E #16 0x7f3ebb52a1fc in Py_RunMain
/usr/local/src/conda/python-3.15/Modules/main.c:772
E #17 0x7f3ebb52bf21 in pymain_main
/usr/local/src/conda/python-3.15/Modules/main.c:802
E #18 0x7f3ebb52c2e8 in Py_BytesMain
/usr/local/src/conda/python-3.15/Modules/main.c:826
E #19 0x7f3ebac181c9 in __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
E #20 0x7f3ebac1828a in __libc_start_main_impl
../csu/libc-start.c:360
E #21 0x55e6b5dce09d in _start
(/arrow/ci/pixi/asan/python/.pixi/envs/test/bin/python3.15+0x109d)
E
E 0x7b5eb9a14900 is located 396 bytes after 4-byte region
[0x7b5eb9a14770,0x7b5eb9a14774)
E allocated by thread T0 here:
E #0 0x7f3ebbd1b6eb in malloc
../../../../libsanitizer/asan/asan_malloc_linux.cpp:67
E #1 0x7b3eb364e71f in arrow::py::AsanSanityOobNumpy()
/arrow/python/pyarrow/src/arrow/python/numpy_convert.cc:564
E #2 0x7b3eb5d8f14d in
__pyx_pf_7pyarrow_3lib_6_asan_sanity_oob_numpy
/tmp/tmprle2nfdj/build/lib.cpp:21869
E #3 0x7b3eb5d8f129 in
__pyx_pw_7pyarrow_3lib_7_asan_sanity_oob_numpy
/tmp/tmprle2nfdj/build/lib.cpp:21850
E #4 0x7b3eb67275c5 in __Pyx_CyFunction_Vectorcall_NOARGS
/tmp/tmprle2nfdj/build/lib.cpp:345932
E #5 0x7f3ebb0c546b in _PyObject_VectorcallTstate
/usr/local/src/conda/python-3.15/Include/internal/pycore_call.h:136
E #6 0x7f3ebb0c546b in PyObject_Vectorcall
/usr/local/src/conda/python-3.15/Objects/call.c:327
E #7 0x7f3ebb376d2e in
_Py_VectorCallInstrumentation_StackRefSteal
/usr/local/src/conda/python-3.15/Python/ceval.c:762
E #8 0x7f3ebb384d29 in _PyEval_EvalFrameDefault
/usr/local/src/conda/python-3.15/Python/generated_cases.c.h:1817
E #9 0x7f3ebb3b87e6 in _PyEval_EvalFrame
/usr/local/src/conda/python-3.15/Include/internal/pycore_ceval.h:118
E #10 0x7f3ebb3b87e6 in _PyEval_Vector
/usr/local/src/conda/python-3.15/Python/ceval.c:2125
E #11 0x7f3ebb3b8b58 in PyEval_EvalCode
/usr/local/src/conda/python-3.15/Python/ceval.c:673
E #12 0x7f3ebb4c1f74 in run_mod
/usr/local/src/conda/python-3.15/Python/pythonrun.c:1469
E #13 0x7f3ebb4c275b in _PyRun_StringFlagsWithName
/usr/local/src/conda/python-3.15/Python/pythonrun.c:1258
E #14 0x7f3ebb4c7348 in _PyRun_SimpleStringFlagsWithName
/usr/local/src/conda/python-3.15/Python/pythonrun.c:572
E #15 0x7f3ebb52a1fc in pymain_run_command
/usr/local/src/conda/python-3.15/Modules/main.c:261
E #16 0x7f3ebb52a1fc in pymain_run_python
/usr/local/src/conda/python-3.15/Modules/main.c:682
E #17 0x7f3ebb52a1fc in Py_RunMain
/usr/local/src/conda/python-3.15/Modules/main.c:772
E #18 0x7f3ebb52bf21 in pymain_main
/usr/local/src/conda/python-3.15/Modules/main.c:802
E #19 0x7f3ebb52c2e8 in Py_BytesMain
/usr/local/src/conda/python-3.15/Modules/main.c:826
E #20 0x7f3ebac181c9 in __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
E #21 0x7f3ebac1828a in __libc_start_main_impl
../csu/libc-start.c:360
E #22 0x55e6b5dce09d in _start
(/arrow/ci/pixi/asan/python/.pixi/envs/test/bin/python3.15+0x109d)
E
E SUMMARY: AddressSanitizer: heap-buffer-overflow
/arrow/python/pyarrow/src/arrow/python/numpy_convert.cc:565 in
arrow::py::AsanSanityOobNumpy()
E Shadow bytes around the buggy address:
E 0x7b5eb9a14680: fa fa 00 00 fa fa 00 00 fa fa 00 00 fa fa 00 00
E 0x7b5eb9a14700: fa fa 00 00 fa fa 00 00 fa fa 00 00 fa fa 04 fa
E 0x7b5eb9a14780: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E 0x7b5eb9a14800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E 0x7b5eb9a14880: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E =>0x7b5eb9a14900:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E 0x7b5eb9a14980: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E 0x7b5eb9a14a00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E 0x7b5eb9a14a80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E 0x7b5eb9a14b00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E 0x7b5eb9a14b80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
E Shadow byte legend (one shadow byte represents 8 application
bytes):
E Addressable: 00
E Partially addressable: 01 02 03 04 05 06 07
E Heap left redzone: fa
E Freed heap region: fd
E Stack left redzone: f1
E Stack mid redzone: f2
E Stack right redzone: f3
E Stack after return: f5
E Stack use after scope: f8
E Global redzone: f9
E Global init order: f6
E Poisoned by user: f7
E Container overflow: fc
E Array cookie: ac
E Intra object redzone: bb
E ASan internal: fe
E Left alloca redzone: ca
E Right alloca redzone: cb
E ==23268==ABORTING
E
E assert 1 == 0
E + where 1 =
CompletedProcess(args=['/arrow/ci/pixi/asan/python/.pixi/envs/test/bin/python3.15',
'-c', 'import pyarrow.lib; pyarrow... bb\n ASan internal: fe\n
Left alloca redzone: ca\n Right alloca redzone:
cb\n==23268==ABORTING\n').returncode
```
--
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]