Same circumstances as in the previous case : on Debian testing running on core i7 + 16 GB RAM, after upgrading Sage 9.5.beta7 compiled from a git tree to 9.5.beta8, Sage crashes at startup. Crash report enclosed
I'll try the same steps as in the last occurrence... -- Emmanuel Charpentier -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/14e68240fe2d60a5c5e1b718b0c3d1d1e6eb13a1.camel%40free.fr.
*************************************************************************** IPython post-mortem report {'commit_hash': 'd6d0edce10', 'commit_source': 'installation', 'default_encoding': 'utf-8', 'ipython_path': '/usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-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/local/sage-9/local/var/lib/sage/venv-python3.9/bin/python3', 'sys_platform': 'linux', 'sys_version': '3.9.9 (main, Nov 16 2021, 10:24:31) \n[GCC 11.2.0]'} *************************************************************************** *************************************************************************** Crash traceback: --------------------------------------------------------------------------- --------------------------------------------------------------------------- ImportErrorPython 3.9.9: /usr/local/sage-9/local/var/lib/sage/venv-python3.9/bin/python3 Sat Dec 18 10:31:33 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/local/sage-9/src/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 0x7f68d3227760>> 16 app.start() /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-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 0x7f68d3227760> 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/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-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 0x7f68d3227760>> 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/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/repl/interpreter.py in init_shell(self=<sage.repl.interpreter.SageTerminalApp object>) 774 775 # Load the %lprun extension if available 776 try: 777 import line_profiler 778 assert line_profiler # silence pyflakes 779 except ImportError: 780 pass 781 else: 782 self.extensions.append('line_profiler') 783 784 if self.shell.has_sage_extensions: 785 self.extensions.remove(SAGE_EXTENSION) 786 787 # load sage extension here to get a crash if 788 # something is wrong with the sage library --> 789 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 0x7f68cb0ed550>> global SAGE_EXTENSION = 'sage' /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-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 0x7f68cb0ed550>> mod = <module 'sage' from '/usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-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/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/IPython/core/extensions.py in _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager object>, mod=<module 'sage' from '/usr/local/sage-9/local/var....9/lib/python3.9/site-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 0x7f68d312dca0> self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f68d19983a0> 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/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/repl/__init__.py in load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,)) 1 # IPython calls this when "%load_ext sage.repl" is used. 2 # The Sage application loads it when starting up. 3 def load_ipython_extension(*args): 4 import sage.repl.ipython_extension ----> 5 sage.repl.ipython_extension.load_ipython_extension(*args) sage.repl.ipython_extension.load_ipython_extension = <function load_ipython_extension at 0x7f68cae669d0> args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f68d19983a0>,) 6 7 8 # The above used to be in sage.__init__, allowing users to use "%load_ext sage". 9 # But we are clearing out the __init__.py file as a preparation for 10 # making sage a native namespace package. 11 # 12 # So we make "%load_ext sage" work by monkey-patching the function 13 # into the sage package upon importing sage.repl. 14 import sage 15 sage.load_ipython_extension = load_ipython_extension /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/repl/ipython_extension.py in wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,), **kwargs={}) 602 ....: if work: 603 ....: return 'foo worked' 604 ....: raise RuntimeError("foo didn't work") 605 sage: foo(False) 606 Traceback (most recent call last): 607 ... 608 RuntimeError: foo didn't work 609 sage: foo(True) 610 'foo worked' 611 sage: foo(False) 612 sage: foo(True) 613 """ 614 @wraps(func) 615 def wrapper(*args, **kwargs): 616 if not wrapper.has_run: --> 617 result = func(*args, **kwargs) result = undefined global func = undefined args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f68d19983a0>,) kwargs = {} 618 wrapper.has_run = True 619 return result 620 wrapper.has_run = False 621 return wrapper 622 623 624 @run_once 625 def load_ipython_extension(ip): 626 """ 627 Load the extension in IPython. 628 """ 629 # this modifies ip 630 SageCustomizations(shell=ip) /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/repl/ipython_extension.py in load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell object>) 615 def wrapper(*args, **kwargs): 616 if not wrapper.has_run: 617 result = func(*args, **kwargs) 618 wrapper.has_run = True 619 return result 620 wrapper.has_run = False 621 return wrapper 622 623 624 @run_once 625 def load_ipython_extension(ip): 626 """ 627 Load the extension in IPython. 628 """ 629 # this modifies ip --> 630 SageCustomizations(shell=ip) global SageCustomizations = <class 'sage.repl.ipython_extension.SageCustomizations'> global shell = undefined ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f68d19983a0> /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/repl/ipython_extension.py in __init__(self=<sage.repl.ipython_extension.SageCustomizations object>, shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>) 419 def __init__(self, shell=None): 420 """ 421 Initialize the Sage plugin. 422 """ 423 self.shell = shell 424 425 self.auto_magics = SageMagics(shell) 426 self.shell.register_magics(self.auto_magics) 427 428 import sage.misc.edit_module as edit_module 429 self.shell.set_hook('editor', edit_module.edit_devel) 430 431 self.init_inspector() 432 self.init_line_transforms() 433 --> 434 import sage.all # until sage's import hell is fixed sage.all = undefined 435 436 self.shell.verbose_quit = True 437 self.set_quit_hook() 438 439 self.register_interface_magics() 440 441 if SAGE_IMPORTALL == 'yes': 442 self.init_environment() 443 444 def register_interface_magics(self): 445 """ 446 Register magics for each of the Sage interfaces 447 """ 448 from sage.repl.interface_magic import InterfaceMagic 449 InterfaceMagic.register_all(self.shell) /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/all.py in <module> 107 from functools import reduce # in order to keep reduce in python3 108 109 import sage.misc.lazy_import 110 111 from sage.misc.all import * # takes a while 112 from sage.typeset.all import * 113 from sage.repl.all import * 114 115 from sage.misc.sh import sh 116 117 from sage.libs.all import * 118 from sage.data_structures.all import * 119 from sage.doctest.all import * 120 121 from sage.structure.all import * --> 122 from sage.rings.all import * global sage.rings.all = undefined 123 from sage.arith.all import * 124 from sage.matrix.all import * 125 126 from sage.symbolic.all import * 127 from sage.modules.all import * 128 from sage.monoids.all import * 129 from sage.algebras.all import * 130 from sage.modular.all import * 131 from sage.sat.all import * 132 from sage.schemes.all import * 133 from sage.graphs.all import * 134 from sage.groups.all import * 135 from sage.arith.power import generic_power as power 136 from sage.databases.all import * 137 from sage.categories.all import * /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/all.py in <module> 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 * 84 85 86 # Algebraic numbers ---> 87 from .qqbar import (AlgebraicRealField, AA, global qqbar = undefined global AlgebraicRealField = undefined global AA = undefined global AlgebraicReal = undefined global AlgebraicField = undefined global QQbar = undefined global AlgebraicNumber = undefined global number_field_elements_from_algebraics = undefined 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 99 # Complex numbers 100 from .complex_mpfr import ComplexField 101 from .complex_mpfr import create_ComplexNumber as ComplexNumber 102 Complexes = ComplexField /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/qqbar.py in <module> 2723 2724 if single_number: 2725 nums = nums[0] 2726 2727 if same_field: 2728 hom = fld.hom([exact_generator], codomain=algebraic_field) 2729 2730 return (fld, nums, hom) 2731 2732 2733 # Cache some commonly-used polynomial rings 2734 QQx = QQ['x'] 2735 QQx_x = QQx.gen() 2736 QQy = QQ['y'] 2737 QQy_y = QQy.gen() -> 2738 QQxy = QQ['x', 'y'] global QQxy = undefined global QQ = Rational Field 2739 QQxy_x = QQxy.gen(0) 2740 QQxy_y = QQxy.gen(1) 2741 2742 2743 def cmp_elements_with_same_minpoly(a, b, p): 2744 r""" 2745 Compare the algebraic elements ``a`` and ``b`` knowing that they have the 2746 same minimal polynomial ``p``. 2747 2748 This is an helper function for comparison of algebraic elements (i.e. the 2749 methods :meth:`AlgebraicNumber._richcmp_` and 2750 :meth:`AlgebraicReal._richcmp_`). 2751 2752 INPUT: 2753 /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/structure/parent.pyx in sage.structure.parent.Parent.__getitem__ (build/cythonized/sage/structure/parent.c:11409)() 1261 sage: class A(Parent): 1262 ....: def __init__(self): 1263 ....: Parent.__init__(self, category=As()) 1264 sage: a = A() 1265 sage: a[1] 1266 'coucou' 1267 """ 1268 try: 1269 meth = super(Parent, self).__getitem__ 1270 except AttributeError: 1271 # needed when self is a Cython object 1272 try: 1273 meth = self.getattr_from_category('__getitem__') 1274 except AttributeError: 1275 return self.list()[n] -> 1276 return meth(n) global meth = undefined global n = undefined 1277 1278 ######################################################################### 1279 # Generators and Homomorphisms 1280 ######################################################################### 1281 1282 def _is_valid_homomorphism_(self, codomain, im_gens, base_map=None): 1283 r""" 1284 Return True if ``im_gens`` defines a valid homomorphism 1285 from self to codomain; otherwise return False. 1286 1287 If determining whether or not a homomorphism is valid has not 1288 been implemented for this ring, then a NotImplementedError exception 1289 is raised. 1290 """ 1291 raise NotImplementedError("Verification of correctness of homomorphisms from %s not yet implemented." % self) /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/categories/rings.py in __getitem__(self=Rational Field, arg=('x', 'y')) 1161 and elt.imag().is_zero()): 1162 emb = RLF(elt) 1163 else: 1164 emb = CLF(elt) 1165 return self.extension(minpolys[0], names[0], embedding=emb) 1166 try: 1167 # Doing the extension all at once is best, if possible... 1168 return self.extension(minpolys, names) 1169 except (TypeError, ValueError): 1170 # ...but we can also construct it iteratively 1171 return reduce(lambda R, ext: R.extension(*ext), zip(minpolys, names), self) 1172 1173 # 2. Otherwise, try to return a polynomial ring 1174 1175 from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -> 1176 return PolynomialRing(self, elts) PolynomialRing = <function PolynomialRing at 0x7f68d1f701f0> self = Rational Field elts = ('x', 'y') 1177 1178 def free_module(self, base=None, basis=None, map=True): 1179 """ 1180 Return a free module `V` over the specified subring together with maps to and from `V`. 1181 1182 The default implementation only supports the case that the base ring is the ring itself. 1183 1184 INPUT: 1185 1186 - ``base`` -- a subring `R` so that this ring is isomorphic 1187 to a finite-rank free `R`-module `V` 1188 1189 - ``basis`` -- (optional) a basis for this ring over the base 1190 1191 - ``map`` -- boolean (default ``True``), whether to return /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py in PolynomialRing(base_ring=Rational Field, *args=(('x', 'y'),), **kwds={}) 632 names = normalize_names(n, names) 633 634 # At this point, we have only handled the "names" keyword if it was 635 # needed. Since we know the variable names, it would logically be 636 # an error to specify an additional "names" keyword. However, 637 # people often abuse the preparser with 638 # R.<x> = PolynomialRing(QQ, 'x') 639 # and we allow this for historical reasons. However, the names 640 # must be consistent! 641 if "names" in kwds: 642 kwnames = kwds.pop("names") 643 if kwnames != names: 644 raise TypeError("variable names specified twice inconsistently: %r and %r" % (names, kwnames)) 645 646 if multivariate or len(names) != 1: --> 647 return _multi_variate(base_ring, names, **kwds) global _multi_variate = <function _multi_variate at 0x7f6881964820> base_ring = Rational Field global names = undefined kwds = {} 648 else: 649 return _single_variate(base_ring, names, **kwds) 650 651 652 def unpickle_PolynomialRing(base_ring, arg1=None, arg2=None, sparse=False): 653 """ 654 Custom unpickling function for polynomial rings. 655 656 This has the same positional arguments as the old 657 ``PolynomialRing`` constructor before :trac:`23338`. 658 """ 659 args = [arg for arg in (arg1, arg2) if arg is not None] 660 return PolynomialRing(base_ring, *args, sparse=sparse) 661 662 from sage.misc.persist import register_unpickle_override /usr/local/sage-9/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py in _multi_variate(base_ring=Rational Field, names=('x', 'y'), sparse=True, order=Degree reverse lexicographic term order, implementation=None) 760 from sage.rings.polynomial.term_order import TermOrder 761 n = len(names) 762 order = TermOrder(order, n) 763 764 # "implementation" must be last 765 key = [base_ring, names, n, order, implementation] 766 R = _get_from_cache(key) 767 if R is not None: 768 return R 769 770 # Multiple arguments for the "implementation" keyword which actually 771 # yield the same implementation. We need this for caching. 772 implementation_names = set([implementation]) 773 774 if implementation is None or implementation == "singular": --> 775 from sage.rings.polynomial.multi_polynomial_libsingular import MPolynomialRing_libsingular global sage.rings.polynomial.multi_polynomial_libsingular = undefined MPolynomialRing_libsingular = undefined 776 try: 777 R = MPolynomialRing_libsingular(base_ring, n, names, order) 778 except (TypeError, NotImplementedError): 779 if implementation is not None: 780 raise 781 else: 782 implementation_names.update([None, "singular"]) 783 784 if R is None and implementation is None: 785 # Interpret implementation=None as implementation="generic" 786 implementation = "generic" 787 implementation_names.add(implementation) 788 key[-1] = implementation 789 R = _get_from_cache(key) 790 ImportError: libflint-2.8.2.so: cannot open shared object file: No such file or directory *************************************************************************** History of session input: *** Last line of input (may not be in above history):