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" "$@"