'Sage Crash Report

39 views
Skip to first unread message

Lee Duke

unread,
Oct 6, 2017, 11:34:09 AM10/6/17
to sage-s...@googlegroups.com
***************************************************************************

IPython post-mortem report

{'commit_hash': u'5c9c918',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/usr/lib64/sagemath/site-packages/IPython',
 'ipython_version': '5.1.0',
 'os_name': 'posix',
 'platform':
'Linux-4.12.9-300.fc26.x86_64-x86_64-with-fedora-26-Twenty_Six',
 'sys_executable': '/usr/lib64/sagemath/local/bin/python',
 'sys_platform': 'linux2',
 'sys_version': '2.7.13 (default, Sep  5 2017, 08:53:59) \n[GCC 7.1.1
20170622 (Red Hat 7.1.1-3)]'}

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



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

Crash traceback:

---------------------------------------------------------------------------
---------------------------------------------------------------------------
ImportError             Python 2.7.13: /usr/lib64/sagemath/local/bin/python
                                                   Fri Oct  6 11:28:35 2017
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/lib64/sagemath/local/bin/sage-ipython in <module>()
      1 #!/usr/bin/env python
      2 # -*- coding: utf-8 -*-
      3 """
      4 Sage IPython startup script.
      5 """
      6
      7 from sage.repl.interpreter import SageTerminalApp
      8
      9 app = SageTerminalApp.instance()
---> 10 app.initialize()
        global app.initialize = <bound method
SageTerminalApp.initialize of <sage.repl.interpreter.SageTerminalApp
object at 0x7f9a675e1290>>
     11 app.start()

<decorator-gen-109> in
initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)

/usr/lib/python2.7/site-packages/traitlets/config/application.pyc in
catch_config_error(method=<function initialize>,
app=<sage.repl.interpreter.SageTerminalApp object>, *args=(None,),
**kwargs={})
     72     TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR = False
     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 @decorator
     78 def catch_config_error(method, app, *args, **kwargs):
     79     """Method decorator for catching invalid config
(Trait/ArgumentErrors) during init.
     80
     81     On a TraitError (generally caused by bad config), this will
print the trait's
     82     message, and exit the app.
     83
     84     For use on init methods, to prevent invoking excepthook on
invalid input.
     85     """
     86     try:
---> 87         return method(app, *args, **kwargs)
        method = <function initialize at 0x7f9a597d7578>
        app = <sage.repl.interpreter.SageTerminalApp object at
0x7f9a675e1290>
        args = (None,)
        kwargs = {}
     88     except (TraitError, ArgumentError) as e:
     89         app.print_help()
     90         app.log.fatal("Bad config encountered during
initialization:")
     91         app.log.fatal(str(e))
     92         app.log.debug("Config at the time: %s", app.config)
     93         app.exit(1)
     94
     95
     96 class ApplicationError(Exception):
     97     pass
     98
     99
    100 class LevelFormatter(logging.Formatter):
    101     """Formatter with additional `highlevel` record
    102

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

/usr/lib64/python2.7/site-packages/sage/repl/interpreter.pyc in
init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
    747         self.shell.has_sage_extensions = SAGE_EXTENSION in
self.extensions
    748
    749         # Load the %lprun extension if available
    750         try:
    751             import line_profiler
    752         except ImportError:
    753             pass
    754         else:
    755             self.extensions.append('line_profiler')
    756
    757         if self.shell.has_sage_extensions:
    758             self.extensions.remove(SAGE_EXTENSION)
    759
    760             # load sage extension here to get a crash if
    761             # something is wrong with the sage library
--> 762 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 0x7f9a58657a10>>
        global SAGE_EXTENSION = 'sage'
    763
    764

/usr/lib64/sagemath/site-packages/IPython/core/extensions.pyc in
load_extension(self=<IPython.core.extensions.ExtensionManager object>,
module_str='sage')
     70
     71         Returns the string "already loaded" if the extension is
already loaded,
     72         "no load function" if the module doesn't have a
load_ipython_extension
     73         function, or None if it succeeded.
     74         """
     75         if module_str in self.loaded:
     76             return "already loaded"
     77
     78         from IPython.utils.syspathcontext import
prepended_to_syspath
     79
     80         with self.shell.builtin_trap:
     81             if module_str not in sys.modules:
     82                 with
prepended_to_syspath(self.ipython_extension_dir):
     83                     __import__(module_str)
     84             mod = sys.modules[module_str]
---> 85             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 0x7f9a58657a10>>
        mod = <module 'sage' from
'/usr/lib64/python2.7/site-packages/sage/__init__.pyc'>
     86                 self.loaded.add(module_str)
     87             else:
     88                 return "no load function"
     89
     90     def unload_extension(self, module_str):
     91         """Unload an IPython extension by its module name.
     92
     93         This function looks up the extension's name in
``sys.modules`` and
     94         simply calls ``mod.unload_ipython_extension(self)``.
     95
     96         Returns the string "no unload function" if the
extension doesn't define
     97         a function to unload itself, "not loaded" if the
extension isn't loaded,
     98         otherwise None.
     99         """
    100         if module_str not in self.loaded:

/usr/lib64/sagemath/site-packages/IPython/core/extensions.pyc in
_call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager
object>, mod=<module 'sage' from
'/usr/lib64/python2.7/site-packages/sage/__init__.pyc'>)
    117         """
    118         from IPython.utils.syspathcontext import
prepended_to_syspath
    119
    120         if (module_str in self.loaded) and (module_str in
sys.modules):
    121             self.unload_extension(module_str)
    122             mod = sys.modules[module_str]
    123             with prepended_to_syspath(self.ipython_extension_dir):
    124                 reload(mod)
    125             if self._call_load_ipython_extension(mod):
    126                 self.loaded.add(module_str)
    127         else:
    128             self.load_extension(module_str)
    129
    130     def _call_load_ipython_extension(self, mod):
    131         if hasattr(mod, 'load_ipython_extension'):
--> 132             mod.load_ipython_extension(self.shell)
        mod.load_ipython_extension = <function load_ipython_extension
at 0x7f9a675d4758>
        self.shell =
<sage.repl.interpreter.SageTerminalInteractiveShell object at
0x7f9a597f7d50>
    133             return True
    134
    135     def _call_unload_ipython_extension(self, mod):
    136         if hasattr(mod, 'unload_ipython_extension'):
    137             mod.unload_ipython_extension(self.shell)
    138             return True
    139
    140     def install_extension(self, url, filename=None):
    141         """Download and install an IPython extension.
    142
    143         If filename is given, the file will be so named (inside
the extension
    144         directory). Otherwise, the name from the URL will be
used. The file must
    145         have a .py or .zip extension; otherwise, a ValueError
will be raised.
    146
    147         Returns the full path to the installed file.

/usr/lib64/python2.7/site-packages/sage/__init__.pyc in
load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
object>,))
      1 __all__ = ['all']
      2
      3 # IPython calls this when starting up
      4 def load_ipython_extension(*args):
      5     import sage.repl.ipython_extension
----> 6 sage.repl.ipython_extension.load_ipython_extension(*args)
        sage.repl.ipython_extension.load_ipython_extension = <function
load_ipython_extension at 0x7f9a58227b18>
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell
object at 0x7f9a597f7d50>,)

/usr/lib64/python2.7/site-packages/sage/repl/ipython_extension.pyc in
wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
object>,), **kwargs={})
    490         ....:     if work:
    491         ....:         return 'foo worked'
    492         ....:     raise RuntimeError("foo didn't work")
    493         sage: foo(False)
    494         Traceback (most recent call last):
    495         ...
    496         RuntimeError: foo didn't work
    497         sage: foo(True)
    498         'foo worked'
    499         sage: foo(False)
    500         sage: foo(True)
    501     """
    502     @wraps(func)
    503     def wrapper(*args, **kwargs):
    504         if not wrapper.has_run:
--> 505             result = func(*args, **kwargs)
        result = undefined
        global func = undefined
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell
object at 0x7f9a597f7d50>,)
        kwargs = {}
    506             wrapper.has_run = True
    507             return result
    508     wrapper.has_run = False
    509     return wrapper
    510
    511
    512 @run_once
    513 def load_ipython_extension(ip):
    514     """
    515     Load the extension in IPython.
    516     """
    517     # this modifies ip
    518     SageCustomizations(shell=ip)

/usr/lib64/python2.7/site-packages/sage/repl/ipython_extension.pyc in
load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell
object>)
    503     def wrapper(*args, **kwargs):
    504         if not wrapper.has_run:
    505             result = func(*args, **kwargs)
    506             wrapper.has_run = True
    507             return result
    508     wrapper.has_run = False
    509     return wrapper
    510
    511
    512 @run_once
    513 def load_ipython_extension(ip):
    514     """
    515     Load the extension in IPython.
    516     """
    517     # this modifies ip
--> 518     SageCustomizations(shell=ip)
        global SageCustomizations = <class
'sage.repl.ipython_extension.SageCustomizations'>
        global shell = undefined
        ip = <sage.repl.interpreter.SageTerminalInteractiveShell object
at 0x7f9a597f7d50>

/usr/lib64/python2.7/site-packages/sage/repl/ipython_extension.pyc in
__init__(self=<sage.repl.ipython_extension.SageCustomizations object>,
shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
    361     def __init__(self, shell=None):
    362         """
    363         Initialize the Sage plugin.
    364         """
    365         self.shell = shell
    366
    367         self.auto_magics = SageMagics(shell)
    368         self.shell.register_magics(self.auto_magics)
    369
    370         import sage.misc.edit_module as edit_module
    371         self.shell.set_hook('editor', edit_module.edit_devel)
    372
    373         self.init_inspector()
    374         self.init_line_transforms()
    375
--> 376         import sage.all # until sage's import hell is fixed
        sage.all = undefined
    377
    378         self.shell.verbose_quit = True
    379         self.set_quit_hook()
    380
    381         self.register_interface_magics()
    382
    383         if SAGE_IMPORTALL == 'yes':
    384             self.init_environment()
    385
    386     def register_interface_magics(self):
    387         """
    388         Register magics for each of the Sage interfaces
    389         """
    390         from sage.repl.interface_magic import InterfaceMagic
    391         InterfaceMagic.register_all(self.shell)

/usr/lib64/python2.7/site-packages/sage/all.py in <module>()
     77
     78 # Add SAGE_SRC at the end of sys.path to enable Cython tracebacks
     79 # (which use paths relative to SAGE_SRC)
     80 sys.path.append(SAGE_SRC)
     81
     82
     83 ###################################################################
     84
     85 # This import also setups the interrupt handler
     86 from cysignals.signals import (AlarmInterrupt, SignalError,
     87         sig_on_reset as sig_on_count)
     88
     89 from time                import sleep
     90
     91 import sage.misc.lazy_import
---> 92 from sage.misc.all       import *         # takes a while
        global sage.misc.all = undefined
     93 from sage.typeset.all    import *
     94 from sage.repl.all       import *
     95
     96 from sage.misc.sh import sh
     97
     98 from sage.libs.all       import *
     99 from sage.data_structures.all import *
    100 from sage.doctest.all    import *
    101
    102 from sage.structure.all  import *
    103 from sage.rings.all      import *
    104 from sage.arith.all      import *
    105 from sage.matrix.all     import *
    106
    107 from sage.symbolic.all   import *

/usr/lib64/python2.7/site-packages/sage/misc/all.py in <module>()
     73
     74 from .defaults import (set_default_variable_name,
     75                         series_precision, set_series_precision)
     76
     77 from .sage_eval import sage_eval, sageobj
     78
     79 from .sage_input import sage_input
     80
     81 lazy_import("sage.misc.cython", ["cython_lambda",
"cython_create_local_so"])
     82 lazy_import("sage.misc.cython_c", "cython_compile", "cython")
     83
     84 from .persist import save, load, dumps, loads, db, db_save
     85
     86 from .func_persist import func_persist
     87
---> 88 from .functional import (additive_order,
        global functional = undefined
        global additive_order = undefined
        global base_ring = undefined
        global base_field = undefined
        global basis = undefined
        global category = undefined
        global charpoly = undefined
        global characteristic_polynomial = undefined
        global coerce = undefined
        global cyclotomic_polynomial = undefined
        global decomposition = undefined
        global denominator = undefined
        global det = undefined
        global dimension = undefined
        global dim = undefined
        global discriminant = undefined
        global disc = undefined
        global eta = undefined
        global fcp = undefined
        global gen = undefined
        global gens = undefined
        global hecke_operator = undefined
        global image = undefined
        global integral = undefined
        global integrate = undefined
        global integral_closure = undefined
        global interval = undefined
        global xinterval = undefined
        global is_commutative = undefined
        global is_even = undefined
        global is_integrally_closed = undefined
        global is_field = undefined
        global is_odd = undefined
        global kernel = undefined
        global krull_dimension = undefined
        global lift = undefined
        global log = undefined
        global log_b = undefined
        global minimal_polynomial = undefined
        global minpoly = undefined
        global multiplicative_order = undefined
        global ngens = undefined
        global norm = undefined
        global numerator = undefined
        global numerical_approx = undefined
        global n = undefined
        global N = undefined
        global objgens = undefined
        global objgen = undefined
        global order = undefined
        global rank = undefined
        global regulator = undefined
        global round = undefined
        global quotient = undefined
        global quo = undefined
        global isqrt = undefined
        global squarefree_part = undefined
        global symbolic_sum = undefined
        global sum = undefined
        global transpose = undefined
     89                         base_ring,
     90                         base_field,
     91                         basis,
     92                         category,
     93                         charpoly,
     94                         characteristic_polynomial,
     95                         coerce,
     96                         cyclotomic_polynomial,
     97                         decomposition,
     98                         denominator,
     99                         det,
    100                         dimension,
    101                         dim,
    102                         discriminant,
    103                         disc,

/usr/lib64/python2.7/site-packages/sage/misc/functional.py in <module>()
     17 #
     18 # This program is free software: you can redistribute it and/or
modify
     19 # it under the terms of the GNU General Public License as
published by
     20 # the Free Software Foundation, either version 2 of the License, or
     21 # (at your option) any later version.
     22 #                  http://www.gnu.org/licenses/
     23
#*****************************************************************************
     24 from __future__ import absolute_import
     25 from six.moves import range
     26 from six.moves import builtins
     27
     28 import sage.misc.latex
     29 import sage.interfaces.expect
     30 import sage.interfaces.mathematica
     31
---> 32 from sage.rings.complex_double import CDF
        global sage.rings.complex_double = undefined
        global CDF = undefined
     33 from sage.rings.real_double import RDF, RealDoubleElement
     34
     35 import sage.rings.real_mpfr
     36 import sage.rings.complex_field
     37 import sage.rings.integer
     38
     39
##############################################################################
     40 # There are many functions on elements of a ring, which
mathematicians
     41 # usually write f(x), e.g., it is weird to write x.log() and
natural
     42 # to write log(x).  The functions below allow for the more
familiar syntax.
     43
##############################################################################
     44 def additive_order(x):
     45     """
     46     Returns the additive order of `x`.
     47

/usr/lib64/python2.7/site-packages/sage/rings/integer.pxd in init
sage.rings.complex_double
(/builddir/build/BUILD/sage-7.6/src/build/cythonized/sage/rings/complex_double.c:23816)()
      1 from sage.libs.gmp.types cimport mpz_t, mpz_ptr
      2 from sage.libs.ntl.types cimport ZZ_c
      3
      4 from sage.structure.element cimport EuclideanDomainElement,
RingElement
      5 from sage.categories.morphism cimport Morphism
      6
----> 7 cdef class Integer(EuclideanDomainElement):
        global cdef = undefined
        global Integer = undefined
        global EuclideanDomainElement = undefined
      8     cdef mpz_t value
      9
     10     cdef int _to_ZZ(self, ZZ_c *z) except -1
     11     cdef void set_from_mpz(self, mpz_t value)
     12     cdef hash_c(self)
     13
     14     cpdef _pari_(self)
     15
     16     cpdef _shift_helper(Integer self, y, int sign)
     17     cdef _and(Integer self, Integer other)
     18     cdef _or(Integer self, Integer other)
     19     cdef _xor(Integer self, Integer other)
     20
     21     cpdef size_t _exact_log_log2_iter(self,Integer m)
     22     cpdef size_t _exact_log_mpfi_log(self,m)
     23     cpdef RingElement _valuation(Integer self, Integer p)
     24     cdef object _val_unit(Integer self, Integer p)
     25     cdef Integer _divide_knowing_divisible_by(Integer self,
Integer right)
     26     cdef bint _is_power_of(Integer self, Integer n)
     27
     28     cdef bint _pseudoprime_is_prime(self, proof) except -1
     29     cpdef list _pari_divisors_small(self)
     30
     31     cdef _reduce_set(self, s) # do not use, since integers are
immutable.

/usr/lib64/python2.7/site-packages/sage/rings/rational.pxd in init
sage.rings.integer
(/builddir/build/BUILD/sage-7.6/src/build/cythonized/sage/rings/integer.c:50835)()
      1 from sage.libs.gmp.types cimport mpq_t
      2
      3 cimport sage.structure.element
      4 cimport sage.rings.integer as integer
      5
      6 cpdef rational_power_parts(a, b, factor_limit=?)
      7
----> 8 cdef class Rational(sage.structure.element.FieldElement):
        global cdef = undefined
        global Rational = undefined
        global sage.structure.element.FieldElement = undefined
      9     cdef mpq_t value
     10
     11     cdef __set_value(self, x, unsigned int base)
     12     cdef void set_from_mpq(Rational self, mpq_t value)
     13     cdef _lshift(self, long int exp)
     14     cdef _rshift(self, long int exp)
     15
     16     cdef _val_unit(self, integer.Integer p)

/usr/lib64/python2.7/site-packages/sage/rings/fast_arith.pxd in init
sage.rings.rational
(/builddir/build/BUILD/sage-7.6/src/build/cythonized/sage/rings/rational.c:40371)()
      1 cpdef prime_range(start, stop=*, algorithm=*, bint py_ints=*)
      2
----> 3 cdef class arith_int:
        global cdef = undefined
        global arith_int = undefined
      4     cdef int abs_int(self, int x) except -1
      5     cdef int sign_int(self, int n) except -2
      6     cdef int c_gcd_int(self, int a, int b) except -1
      7     cdef int c_xgcd_int(self, int a, int b, int* ss, int* tt)
except -1
      8     cdef int c_inverse_mod_int(self, int a, int m) except -1
      9     cdef int c_rational_recon_int(self, int a, int m, int* n,
int* d) except -1
     10
     11 cdef class arith_llong:
     12     cdef long long abs_longlong(self, long long x) except -1
     13     cdef long long sign_longlong(self, long long n) except -2
     14     cdef long long c_gcd_longlong(self, long long a, long long
b) except -1
     15     cdef public long long c_xgcd_longlong(self, long long a,
long long b,
     16                                           long long *ss,
     17                                           long long *tt) except -1
     18     cdef long long c_inverse_mod_longlong(self, long long a,
long long m) except -1
     19     cdef long long c_rational_recon_longlong(self, long long a,
long long m,
     20                                              long long *n, long
long *d) except -1

/usr/lib64/python2.7/site-packages/sage/rings/fast_arith.pyx in init
sage.rings.fast_arith
(/builddir/build/BUILD/sage-7.6/src/build/cythonized/sage/rings/fast_arith.c:8710)()
     34 #   * c_inverse_mod_int -- inverse of an int modulo another int
     35 #   * c_rational_recon_int -- rational reconstruction of ints
     36 #   * rational_recon_int -- export of rational reconstruction
for ints
     37 #
     38 #  The long long functions are the same, except they end in
_longlong.
     39 #
     40 ###################################################################
     41
     42 # The int definitions
     43
     44 from sage.ext.stdsage cimport PY_NEW
     45 include "sage/ext/cdefs.pxi"
     46
     47 from sage.libs.cypari2.paridecl cimport *
     48 from sage.libs.cypari2.gen cimport Gen as pari_gen
---> 49 from sage.libs.pari.all import pari
        global sage.libs.pari.all = undefined
        global pari = undefined
     50 from sage.rings.integer cimport Integer
     51
     52 cpdef prime_range(start, stop=None, algorithm="pari_primes",
bint py_ints=False):
     53     r"""
     54     List of all primes between start and stop-1, inclusive.  If the
     55     second argument is omitted, returns the primes up to the first
     56     argument.
     57
     58     This function is closely related to (and can use) the
primes iterator.
     59     Use algorithm "pari_primes" when both start and stop are
not too large,
     60     since in all cases this function makes a table of primes up to
     61     stop. If both are large, use algorithm "pari_isprime" instead.
     62
     63     Algorithm "pari_primes" is faster for most input, but
crashes for larger input.
     64     Algorithm "pari_isprime" is slower but will work for much
larger input.

/usr/lib64/python2.7/site-packages/sage/libs/pari/__init__.py in <module>()
    191         # too fragile)
    192         #
    193         # The underlying issue is fixed in Cygwin v2.5.2
    194         sizemax = min(sizemax, 0xf0000000)
    195
    196     from sage.libs.cypari2 import Pari
    197     P = Pari(1000000, sizemax)
    198
    199     # pari_init_opts() overrides MPIR's memory allocation
functions,
    200     # so we need to reset them.
    201     from sage.ext.memory import init_memory_functions
    202     init_memory_functions()
    203
    204     return P
    205
--> 206 pari = _get_pari_instance()
        global pari = undefined
        global _get_pari_instance = None

/usr/lib64/python2.7/site-packages/sage/libs/pari/__init__.py in
_get_pari_instance()
    169 3.60546360143265208591582056420772677481026899659802474544
    170
    171 """
    172
    173 def _get_pari_instance():
    174     # There are two constraints for the virtual stack size:
    175     # 1) on 32-bit systems, even virtual memory can be a scarce
    176     #    resource since it is limited by 4GB (of which the kernel
    177     #    needs a significant part)
    178     # 2) the system should actually be able to handle a stack size
    179     #    as large as the complete virtual stack.
    180     # As a simple heuristic, we set the virtual stack to 1/4 of the
    181     # virtual memory.
    182     from sage.misc.getusage import virtual_memory_limit
    183
--> 184     sizemax = virtual_memory_limit() // 4
        sizemax = undefined
        virtual_memory_limit = <function virtual_memory_limit at
0x7f9a51d1e0c8>
    185
    186     from sage.env import CYGWIN_VERSION
    187     if CYGWIN_VERSION and CYGWIN_VERSION < (2, 5, 2):
    188         # Cygwin's mmap is broken for large NORESERVE mmaps (>~
4GB) See
    189         # http://trac.sagemath.org/ticket/20463 So we set the
max stack
    190         # size to a little below 4GB (putting it right on the
margin proves
    191         # too fragile)
    192         #
    193         # The underlying issue is fixed in Cygwin v2.5.2
    194         sizemax = min(sizemax, 0xf0000000)
    195
    196     from sage.libs.cypari2 import Pari
    197     P = Pari(1000000, sizemax)
    198
    199     # pari_init_opts() overrides MPIR's memory allocation
functions,

/usr/lib64/python2.7/site-packages/sage/misc/getusage.pyc in
virtual_memory_limit()
     64
     65     EXAMPLES::
     66
     67         sage: from sage.misc.getusage import virtual_memory_limit
     68         sage: virtual_memory_limit() > 0
     69         True
     70         sage: virtual_memory_limit() <= sys.maxsize
     71         True
     72     """
     73     import resource
     74     try:
     75         vmax = resource.getrlimit(resource.RLIMIT_AS)[0]
     76     except resource.error:
     77         vmax = resource.RLIM_INFINITY
     78     if vmax == resource.RLIM_INFINITY:
---> 79         import psutil
        psutil = undefined
     80         vmax = psutil.virtual_memory().total +
psutil.swap_memory().total
     81     return min(vmax, sys.maxsize)
     82
     83
     84
########################################################################
     85 # Old deprecated stuff below
     86
########################################################################
     87
     88 def top():
     89     """
     90     Return the 'top' or 'prstat' line that contains this
running Sage
     91     process.
     92     For FreeBSD, return the line containing this running Sage
process from
     93     'ps -axwww -o pid,user,vsz,rss,state,pri,nice,time,cpu,comm'.
     94

ImportError: No module named psutil

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

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

Dima Pasechnik

unread,
Oct 6, 2017, 11:36:28 AM10/6/17
to sage-support
Are you on Fedora 26? Then it looks like this:

It looks like you hit this bug: 
https://bugzilla.redhat.com/show_bug.cgi?id=1464520 

You need to install psutils: 
$ dnf install python2-psutil 
Reply all
Reply to author
Forward
0 new messages