Bug#898625: sagemath-common: sage crashed
Francesco Potortì
Potorti at isti.cnr.it
Mon May 14 13:01:19 BST 2018
Package: sagemath-common
Version: 8.1-7
Severity: important
I get the following output when calling sage in a terminal. Appended
you find the crash report. Going to follow the instructions and report
it upstream.
$ sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 8.1, Release Date: 2017-12-07 │
│ Type "notebook()" for the browser-based notebook interface. │
│ Type "help()" for help. │
└────────────────────────────────────────────────────────────────────┘
**********************************************************************
Oops, Sage crashed. We do our best to make it stable, but...
A crash report was automatically generated with the following information:
- A verbatim copy of the crash traceback.
- A copy of your input history during this session.
- Data on your current Sage configuration.
It was left in the file named:
'/home/pot/.ipython/Sage_crash_report.txt'
If you can email this file to the developers, the information in it will help
them in understanding and correcting the problem.
You can mail it to: sage-support at sage-support at googlegroups.com
with the subject 'Sage Crash Report'.
If you want to do it now, the following command will work (under Unix):
mail -s 'Sage Crash Report' sage-support at googlegroups.com < /home/pot/.ipython/Sage_crash_report.txt
To ensure accurate tracking of this issue, please file a report about it at:
http://trac.sagemath.org
Hit <Enter> to quit (your terminal may close):
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (990, 'testing'), (101, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.14.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8), LANGUAGE=C:en_GB:en:en_US:it:fr:es (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages sagemath-common depends on:
ii python 2.7.15~rc1-1
ii python2.7 2.7.15-1
sagemath-common recommends no packages.
sagemath-common suggests no packages.
-- no debconf information
===File /home/pot/.ipython/Sage_crash_report.txt============
***************************************************************************
IPython post-mortem report
{'commit_hash': u'b467d487e',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path': '/usr/lib/python2.7/dist-packages/IPython',
'ipython_version': '5.5.0',
'os_name': 'posix',
'platform': 'Linux-4.14.0-3-amd64-x86_64-with-debian-buster-sid',
'sys_executable': '/usr/bin/python',
'sys_platform': 'linux2',
'sys_version': '2.7.15 (default, May 1 2018, 05:55:50) \n[GCC 7.3.0]'}
***************************************************************************
***************************************************************************
Crash traceback:
---------------------------------------------------------------------------
---------------------------------------------------------------------------
ImportError Python 2.7.15: /usr/bin/python
Mon May 14 12:00:24 2018
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 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 0x7f7b71ad64d0>>
11 app.start()
<decorator-gen-110> in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
/usr/lib/python2.7/dist-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 0x7f7b6e825c80>
app = <sage.repl.interpreter.SageTerminalApp object at 0x7f7b71ad64d0>
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/lib/python2.7/dist-packages/IPython/terminal/ipapp.pyc in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
301
302 return super(TerminalIPythonApp, self).parse_command_line(argv)
303
304 @catch_config_error
305 def initialize(self, argv=None):
306 """Do actions after construct, but before starting the app."""
307 super(TerminalIPythonApp, self).initialize(argv)
308 if self.subapp is not None:
309 # don't bother initializing further, starting subapp
310 return
311 # print self.extra_args
312 if self.extra_args and not self.something_to_run:
313 self.file_to_run = self.extra_args[0]
314 self.init_path()
315 # create the shell
--> 316 self.init_shell()
self.init_shell = <bound method SageTerminalApp.init_shell of <sage.repl.interpreter.SageTerminalApp object at 0x7f7b71ad64d0>>
317 # and draw the banner
318 self.init_banner()
319 # Now a variety of things that happen after the banner is printed.
320 self.init_gui_pylab()
321 self.init_extensions()
322 self.init_code()
323
324 def init_shell(self):
325 """initialize the InteractiveShell instance"""
326 # Create an InteractiveShell instance.
327 # shell.display_banner should always be False for the terminal
328 # based app, because we call shell.show_banner() by hand below
329 # so the banner shows *before* all extension loading stuff.
330 self.shell = self.interactive_shell_class.instance(parent=self,
331 profile_dir=self.profile_dir,
/usr/lib/python2.7/dist-packages/sage/repl/interpreter.pyc in init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
730 This code is based on
731 :meth:`TerminalIPythonApp.init_shell`.
732
733 EXAMPLES::
734
735 sage: from sage.repl.interpreter import SageTerminalApp
736 sage: app = SageTerminalApp.instance()
737 sage: app.shell
738 <sage.repl.interpreter.SageTestShell object at 0x...>
739 """
740 # Shell initialization
741 self.shell = self.shell_class.instance(
742 parent=self,
743 config=self.config,
744 profile_dir=self.profile_dir,
--> 745 ipython_dir=self.ipython_dir)
global ipython_dir = undefined
self.ipython_dir = u'/home/pot/.ipython'
746 self.shell.configurables.append(self)
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
/usr/lib/python2.7/dist-packages/traitlets/config/configurable.pyc in instance(cls=<class 'sage.repl.interpreter.SageTerminalInteractiveShell'>, *args=(), **kwargs={'config': {'InteractiveShell': {'term_title': True, 'color...ue}, 'SageTerminalApp': {'force_interact': True}}, 'ipython_dir': u'/home/pot/.ipython', 'parent': <sage.repl.interpreter.SageTerminalApp object>, 'profile_dir': <IPython.core.profiledir.ProfileDir object>})
397 >>> class Foo(SingletonConfigurable): pass
398 >>> foo = Foo.instance()
399 >>> foo == Foo.instance()
400 True
401
402 Create a subclass that is retrived using the base class instance::
403
404 >>> class Bar(SingletonConfigurable): pass
405 >>> class Bam(Bar): pass
406 >>> bam = Bam.instance()
407 >>> bam == Bar.instance()
408 True
409 """
410 # Create and save the instance
411 if cls._instance is None:
--> 412 inst = cls(*args, **kwargs)
inst = undefined
cls = <class 'sage.repl.interpreter.SageTerminalInteractiveShell'>
args = ()
kwargs = {'ipython_dir': u'/home/pot/.ipython', 'profile_dir': <IPython.core.profiledir.ProfileDir object at 0x7f7b6e84cd90>, 'config': {'InteractiveShell': {'term_title': True, 'colors': 'LightBG', 'confirm_exit': False, 'prompts_class': <class 'sage.repl.prompts.SagePrompts'>, 'separate_in': '', 'ast_node_interactivity': 'all', 'simple_prompt': False}, 'InteractiveShellApp': {'extensions': ['sage']}, 'TerminalIPythonApp': {'shell_class': <class 'sage.repl.interpreter.SageTerminalInteractiveShell'>, 'display_banner': False, 'test_shell': False, 'verbose_crash': True}, 'SageTerminalApp': {'force_interact': True}}, 'parent': <sage.repl.interpreter.SageTerminalApp object at 0x7f7b71ad64d0>}
413 # Now make sure that the instance will also be returned by
414 # parent classes' _instance attribute.
415 for subclass in cls._walk_mro():
416 subclass._instance = inst
417
418 if isinstance(cls._instance, cls):
419 return cls._instance
420 else:
421 raise MultipleInstanceError(
422 'Multiple incompatible subclass instances of '
423 '%s are being created.' % cls.__name__
424 )
425
426 @classmethod
427 def initialized(cls):
/usr/lib/python2.7/dist-packages/IPython/terminal/interactiveshell.pyc in __init__(self=<sage.repl.interpreter.SageTerminalInteractiveShell object>, *args=(), **kwargs={'config': {'InteractiveShell': {'term_title': True, 'color...ue}, 'SageTerminalApp': {'force_interact': True}}, 'ipython_dir': u'/home/pot/.ipython', 'parent': <sage.repl.interpreter.SageTerminalApp object>, 'profile_dir': <IPython.core.profiledir.ProfileDir object>})
423
424 def init_alias(self):
425 # The parent class defines aliases that can be safely used with any
426 # frontend.
427 super(TerminalInteractiveShell, self).init_alias()
428
429 # Now define aliases that only make sense on the terminal, because they
430 # need direct access to the console in a way that we can't emulate in
431 # GUI or web frontend
432 if os.name == 'posix':
433 for cmd in ['clear', 'more', 'less', 'man']:
434 self.alias_manager.soft_define_alias(cmd, cmd)
435
436
437 def __init__(self, *args, **kwargs):
--> 438 super(TerminalInteractiveShell, self).__init__(*args, **kwargs)
global super = undefined
global TerminalInteractiveShell = <class 'IPython.terminal.interactiveshell.TerminalInteractiveShell'>
self.__init__ = <bound method SageTerminalInteractiveShell.__init__ of <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f7b6e84cdd0>>
args = ()
kwargs = {'profile_dir': <IPython.core.profiledir.ProfileDir object at 0x7f7b6e84cd90>, 'config': {'InteractiveShell': {'term_title': True, 'colors': 'LightBG', 'confirm_exit': False, 'prompts_class': <class 'sage.repl.prompts.SagePrompts'>, 'separate_in': '', 'ast_node_interactivity': 'all', 'simple_prompt': False}, 'InteractiveShellApp': {'extensions': ['sage']}, 'TerminalIPythonApp': {'shell_class': <class 'sage.repl.interpreter.SageTerminalInteractiveShell'>, 'display_banner': False, 'test_shell': False, 'verbose_crash': True}, 'SageTerminalApp': {'force_interact': True}}, 'ipython_dir': u'/home/pot/.ipython', 'parent': <sage.repl.interpreter.SageTerminalApp object at 0x7f7b71ad64d0>}
439 self.init_prompt_toolkit_cli()
440 self.init_term_title()
441 self.keep_running = True
442
443 self.debugger_history = InMemoryHistory()
444
445 def ask_exit(self):
446 self.keep_running = False
447
448 rl_next_input = None
449
450 def pre_prompt(self):
451 if self.rl_next_input:
452 # We can't set the buffer here, because it will be reset just after
453 # this. Adding a callable to pre_run_callables does what we need
/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.pyc in __init__(self=<sage.repl.interpreter.SageTerminalInteractiveShell object>, ipython_dir=u'/home/pot/.ipython', profile_dir=<IPython.core.profiledir.ProfileDir object>, user_module=None, user_ns=None, custom_exceptions=((), None), **kwargs={'config': {'InteractiveShell': {'term_title': True, 'color...ue}, 'SageTerminalApp': {'force_interact': True}}, 'parent': <sage.repl.interpreter.SageTerminalApp object>})
488 self.init_builtins()
489
490 # The following was in post_config_initialization
491 self.init_inspector()
492 if py3compat.PY3:
493 self.raw_input_original = input
494 else:
495 self.raw_input_original = raw_input
496 self.init_completer()
497 # TODO: init_io() needs to happen before init_traceback handlers
498 # because the traceback handlers hardcode the stdout/stderr streams.
499 # This logic in in debugger.Pdb and should eventually be changed.
500 self.init_io()
501 self.init_traceback_handlers(custom_exceptions)
502 self.init_prompts()
--> 503 self.init_display_formatter()
self.init_display_formatter = <bound method SageTerminalInteractiveShell.init_display_formatter of <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7f7b6e84cdd0>>
504 self.init_display_pub()
505 self.init_data_pub()
506 self.init_displayhook()
507 self.init_magics()
508 self.init_alias()
509 self.init_logstart()
510 self.init_pdb()
511 self.init_extension_manager()
512 self.init_payload()
513 self.init_deprecation_warnings()
514 self.hooks.late_startup_hook()
515 self.events.trigger('shell_initialized', self)
516 atexit.register(self.atexit_operations)
517
518 def get_ipython(self):
/usr/lib/python2.7/dist-packages/sage/repl/interpreter.pyc in init_display_formatter(self=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
245
246 sage: from sage.repl.interpreter import SageTerminalInteractiveShell
247 sage: SageTerminalInteractiveShell() # not tested
248 <sage.repl.interpreter.SageNotebookInteractiveShell object at 0x...>
249 """
250
251 def init_display_formatter(self):
252 """
253 Switch to the Sage IPython commandline rich output backend
254
255 EXAMPLES::
256
257 sage: from sage.repl.interpreter import SageTerminalInteractiveShell
258 sage: SageTerminalInteractiveShell().init_display_formatter() # not tested
259 """
--> 260 from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline
global sage.repl.rich_output.backend_ipython = undefined
BackendIPythonCommandline = undefined
261 backend = BackendIPythonCommandline()
262 backend.get_display_manager().switch_backend(backend, shell=self)
263
264
265 class SageTestShell(SageShellOverride, TerminalInteractiveShell):
266 """
267 Test Shell
268
269 Care must be taken in these doctests to quit the test shell in
270 order to switch back the rich output display backend to the
271 doctest backend.
272
273 EXAMPLES::
274
275 sage: from sage.repl.interpreter import get_test_shell
/usr/lib/python2.7/dist-packages/sage/repl/rich_output/__init__.py in <module>()
1 # -*- encoding: utf-8 -*-
2
----> 3 from .display_manager import get_display_manager
global display_manager = undefined
global get_display_manager = undefined
4 from .pretty_print import pretty_print
5
6
/usr/lib/python2.7/dist-packages/sage/repl/rich_output/display_manager.py in <module>()
24 The Sage display manager using the doctest backend
25 """
26
27 #*****************************************************************************
28 # Copyright (C) 2015 Volker Braun <vbraun.name at gmail.com>
29 #
30 # Distributed under the terms of the GNU General Public License (GPL)
31 # as published by the Free Software Foundation; either version 2 of
32 # the License, or (at your option) any later version.
33 # http://www.gnu.org/licenses/
34 #*****************************************************************************
35
36
37 import warnings
38
---> 39 from sage.structure.sage_object import SageObject
global sage.structure.sage_object = undefined
global SageObject = undefined
40 from sage.repl.rich_output.output_basic import (
41 OutputPlainText, OutputAsciiArt, OutputUnicodeArt, OutputLatex,
42 )
43 from sage.repl.rich_output.preferences import DisplayPreferences
44
45
46 class DisplayException(Exception):
47 """
48 Base exception for all rich output-related exceptions.
49
50 EXAMPLES::
51
52 sage: from sage.repl.rich_output.display_manager import DisplayException
53 sage: raise DisplayException('foo')
54 Traceback (most recent call last):
ImportError: No module named sage_object
***************************************************************************
History of session input:============================================================
More information about the debian-science-maintainers
mailing list