https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114872

--- Comment #18 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
> 2) ideally show a gdb session with the important events, which setjmp was it 
> (I see _setjmp and __sigsetjmp calls in the function), which exact function 
> called from the function ended up aborting/doing longjmp in the signal 
> handler and where is the crash

# gdb --quiet -p 1180766

Attaching to a running `sage` interactive process.
In sage repl typing:

  libgap.AbelianGroup(0,0,0)

Breakpoint happens. SIGABRT (immediate longjmp trigger) backtrace:

Thread 1 "sage-ipython" received signal SIGABRT, Aborted.
0x00007f53f8e617a7 in __GI_kill () at ../sysdeps/unix/syscall-template.S:120
120     T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
(gdb) bt
#0  0x00007f53f8e617a7 in __GI_kill () at
../sysdeps/unix/syscall-template.S:120
#1  0x00007f539c581edf in sig_error () at
/usr/lib/python3.12/site-packages/cysignals/macros.h:298
#2  __pyx_pf_4sage_4libs_3gap_7element_19GapElement_Function_2__call__
(__pyx_v_self=__pyx_v_self@entry=0x7f539635bc40,
    __pyx_v_args=__pyx_v_args@entry=(<sage.rings.integer.Integer at remote
0x7f539b17b6c0>, <sage.rings.integer.Integer at remote 0x7f5396574390>,
<sage.rings.integer.Integer at remote 0x7f5396f957d0>))
    at
/usr/src/debug/sci-mathematics/sagemath-standard-10.3/sagemath-standard-10.3-python3_12/build/cythonized/sage/libs/gap/element.c:26315
#3  0x00007f539c5834e7 in
__pyx_pw_4sage_4libs_3gap_7element_19GapElement_Function_3__call__
(__pyx_v_self=<sage.libs.gap.element.GapElement_Function at remote
0x7f539635bc40>,
    __pyx_args=(<sage.rings.integer.Integer at remote 0x7f539b17b6c0>,
<sage.rings.integer.Integer at remote 0x7f5396574390>,
<sage.rings.integer.Integer at remote 0x7f5396f957d0>), __pyx_kwds=<optimized
out>)
    at
/usr/src/debug/sci-mathematics/sagemath-standard-10.3/sagemath-standard-10.3-python3_12/build/cythonized/sage/libs/gap/element.c:26105
#4  0x00007f53f916496b in _PyObject_MakeTpCall (tstate=0x7f53f9670d08
<_PyRuntime+459656>,
callable=callable@entry=<sage.libs.gap.element.GapElement_Function at remote
0x7f539635bc40>,
    args=args@entry=0x7f53f96b5480, nargs=3, keywords=0x0) at
Objects/call.c:240
...

SIGSEGV backtrace (for completeness):

Thread 1 "sage-ipython" received signal SIGSEGV, Segmentation fault.
0x00007f539c58256f in _Py_IsImmortal (op=0x0) at
/usr/include/python3.12/object.h:242
242         return _Py_CAST(PY_INT32_T, op->ob_refcnt) < 0;
(gdb) bt
#0  0x00007f539c58256f in _Py_IsImmortal (op=0x0) at
/usr/include/python3.12/object.h:242
#1  Py_DECREF (op=0x0) at /usr/include/python3.12/object.h:700
#2  Py_XDECREF (op=0x0) at /usr/include/python3.12/object.h:798
#3  __pyx_pf_4sage_4libs_3gap_7element_19GapElement_Function_2__call__
(__pyx_v_self=__pyx_v_self@entry=0x7f539635bc40,
    __pyx_v_args=__pyx_v_args@entry=(<sage.rings.integer.Integer at remote
0x7f539b17b6c0>, <sage.rings.integer.Integer at remote 0x7f5396574390>,
<sage.rings.integer.Integer at remote 0x7f5396f957d0>))
    at
/usr/src/debug/sci-mathematics/sagemath-standard-10.3/sagemath-standard-10.3-python3_12/build/cythonized/sage/libs/gap/element.c:26535
#4  0x00007f539c5834e7 in
__pyx_pw_4sage_4libs_3gap_7element_19GapElement_Function_3__call__
(__pyx_v_self=<sage.libs.gap.element.GapElement_Function at remote
0x7f539635bc40>,
    __pyx_args=(<sage.rings.integer.Integer at remote 0x7f539b17b6c0>,
<sage.rings.integer.Integer at remote 0x7f5396574390>,
<sage.rings.integer.Integer at remote 0x7f5396f957d0>), __pyx_kwds=<optimized
out>)
    at
/usr/src/debug/sci-mathematics/sagemath-standard-10.3/sagemath-standard-10.3-python3_12/build/cythonized/sage/libs/gap/element.c:26105
#5  0x00007f53f916496b in _PyObject_MakeTpCall (tstate=0x7f53f9670d08
<_PyRuntime+459656>,
callable=callable@entry=<sage.libs.gap.element.GapElement_Function at remote
0x7f539635bc40>,
    args=args@entry=0x7f53f96b5480, nargs=3, keywords=0x0) at
Objects/call.c:240


Catching `*jmp` flavours:

(gdb) break __pyx_pf_4sage_4libs_3gap_7element_19GapElement_Function_2__call__
(gdb) continue
...
(gdb) break __GI___sigsetjmp
(gdb) break longjmp
(gdb) break siglongjmp
(gdb) continue # a lot of them

(gdb) bt
#0  __GI___sigsetjmp () at ../sysdeps/x86_64/setjmp.S:33
#1  0x00007fc83e6e6ea4 in
__pyx_pf_4sage_4libs_3gap_7element_19GapElement_Function_2__call__
(__pyx_v_self=__pyx_v_self@entry=0x7fc83844f2c0,
    __pyx_v_args=__pyx_v_args@entry=(<sage.rings.integer.Integer at remote
0x7fc83e878de0>, <sage.rings.integer.Integer at remote 0x7fc8392b2790>,
<sage.rings.integer.Integer at remote 0x7fc8392b2730>))
    at
/usr/src/debug/sci-mathematics/sagemath-standard-10.3/sagemath-standard-10.3-python3_12/build/cythonized/sage/libs/gap/element.c:26315

(gdb) fr 1
#1  0x00007fc83e6e6ea4 in
__pyx_pf_4sage_4libs_3gap_7element_19GapElement_Function_2__call__
(__pyx_v_self=__pyx_v_self@entry=0x7fc83844f2c0,
    __pyx_v_args=__pyx_v_args@entry=(<sage.rings.integer.Integer at remote
0x7fc83e878de0>, <sage.rings.integer.Integer at remote 0x7fc8392b2790>,
<sage.rings.integer.Integer at remote 0x7fc8392b2730>))
    at
/usr/src/debug/sci-mathematics/sagemath-standard-10.3/sagemath-standard-10.3-python3_12/build/cythonized/sage/libs/gap/element.c:26315
26315       sig_GAP_Enter();
(gdb) disassemble
Dump of assembler code for function
__pyx_pf_4sage_4libs_3gap_7element_19GapElement_Function_2__call__:

   0x00007fc83e6e6e9f <+831>:   call   0x7fc83e6b54e0 <_setjmp@plt>
=> 0x00007fc83e6e6ea4 <+836>:   mov    $0x1,%ebx

That is a _setjmp at element.c:26315. ABORT happens after it.

Reply via email to