Closed raulcd closed 1 week ago
@pitrou @lidavidm @kou any idea here? I am pinning Python 3.12 temporarily for conda on macOS, maybe that's good enough to release but we should investigate this one.
I don't know why the Java integration test runner uses Python. @lidavidm Do you know why?
Hmm, that's odd. The Python bit should only be to spawn processes, so why is Java seemingly calling into Python?
And this is macOS amd64, so it'll be hard to reproduce...
Yeah, that's odd. It's almost as if the fork+exec in subprocess
hadn't fully unloaded Python (which sounds outlandish).
I was able to reproduce this on my own crossbow repo after splicing in a tmate step and running the verification manually. Patch below. I'm poking around now.
Here's the output of hs_err_pid49681.log
:
The above makes it look like JPype is involved after all?
Ok, so it's the archery integration
process that crashed, unlike what we've been assuming above. Flight SQL is probably not involved at all. The crash occurs after "flight_sql:extension" has finished, when initializing the C Data Interface testing bridge with JPype.
I'm curious: did your crash occur deterministically in the same place as in https://github.com/ursacomputing/crossbow/actions/runs/11289830425/job/31400455755 ?
I'll start a new run with PYTHONFAULTHANDLER=1 on.
The failure I reproduced crashed in the C Data Interface
group whereas the original report crashed in Flight
.
Here's what I get with PYTHONFAULTHANDLER=1:
##########################################################
C Data Interface: C++ exporting, Java importing
##########################################################
WARNING: Unknown module: org.apache.arrow.memory.core specified to --add-opens
Fatal Python error: Segmentation fault
Current thread 0x000000010a578600 (most recent call first):
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/jpype/_jclass.py", line 147 in _jclassPost
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/jpype/_jclass.py", line 99 in __new__
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/jpype/_core.py", line 275 in initializeResources
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/jpype/_core.py", line 250 in startJVM
File "/Users/runner/work/crossbow/crossbow/arrow/dev/archery/archery/integration/tester_java.py", line 92 in setup_jpype
File "/Users/runner/work/crossbow/crossbow/arrow/dev/archery/archery/integration/tester_java.py", line 108 in __init__
File "/Users/runner/work/crossbow/crossbow/arrow/dev/archery/archery/integration/tester_java.py", line 356 in make_c_data_importer
File "/Users/runner/work/crossbow/crossbow/arrow/dev/archery/archery/integration/runner.py", line 427 in _compare_c_data_implementations
File "/Users/runner/work/crossbow/crossbow/arrow/dev/archery/archery/integration/runner.py", line 130 in run_c_data
File "/Users/runner/work/crossbow/crossbow/arrow/dev/archery/archery/integration/runner.py", line 658 in run_all_tests
File "/Users/runner/work/crossbow/crossbow/arrow/dev/archery/archery/cli.py", line 810 in integration
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/click/core.py", line 783 in invoke
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/click/core.py", line 1434 in invoke
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/click/core.py", line 1688 in invoke
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/click/core.py", line 1078 in main
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/lib/python3.13/site-packages/click/core.py", line 1157 in __call__
File "/private/var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF/mambaforge/envs/conda-source/bin/archery", line 8 in <module>
Extension modules: numpy._core._multiarray_umath, numpy.linalg._umath_linalg, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, _cffi_backend, _jpype (total: 13)
arrow/dev/release/verify-release-candidate.sh: line 985: 34642 Segmentation fault: 11 LD_LIBRARY_PATH=$ARROW_CPP_EXE_PATH:$LD_LIBRARY_PATH archery integration --run-ipc --run-flight --run-c-data --with-cpp=${TEST_INTEGRATION_CPP} --with-java=${TEST_INTEGRATION_JAVA} --with-js=${TEST_INTEGRATION_JS} --with-go=${TEST_INTEGRATION_GO} $INTEGRATION_TEST_ARGS
Failed to verify release candidate. See /var/folders/t5/14gs56bj7djcylkj26c908n40000gn/T/arrow-HEAD.XXXXX.FsfNaVDF for details.
Edit: PS I'll be offline until later my time.
Wow. So this is the same problem as #44389. Let's merge #44388. We can use Python 3.13 or later again after JPype supports Python 3.13 or later.
Issue resolved by pull request 44388 https://github.com/apache/arrow/pull/44388
Describe the bug, including details regarding any error messages, version, and platform.
The verify-rc-source-integration-macos-conda-amd64 job has been failing since the 9th of October with a
SIGSEGV
:This is also failing on the maintenance branch.
The commits introduced are not related https://github.com/apache/arrow/compare/64891d1d176dd45f3fae574e1bcfac6fee197e5f...1c601a573e1e34b87a8e2e64db3c9786f3ca2bcd It seems to have to do with Python 3.13. The last successful job used Python 3.12.
Component(s)
Integration, Release