Source: openmpi
Followup-For: Bug #995150
gdb on amd64 run locally confirms the segfault, running test_io.py
alone. Refines the problem to MPIOI_File_iwrite_all in
mca_io_romio321.so
$ gdb python3
(gdb) run -m pytest test_io.py
Starting program: /usr/bin/python3 -m pytest test_io.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff3f2b640 (LWP 3398120)]
...
Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x00007fffad13ea84 in MPIOI_File_iwrite_all () from
/usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3/mca_io_romio321.so
#2 0x00007fffad13ebd3 in mca_io_romio_dist_MPI_File_iwrite_all () from
/usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3/mca_io_romio321.so
#3 0x00007fffad13c4c3 in mca_io_romio321_file_iwrite_all () from
/usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3/mca_io_romio321.so
#4 0x00007ffff3c86b4c in PMPI_File_iwrite_all () from
/lib/x86_64-linux-gnu/libmpi.so.40
#5 0x00007ffff3e80d0c in __pyx_pf_6mpi4py_3MPI_4File_62Iwrite_all
(__pyx_v_buf=<optimized out>, __pyx_v_self=0x7fffacf8db40) at
src/mpi4py.MPI.c:159094
#6 __pyx_pw_6mpi4py_3MPI_4File_63Iwrite_all (__pyx_v_self=<mpi4py.MPI.File at
remote 0x7fffacf8db40>, __pyx_args=__pyx_args@entry=(<array.array at remote
0x7fffad57c2f0>,), __pyx_kwds=__pyx_kwds@entry=0x0)
at src/mpi4py.MPI.c:27957
#7 0x000000000052b141 in method_vectorcall_VARARGS_KEYWORDS (func=<optimized
out>, args=0x1461818, nargsf=<optimized out>, kwnames=0x0) at
../Objects/descrobject.c:346
#8 0x00000000005127fb in _PyObject_VectorcallTstate (kwnames=0x0,
nargsf=<optimized out>, args=0x1461818, callable=<method_descriptor at remote
0x7ffff3f073b0>, tstate=0x968fb0)
at ../Include/cpython/abstract.h:118
#9 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x1461818,
callable=<method_descriptor at remote 0x7ffff3f073b0>) at
../Include/cpython/abstract.h:127
#10 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
pointer>, tstate=0x968fb0) at ../Python/ceval.c:5075
#11 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>,
throwflag=<optimized out>) at ../Python/ceval.c:3504
#12 0x00000000005291c3 in _PyEval_EvalFrame (throwflag=0,
f=Frame 0x1461640, for file /projects/python/build/mpi4py/test/test_io.py,
line 306, in testIReadIWriteAll
(self=<TestIOSelf(_testMethodName='testIReadIWriteAll',
_outcome=<_Outcome(expecting_failure=False,
result=<TestCaseFunction(keywords=<NodeKeywords(node=<...>,
parent=<UnitTestCase(keywords=<NodeKeywords(node=<...>,
parent=<Module(keywords=<NodeKeywords(node=<...>,
parent=<Session(keywords=<NodeKeywords(node=<...>, parent=None,
_markers={'mpi4py': True}) at remote 0x7fffb69c0850>, own_markers=[],
extra_keyword_matches=set(), testsfailed=1, testscollected=28,
shouldstop=False, shouldfail=False,
trace=<TagTracerSub(root=<TagTracer(_tags2proc={}, _writer=None, indent=0) at
remote 0x7ffff7865be0>, tags=('collection',)) at remote 0x7fffb69c0910>,
startdir=<LocalPath(strpath='/projects/python/build/mpi4py/test') at remote
0x7fffb69c0550>,
_initialpaths=frozenset({<LocalPath(strpath='/projects/python/build/mpi4py/test/test_io.py')
at remote 0x7fffb69dfc10>}), _bestrelpathcache=<_best...(truncated),
tstate=0x968fb0) at ../Include/internal/pycore_ceval.h:40
-- System Information:
Debian Release: bookworm/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.10.0-8-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8),
LANGUAGE=en_AU:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled