Bug#1002506: Sage crash report

Jean-Paul Vincent jpvincent1 at orange.fr
Thu Dec 23 13:01:02 GMT 2021


-- 
Jean-Paul Vincent
-------------- next part --------------
***************************************************************************

IPython post-mortem report

{'commit_hash': '<not found>',
 'commit_source': '(none found)',
 'default_encoding': 'utf-8',
 'ipython_path': '/usr/lib/python3/dist-packages/IPython',
 'ipython_version': '7.27.0',
 'os_name': 'posix',
 'platform': 'Linux-5.15.0-2-amd64-x86_64-with-glibc2.33',
 'sys_executable': '/usr/bin/python3',
 'sys_platform': 'linux',
 'sys_version': '3.9.9 (main, Dec 16 2021, 23:13:29) \n[GCC 11.2.0]'}

***************************************************************************



***************************************************************************

Crash traceback:

----------------------------------------------------------------------
----------------------------------------------------------------------
ImportError                             Python 3.9.9: /usr/bin/python3
                                              Thu Dec 23 12:51:59 2021
A problem occurred executing Python code.  Here is the sequence of function
calls leading up to the error, with the most recent (innermost) call last.
/usr/share/sagemath/bin/sage-ipython in <module>
      1 #!/usr/bin/env sage-python
      2 # -*- coding: utf-8 -*-
      3 """
      4 Sage IPython startup script.
      5 """
      6 
      7 # Display startup banner. Do this before anything else to give the user
      8 # early feedback that Sage is starting.
      9 from sage.misc.banner import banner
     10 banner()
     11 
     12 from sage.repl.interpreter import SageTerminalApp
     13 
     14 app = SageTerminalApp.instance()
---> 15 app.initialize()
        global app.initialize = <bound method TerminalIPythonApp.initialize of <sage.repl.interpreter.SageTerminalApp object at 0x7f5051cf2730>>
     16 app.start()

/usr/lib/python3/dist-packages/traitlets/config/application.py in inner(app=<sage.repl.interpreter.SageTerminalApp object>, *args=(), **kwargs={})
     73 else:
     74     raise ValueError("Unsupported value for environment variable: 'TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR' is set to '%s' which is none of  {'0', '1', 'false', 'true', ''}."% _envvar )
     75 
     76 
     77 def catch_config_error(method):
     78     """Method decorator for catching invalid config (Trait/ArgumentErrors) during init.
     79 
     80     On a TraitError (generally caused by bad config), this will print the trait's
     81     message, and exit the app.
     82 
     83     For use on init methods, to prevent invoking excepthook on invalid input.
     84     """
     85     @functools.wraps(method)
     86     def inner(app, *args, **kwargs):
     87         try:
---> 88             return method(app, *args, **kwargs)
        global method = undefined
        app = <sage.repl.interpreter.SageTerminalApp object at 0x7f5051cf2730>
        args = ()
        kwargs = {}
     89         except (TraitError, ArgumentError) as e:
     90             app.log.fatal("Bad config encountered during initialization: %s", e)
     91             app.log.debug("Config at the time: %s", app.config)
     92             app.exit(1)
     93 
     94     return inner
     95 
     96 class ApplicationError(Exception):
     97     pass
     98 
     99 
    100 class LevelFormatter(logging.Formatter):
    101     """Formatter with additional `highlevel` record
    102 
    103     This field is empty if log level is less than highlevel_limit,

/usr/lib/python3/dist-packages/IPython/terminal/ipapp.py in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
    302 
    303         return super(TerminalIPythonApp, self).parse_command_line(argv)
    304     
    305     @catch_config_error
    306     def initialize(self, argv=None):
    307         """Do actions after construct, but before starting the app."""
    308         super(TerminalIPythonApp, self).initialize(argv)
    309         if self.subapp is not None:
    310             # don't bother initializing further, starting subapp
    311             return
    312         # print self.extra_args
    313         if self.extra_args and not self.something_to_run:
    314             self.file_to_run = self.extra_args[0]
    315         self.init_path()
    316         # create the shell
--> 317         self.init_shell()
        self.init_shell = <bound method SageTerminalApp.init_shell of <sage.repl.interpreter.SageTerminalApp object at 0x7f5051cf2730>>
    318         # and draw the banner
    319         self.init_banner()
    320         # Now a variety of things that happen after the banner is printed.
    321         self.init_gui_pylab()
    322         self.init_extensions()
    323         self.init_code()
    324 
    325     def init_shell(self):
    326         """initialize the InteractiveShell instance"""
    327         # Create an InteractiveShell instance.
    328         # shell.display_banner should always be False for the terminal
    329         # based app, because we call shell.show_banner() by hand below
    330         # so the banner shows *before* all extension loading stuff.
    331         self.shell = self.interactive_shell_class.instance(parent=self,
    332                         profile_dir=self.profile_dir,

/usr/lib/python3/dist-packages/sage/repl/interpreter.py in init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
    776         self.shell.has_sage_extensions = SAGE_EXTENSION in self.extensions
    777 
    778         # Load the %lprun extension if available
    779         try:
    780             import line_profiler
    781         except ImportError:
    782             pass
    783         else:
    784             self.extensions.append('line_profiler')
    785 
    786         if self.shell.has_sage_extensions:
    787             self.extensions.remove(SAGE_EXTENSION)
    788 
    789             # load sage extension here to get a crash if
    790             # something is wrong with the sage library
--> 791             self.shell.extension_manager.load_extension(SAGE_EXTENSION)
        self.shell.extension_manager.load_extension = <bound method ExtensionManager.load_extension of <IPython.core.extensions.ExtensionManager object at 0x7f504e55b460>>
        global SAGE_EXTENSION = 'sage'
    792 
    793 

/usr/lib/python3/dist-packages/IPython/core/extensions.py in load_extension(self=<IPython.core.extensions.ExtensionManager object>, module_str='sage')
     72         if module_str in self.loaded:
     73             return "already loaded"
     74 
     75         from IPython.utils.syspathcontext import prepended_to_syspath
     76 
     77         with self.shell.builtin_trap:
     78             if module_str not in sys.modules:
     79                 with prepended_to_syspath(self.ipython_extension_dir):
     80                     mod = import_module(module_str)
     81                     if mod.__file__.startswith(self.ipython_extension_dir):
     82                         print(("Loading extensions from {dir} is deprecated. "
     83                                "We recommend managing extensions like any "
     84                                "other Python packages, in site-packages.").format(
     85                               dir=compress_user(self.ipython_extension_dir)))
     86             mod = sys.modules[module_str]
---> 87             if self._call_load_ipython_extension(mod):
        self._call_load_ipython_extension = <bound method ExtensionManager._call_load_ipython_extension of <IPython.core.extensions.ExtensionManager object at 0x7f504e55b460>>
        mod = <module 'sage' from '/usr/lib/python3/dist-packages/sage/__init__.py'>
     88                 self.loaded.add(module_str)
     89             else:
     90                 return "no load function"
     91 
     92     def unload_extension(self, module_str):
     93         """Unload an IPython extension by its module name.
     94 
     95         This function looks up the extension's name in ``sys.modules`` and
     96         simply calls ``mod.unload_ipython_extension(self)``.
     97         
     98         Returns the string "no unload function" if the extension doesn't define
     99         a function to unload itself, "not loaded" if the extension isn't loaded,
    100         otherwise None.
    101         """
    102         if module_str not in self.loaded:

/usr/lib/python3/dist-packages/IPython/core/extensions.py in _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager object>, mod=<module 'sage' from '/usr/lib/python3/dist-packages/sage/__init__.py'>)
    119         """
    120         from IPython.utils.syspathcontext import prepended_to_syspath
    121 
    122         if (module_str in self.loaded) and (module_str in sys.modules):
    123             self.unload_extension(module_str)
    124             mod = sys.modules[module_str]
    125             with prepended_to_syspath(self.ipython_extension_dir):
    126                 reload(mod)
    127             if self._call_load_ipython_extension(mod):
    128                 self.loaded.add(module_str)
    129         else:
    130             self.load_extension(module_str)
    131 
    132     def _call_load_ipython_extension(self, mod):
    133         if hasattr(mod, 'load_ipython_extension'):
--> 134             mod.load_ipython_extension(self.shell)
        mod.load_ipython_extension = <function load_ipython_extension at 0x7f5051c4c0d0>
        self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f50503fafd0>
    135             return True
    136 
    137     def _call_unload_ipython_extension(self, mod):
    138         if hasattr(mod, 'unload_ipython_extension'):
    139             mod.unload_ipython_extension(self.shell)
    140             return True
    141 
    142     @undoc
    143     def install_extension(self, url, filename=None):
    144         """
    145         Deprecated.
    146         """
    147         # Ensure the extension directory exists
    148         raise DeprecationWarning(
    149             '`install_extension` and the `install_ext` magic have been deprecated since IPython 4.0'

/usr/lib/python3/dist-packages/sage/__init__.py in load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,))
      1 __all__ = ['all']
      2 
      3 # Set sage.__version__ to the current version number. This is analogous
      4 # to many other Python packages.
      5 from sage.version import version as __version__
      6 
      7 import sys
      8 # Make sure that the correct zlib library is loaded. This is needed
      9 # to prevent the system zlib to be loaded instead of the Sage one.
     10 # See https://trac.sagemath.org/ticket/23122
     11 import zlib
     12 
     13 # IPython calls this when starting up
     14 def load_ipython_extension(*args):
     15     import sage.repl.ipython_extension
---> 16     sage.repl.ipython_extension.load_ipython_extension(*args)
        sage.repl.ipython_extension.load_ipython_extension = <function load_ipython_extension at 0x7f504e3238b0>
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f50503fafd0>,)
     17 
     18 
     19 # Monkey-patch inspect.isfunction() to support Cython functions.
     20 def isfunction(obj):
     21     """
     22     Check whether something is a function.
     23 
     24     We assume that anything which has a genuine ``__code__``
     25     attribute (not using ``__getattr__`` overrides) is a function.
     26     This is meant to support Cython functions.
     27 
     28     EXAMPLES::
     29 
     30         sage: from inspect import isfunction
     31         sage: def f(): pass

/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,), **kwargs={})
    548         ....:     if work:
    549         ....:         return 'foo worked'
    550         ....:     raise RuntimeError("foo didn't work")
    551         sage: foo(False)
    552         Traceback (most recent call last):
    553         ...
    554         RuntimeError: foo didn't work
    555         sage: foo(True)
    556         'foo worked'
    557         sage: foo(False)
    558         sage: foo(True)
    559     """
    560     @wraps(func)
    561     def wrapper(*args, **kwargs):
    562         if not wrapper.has_run:
--> 563             result = func(*args, **kwargs)
        result = undefined
        global func = undefined
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f50503fafd0>,)
        kwargs = {}
    564             wrapper.has_run = True
    565             return result
    566     wrapper.has_run = False
    567     return wrapper
    568 
    569 
    570 @run_once
    571 def load_ipython_extension(ip):
    572     """
    573     Load the extension in IPython.
    574     """
    575     # this modifies ip
    576     SageCustomizations(shell=ip)

/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
    561     def wrapper(*args, **kwargs):
    562         if not wrapper.has_run:
    563             result = func(*args, **kwargs)
    564             wrapper.has_run = True
    565             return result
    566     wrapper.has_run = False
    567     return wrapper
    568 
    569 
    570 @run_once
    571 def load_ipython_extension(ip):
    572     """
    573     Load the extension in IPython.
    574     """
    575     # this modifies ip
--> 576     SageCustomizations(shell=ip)
        global SageCustomizations = <class 'sage.repl.ipython_extension.SageCustomizations'>
        global shell = undefined
        ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f50503fafd0>

/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in __init__(self=<sage.repl.ipython_extension.SageCustomizations object>, shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
    420     def __init__(self, shell=None):
    421         """
    422         Initialize the Sage plugin.
    423         """
    424         self.shell = shell
    425 
    426         self.auto_magics = SageMagics(shell)
    427         self.shell.register_magics(self.auto_magics)
    428 
    429         import sage.misc.edit_module as edit_module
    430         self.shell.set_hook('editor', edit_module.edit_devel)
    431 
    432         self.init_inspector()
    433         self.init_line_transforms()
    434 
--> 435         import sage.all # until sage's import hell is fixed
        sage.all = undefined
    436 
    437         self.shell.verbose_quit = True
    438         self.set_quit_hook()
    439 
    440         self.register_interface_magics()
    441 
    442         if SAGE_IMPORTALL == 'yes':
    443             self.init_environment()
    444 
    445     def register_interface_magics(self):
    446         """
    447         Register magics for each of the Sage interfaces
    448         """
    449         from sage.repl.interface_magic import InterfaceMagic
    450         InterfaceMagic.register_all(self.shell)

/usr/lib/python3/dist-packages/sage/all.py in <module>
    123 from functools import reduce  # in order to keep reduce in python3
    124 
    125 import sage.misc.lazy_import
    126 
    127 from sage.misc.all       import *         # takes a while
    128 from sage.typeset.all    import *
    129 from sage.repl.all       import *
    130 
    131 from sage.misc.sh import sh
    132 
    133 from sage.libs.all       import *
    134 from sage.data_structures.all import *
    135 from sage.doctest.all    import *
    136 
    137 from sage.structure.all  import *
--> 138 from sage.rings.all      import *
        global sage.rings.all = undefined
    139 from sage.arith.all      import *
    140 from sage.matrix.all     import *
    141 
    142 from sage.symbolic.all   import *
    143 from sage.modules.all    import *
    144 from sage.monoids.all    import *
    145 from sage.algebras.all   import *
    146 from sage.modular.all    import *
    147 from sage.sat.all        import *
    148 from sage.schemes.all    import *
    149 from sage.graphs.all     import *
    150 from sage.groups.all     import *
    151 from sage.arith.power    import generic_power as power
    152 from sage.databases.all  import *
    153 from sage.categories.all import *

/usr/lib/python3/dist-packages/sage/rings/all.py in <module>
     68 # Semirings
     69 from .semirings.all import *
     70 
     71 # Real numbers
     72 from .real_mpfr import (RealField, RR,
     73                        create_RealNumber as RealNumber)   # this is used by the preparser to wrap real literals -- very important.
     74 Reals = RealField
     75 
     76 from .real_double import RealDoubleField, RDF, RealDoubleElement
     77 
     78 from .real_lazy import RealLazyField, RLF, ComplexLazyField, CLF
     79 
     80 from sage.rings.real_arb import RealBallField, RBF
     81 
     82 # Polynomial Rings and Polynomial Quotient Rings
---> 83 from .polynomial.all import *
        global polynomial.all = undefined
     84 
     85 
     86 # Algebraic numbers
     87 from .qqbar import (AlgebraicRealField, AA,
     88                    AlgebraicReal,
     89                    AlgebraicField, QQbar,
     90                    AlgebraicNumber,
     91                    number_field_elements_from_algebraics)
     92 from .universal_cyclotomic_field import UniversalCyclotomicField, E
     93 
     94 # Intervals
     95 from .real_mpfi import (RealIntervalField,
     96                        RIF,
     97                        RealInterval)
     98 

/usr/lib/python3/dist-packages/sage/rings/polynomial/all.py in <module>
     27 from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
     28 from sage.rings.polynomial.polynomial_ring import polygen, polygens
     29 from sage.rings.polynomial.polynomial_element import Polynomial
     30 
     31 # Multivariate Polynomial Rings
     32 from sage.rings.polynomial.term_order import TermOrder
     33 from sage.rings.polynomial.multi_polynomial_element import degree_lowest_rational_function
     34 
     35 # Generic convolution
     36 from sage.rings.polynomial.convolution import convolution
     37 
     38 # Boolean Polynomial Rings
     39 from sage.rings.polynomial.polynomial_ring_constructor import BooleanPolynomialRing_constructor as BooleanPolynomialRing
     40 
     41 # Laurent Polynomial Rings
---> 42 from sage.rings.polynomial.laurent_polynomial_ring import LaurentPolynomialRing
        global sage.rings.polynomial.laurent_polynomial_ring = undefined
        global LaurentPolynomialRing = undefined
     43 lazy_import('sage.rings.polynomial.omega', 'MacMahonOmega')
     44 
     45 # Infinite Polynomial Rings
     46 from sage.rings.polynomial.infinite_polynomial_ring import InfinitePolynomialRing
     47 
     48 # Ore Polynomial Rings
     49 lazy_import('sage.rings.polynomial.ore_polynomial_ring', 'OrePolynomialRing')
     50 SkewPolynomialRing = OrePolynomialRing
     51 
     52 # Evaluation of cyclotomic polynomials
     53 from sage.rings.polynomial.cyclotomic import cyclotomic_value
     54 

/usr/lib/python3/dist-packages/sage/rings/polynomial/laurent_polynomial_ring.py in <module>
     36 #                          Vincent Delecroix <20100.delecroix at gmail.com>
     37 #
     38 # This program is free software: you can redistribute it and/or modify
     39 # it under the terms of the GNU General Public License as published by
     40 # the Free Software Foundation, either version 2 of the License, or
     41 # (at your option) any later version.
     42 #                  https://www.gnu.org/licenses/
     43 # ****************************************************************************
     44 from __future__ import absolute_import
     45 
     46 from sage.structure.element import parent
     47 from sage.structure.parent import Parent
     48 from sage.rings.infinity import infinity
     49 from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
     50 from sage.misc.latex import latex
---> 51 from sage.rings.polynomial.laurent_polynomial import LaurentPolynomial_mpair, LaurentPolynomial_univariate
        global sage.rings.polynomial.laurent_polynomial = undefined
        global LaurentPolynomial_mpair = undefined
        global LaurentPolynomial_univariate = undefined
     52 from sage.rings.ring import CommutativeRing
     53 
     54 import sage.rings.polynomial.laurent_polynomial_ideal as lp_ideal
     55 
     56 def is_LaurentPolynomialRing(R):
     57     """
     58     Returns True if and only if R is a Laurent polynomial ring.
     59 
     60     EXAMPLES::
     61 
     62         sage: from sage.rings.polynomial.laurent_polynomial_ring import is_LaurentPolynomialRing
     63         sage: P = PolynomialRing(QQ,2,'x')
     64         sage: is_LaurentPolynomialRing(P)
     65         False
     66 

/usr/lib/python3/dist-packages/sage/rings/polynomial/laurent_polynomial.pyx in init sage.rings.polynomial.laurent_polynomial (build/cythonized/sage/rings/polynomial/laurent_polynomial.c:40756)()
----> 1 r"""
      2 Elements of Laurent polynomial rings
      3 """
      4 
      5 # ****************************************************************************
      6 # This program is free software: you can redistribute it and/or modify
      7 # it under the terms of the GNU General Public License as published by
      8 # the Free Software Foundation, either version 2 of the License, or
      9 # (at your option) any later version.
     10 #                  https://www.gnu.org/licenses/
     11 # ****************************************************************************
     12 
     13 from sage.rings.integer cimport Integer
     14 from sage.categories.map cimport Map
     15 from sage.structure.element import is_Element, coerce_binop
     16 from sage.misc.misc import union
     17 from sage.structure.factorization import Factorization
     18 from sage.misc.derivative import multi_derivative
     19 from sage.rings.polynomial.polynomial_element import Polynomial
     20 from sage.rings.polynomial.polynomial_ring import is_PolynomialRing
     21 from sage.structure.richcmp cimport richcmp, rich_to_bool
     22 from sage.matrix.matrix0 cimport Matrix
     23 
     24 cdef class LaurentPolynomial(CommutativeAlgebraElement):
     25     """
     26     Base class for Laurent polynomials.
     27     """
     28     cdef LaurentPolynomial _new_c(self):
     29         """
     30         Return a new Laurent polynomial.
     31 

/usr/lib/python3/dist-packages/sage/matrix/__init__.py in <module>
      1 # Resolve a cyclic import
----> 2 import sage.matrix.args
        global sage.matrix.args = undefined

/usr/lib/python3/dist-packages/sage/matrix/args.pyx in init sage.matrix.args (build/cythonized/sage/matrix/args.c:21561)()
      8 #       Copyright (C) 2018 Jeroen Demeyer <J.Demeyer at UGent.be>
      9 #
     10 # This program is free software: you can redistribute it and/or modify
     11 # it under the terms of the GNU General Public License as published by
     12 # the Free Software Foundation, either version 2 of the License, or
     13 # (at your option) any later version.
     14 #                  http://www.gnu.org/licenses/
     15 #*****************************************************************************
     16 
     17 cimport cython
     18 from cpython.sequence cimport PySequence_Fast
     19 from cysignals.signals cimport sig_check
     20 from cypari2.gen cimport Gen
     21 from cypari2.types cimport typ, t_MAT, t_VEC, t_COL, t_VECSMALL, t_LIST, t_STR, t_CLOSURE
     22 
---> 23 from .matrix_space import MatrixSpace
        global matrix_space = undefined
        global MatrixSpace = undefined
     24 from sage.rings.integer_ring import ZZ
     25 from sage.rings.real_double import RDF
     26 from sage.rings.complex_double import CDF
     27 from sage.structure.coerce cimport (coercion_model,
     28         is_numpy_type, py_scalar_parent)
     29 from sage.structure.element cimport Element, RingElement, Vector
     30 from sage.arith.long cimport pyobject_to_long
     31 from sage.misc.misc_c import sized_iter
     32 from sage.categories import monoids
     33 
     34 
     35 CommutativeMonoids = monoids.Monoids().Commutative()
     36 
     37 
     38 cdef inline bint element_is_scalar(Element x):

/usr/lib/python3/dist-packages/sage/matrix/matrix_space.py in <module>
     29 # it under the terms of the GNU General Public License as published by
     30 # the Free Software Foundation, either version 2 of the License, or
     31 # (at your option) any later version.
     32 #                  https://www.gnu.org/licenses/
     33 # ****************************************************************************
     34 from __future__ import print_function, absolute_import
     35 
     36 # System imports
     37 import sys
     38 import operator
     39 
     40 # Sage matrix imports
     41 from . import matrix_generic_dense
     42 from . import matrix_generic_sparse
     43 
---> 44 from . import matrix_modn_sparse
        global matrix_modn_sparse = undefined
     45 
     46 from . import matrix_mod2_dense
     47 from . import matrix_gf2e_dense
     48 
     49 from . import matrix_integer_dense
     50 from . import matrix_integer_sparse
     51 
     52 from . import matrix_rational_dense
     53 from . import matrix_rational_sparse
     54 
     55 from . import matrix_polynomial_dense
     56 from . import matrix_mpolynomial_dense
     57 
     58 # Sage imports
     59 import sage.structure.coerce

ImportError: /usr/lib/python3/dist-packages/sage/matrix/matrix_modn_sparse.cpython-39-x86_64-linux-gnu.so: undefined symbol: _ZNK6Givaro7IntegercvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEB5cxx11Ev

***************************************************************************

History of session input:
*** Last line of input (may not be in above history):


More information about the debian-science-maintainers mailing list