I think I've found a bug in Sage's interface to Magma: Attempting to coerce 
a Magma element into a Python boolean causes Sage to crash with a stack 
overflow error.

To reproduce, start Sage and run the following line of code (note: the same 
bug also seems to occur if magma(True) is replaced with any other Magma 
element):
bool(magma(True))

Expected result: the expression evaluates to the boolean value True, or at 
worst raises a sensible exception in Python.

Actual result: Python crashes with the message "Fatal Python error: 
_Py_CheckRecursiveCall: Cannot recover from stack overflow." I've attached 
a copy-paste of a complete Sage session where this occurred.

I am running Sage 9.4, using Python 3.9.5, and Magma V2.26-5. My operating 
system is macOS 10.5.7 running on a 64-bit Intel Core i7 processor with 16 
GB of RAM.

Does this look like a bug in Sage or in Magma? And if it's a bug in Sage 
and isn't already reported, how would I go about reporting it?

Thanks,
Daniel Hast

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/0355e7ee-1a00-4479-b8df-d62e2fc2e0f2n%40googlegroups.com.
% sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.4, Release Date: 2021-08-22                     │
│ Using Python 3.9.5. Type "help()" for help.                        │
└────────────────────────────────────────────────────────────────────┘
sage: bool(magma(True))                                                         
Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow.
Python runtime state: initialized

Thread 0x000070000dc28000 (most recent call first):
  File "/var/tmp/sage-9.4-current/local/lib/python3.9/threading.py", line 312 
in wait
  File "/var/tmp/sage-9.4-current/local/lib/python3.9/threading.py", line 574 
in wait
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/IPython/core/history.py",
 line 829 in run
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/IPython/core/history.py",
 line 58 in needs_sqlite
  File "<decorator-gen-24>", line 2 in run
  File "/var/tmp/sage-9.4-current/local/lib/python3.9/threading.py", line 954 
in _bootstrap_inner
  File "/var/tmp/sage-9.4-current/local/lib/python3.9/threading.py", line 912 
in _bootstrap

Current thread 0x000000011cd35dc0 (most recent call first):
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/pexpect/expect.py",
 line 358 in search
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/pexpect/expect.py",
 line 23 in do_search
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/pexpect/expect.py",
 line 70 in existing_data
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/pexpect/expect.py",
 line 161 in expect_loop
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/pexpect/spawnbase.py",
 line 372 in expect_list
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/pexpect/spawnbase.py",
 line 343 in expect
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/expect.py",
 line 983 in _eval_line
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/expect.py",
 line 1381 in <listcomp>
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/expect.py",
 line 1381 in eval
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 558 in eval
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 1080 in _next_var_name
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 512 in _create
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/expect.py",
 line 1469 in __init__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 295 in __call__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 791 in __call__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2631 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/interface.py",
 line 1308 in bool
  File 
"/var/tmp/sage-9.4-current/local/lib/python3.9/site-packages/sage/interfaces/magma.py",
 line 2635 in __bool__
  ...
------------------------------------------------------------------------
(no backtrace available)
------------------------------------------------------------------------
Unhandled SIGABRT: An abort() occurred.
This probably occurred because a *compiled* module has a bug
in it and is not properly wrapped with sig_on(), sig_off().
Python will now terminate.
------------------------------------------------------------------------
/usr/local/bin/sage: line 19: 64259 Abort trap: 6           
"$SYMLINK/local/bin/sage" "$@"

Reply via email to