#16105: Sage crashes on start: libntl.so.2 not find
-----------------------------+------------------------------
Reporter: darij | Owner:
Type: defect | Status: new
Priority: critical | Milestone: sage-6.2
Component: number theory | Keywords: ntl, crash
Merged in: | Authors:
Reviewers: | Report Upstream: N/A
Work issues: | Branch:
Commit: | Dependencies:
Stopgaps: |
-----------------------------+------------------------------
Sorry for the laziest bugreport since my last one, but this is what I'm
getting since I've updated to 6.2.beta7 and I have no idea what it comes
from.
{{{
***************************************************************************
IPython post-mortem report
{'codename': 'An Afternoon Hack',
'commit_hash': '9db8c5c',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path': '/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/IPython',
'ipython_version': '1.2.1',
'os_name': 'posix',
'platform': 'Linux-3.2.0-60-generic-i686-with-debian-wheezy-sid',
'sys_executable': '/home/darij/gitsage6.2/local/bin/python',
'sys_platform': 'linux2',
'sys_version': '2.7.5 (default, Mar 23 2014, 16:40:35) \n[GCC 4.6.3]'}
***************************************************************************
***************************************************************************
Crash traceback:
---------------------------------------------------------------------------
ImportError Python 2.7.5:
/home/darij/gitsage6.2/local/bin/python
Tue Apr 8 22:39:26
2014
A problem occured executing Python code. Here is the sequence of function
calls leading up to the error, with the most recent (innermost) call last.
/home/darij/gitsage6.2/src/bin/sage-ipython in <module>()
2 # -*- coding: utf-8 -*-
3 """
4 Sage IPython startup script.
5 """
6 from sage.misc.interpreter import SageTerminalApp
7
8 # installs the extra readline commands before the IPython
initialization begins.
9 from sage.misc.readline_extra_commands import *
10
11 # Make sure we're using the Sage profile if one isn't specified.
12 import sys
13 if '--profile' not in sys.argv:
14 sys.argv.extend(['--profile', 'sage'])
15
16 app = SageTerminalApp.instance()
---> 17 app.initialize()
global app.initialize = <bound method SageTerminalApp.initialize
of <sage.misc.interpreter.SageTerminalApp object at 0xb76f0a2c>>
18 app.start()
/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/IPython/terminal/ipapp.pyc in
initialize(self=<sage.misc.interpreter.SageTerminalApp object>, argv=None)
/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/IPython/config/application.pyc in
catch_config_error(method=<function initialize>,
app=<sage.misc.interpreter.SageTerminalApp object>, *args=(None,),
**kwargs={})
74
75
#-----------------------------------------------------------------------------
76 # Application class
77
#-----------------------------------------------------------------------------
78
79 @decorator
80 def catch_config_error(method, app, *args, **kwargs):
81 """Method decorator for catching invalid config
(Trait/ArgumentErrors) during init.
82
83 On a TraitError (generally caused by bad config), this will
print the trait's
84 message, and exit the app.
85
86 For use on init methods, to prevent invoking excepthook on
invalid input.
87 """
88 try:
---> 89 return method(app, *args, **kwargs)
method = <function initialize at 0xb7170bfc>
app = <sage.misc.interpreter.SageTerminalApp object at 0xb76f0a2c>
args = (None,)
kwargs = {}
90 except (TraitError, ArgumentError) as e:
91 app.print_help()
92 app.log.fatal("Bad config encountered during
initialization:")
93 app.log.fatal(str(e))
94 app.log.debug("Config at the time: %s", app.config)
95 app.exit(1)
96
97
98 class ApplicationError(Exception):
99 pass
100
101 class LevelFormatter(logging.Formatter):
102 """Formatter with additional `highlevel` record
103
104 This field is empty if log level is less than highlevel_limit,
/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/IPython/terminal/ipapp.pyc in
initialize(self=<sage.misc.interpreter.SageTerminalApp object>, argv=None)
308
309 @catch_config_error
310 def initialize(self, argv=None):
311 """Do actions after construct, but before starting the
app."""
312 super(TerminalIPythonApp, self).initialize(argv)
313 if self.subapp is not None:
314 # don't bother initializing further, starting subapp
315 return
316 if not self.ignore_old_config:
317 check_for_old_config(self.ipython_dir)
318 # print self.extra_args
319 if self.extra_args and not self.something_to_run:
320 self.file_to_run = self.extra_args[0]
321 self.init_path()
322 # create the shell
--> 323 self.init_shell()
self.init_shell = <bound method SageTerminalApp.init_shell of
<sage.misc.interpreter.SageTerminalApp object at 0xb76f0a2c>>
324 # and draw the banner
325 self.init_banner()
326 # Now a variety of things that happen after the banner is
printed.
327 self.init_gui_pylab()
328 self.init_extensions()
329 self.init_code()
330
331 def init_shell(self):
332 """initialize the InteractiveShell instance"""
333 # Create an InteractiveShell instance.
334 # shell.display_banner should always be False for the
terminal
335 # based app, because we call shell.show_banner() by hand
below
336 # so the banner shows *before* all extension loading
stuff.
337 self.shell =
TerminalInteractiveShell.instance(parent=self,
338 display_banner=False,
profile_dir=self.profile_dir,
/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/sage/misc/interpreter.pyc in
init_shell(self=<sage.misc.interpreter.SageTerminalApp object>)
668 sage: from sage.misc.interpreter import
SageTerminalApp, DEFAULT_SAGE_CONFIG
669 sage: app =
SageTerminalApp(config=DEFAULT_SAGE_CONFIG)
670 sage: app.initialize(argv=[]) # indirect doctest
671 sage: app.shell
672 <sage.misc.interpreter.SageInteractiveShell object at
0x...>
673 """
674 # We need verbose crashes for the Sage crash handler. We
set it here
675 # so that we don't overwrite the traitlet attribute
676 self.verbose_crash = True
677
678 # Shell initialization
679 self.shell =
SageInteractiveShell.instance(config=self.config,
680 display_banner=False,
profile_dir=self.profile_dir,
681 ipython_dir=self.ipython_dir)
682 self.shell.configurables.append(self)
--> 683
self.shell.extension_manager.load_extension('sage.misc.sage_extension')
self.shell.extension_manager.load_extension = <bound method
ExtensionManager.load_extension of
<IPython.core.extensions.ExtensionManager object at 0x97e5a4c>>
/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/IPython/core/extensions.pyc in
load_extension(self=<IPython.core.extensions.ExtensionManager object>,
module_str='sage.misc.sage_extension')
83 def load_extension(self, module_str):
84 """Load an IPython extension by its module name.
85
86 Returns the string "already loaded" if the extension is
already loaded,
87 "no load function" if the module doesn't have a
load_ipython_extension
88 function, or None if it succeeded.
89 """
90 if module_str in self.loaded:
91 return "already loaded"
92
93 from IPython.utils.syspathcontext import
prepended_to_syspath
94
95 with self.shell.builtin_trap:
96 if module_str not in sys.modules:
97 with
prepended_to_syspath(self.ipython_extension_dir):
---> 98 __import__(module_str)
global __import__ = undefined
module_str = 'sage.misc.sage_extension'
99 mod = sys.modules[module_str]
100 if self._call_load_ipython_extension(mod):
101 self.loaded.add(module_str)
102 else:
103 return "no load function"
104
105 def unload_extension(self, module_str):
106 """Unload an IPython extension by its module name.
107
108 This function looks up the extension's name in
``sys.modules`` and
109 simply calls ``mod.unload_ipython_extension(self)``.
110
111 Returns the string "no unload function" if the extension
doesn't define
112 a function to unload itself, "not loaded" if the extension
isn't loaded,
113 otherwise None.
/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/sage/misc/sage_extension.py in <module>()
45 2
46
47 In contrast, input to the ``%time`` magic command is preparsed::
48
49 sage: shell.run_cell('%time 594.factor()')
50 CPU times: user ...
51 Wall time: ...
52 2 * 3^3 * 11
53 """
54
55 from IPython.core.hooks import TryNext
56 from IPython.core.magic import Magics, magics_class, line_magic
57 import os
58 import sys
59 import sage
---> 60 import sage.all
global sage.all = undefined
61 from sage.misc.interpreter import preparser
62 from sage.misc.preparser import preparse
63
64 @magics_class
65 class SageMagics(Magics):
66
67 @line_magic
68 def crun(self, s):
69 r"""
70 Profile C function calls
71
72 INPUT:
73
74 - ``s`` -- string. Sage command to profile.
75
/home/darij/gitsage6.2/local/lib/python2.7/site-packages/sage/all.py in
<module>()
76
###################################################################
77
78 import sage.ext.c_lib
79 sage.ext.c_lib._init_csage()
80 sig_on_count = sage.ext.c_lib._sig_on_reset
81
82 from time import sleep
83
84 from sage.ext.c_lib import AlarmInterrupt, SignalError
85
86 import sage.misc.lazy_import
87 from sage.misc.all import * # takes a while
88
89 from sage.misc.sh import sh
90
---> 91 from sage.libs.all import *
global sage.libs.all = undefined
92 from sage.doctest.all import *
93 try:
94 from sage.dev.all import *
95 except ImportError:
96 pass # dev scripts are disabled
97
98 from sage.rings.all import *
99 from sage.matrix.all import *
100
101 # This must come before Calculus -- it initializes the Pynac
library.
102 import sage.symbolic.pynac
103
104 from sage.modules.all import *
105 from sage.monoids.all import *
106 from sage.algebras.all import *
/home/darij/gitsage6.2/local/lib/python2.7/site-packages/sage/libs/all.py
in <module>()
----> 1 import sage.libs.ntl.all as ntl
global sage.libs.ntl.all = undefined
global ntl = undefined
2
3 from sage.libs.pari.all import pari, pari_gen, PariError
4
5 from sage.libs.mwrank.all import (mwrank_EllipticCurve,
mwrank_MordellWeil,
6 mwrank_initprimes,
7 get_precision as
mwrank_get_precision,
8 set_precision as
mwrank_set_precision)
9
10
11 import symmetrica.all as symmetrica
12
13 from cremona.all import CremonaModularSymbols
14
15
16 from sage.misc.lazy_import import lazy_import
17 lazy_import('sage.libs.gap.libgap', 'libgap')
/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/sage/libs/ntl/__init__.py in <module>()
----> 1 import all
global all = undefined
/home/darij/gitsage6.2/local/lib/python2.7/site-
packages/sage/libs/ntl/all.py in <module>()
17 # but WITHOUT ANY WARRANTY; without even the implied warranty
of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU
19 # General Public License for more details.
20 #
21 # The full text of the GPL is available at:
22 #
23 # http://www.gnu.org/licenses/
24
#*****************************************************************************
25
26 from sage.libs.ntl.ntl_ZZ import (
27 ntl_setSeed, \
28 ntl_ZZ as ZZ,
29 randomBnd as ZZ_random,
30 randomBits as ZZ_random_bits )
31
---> 32 from sage.libs.ntl.ntl_ZZ_pContext import ntl_ZZ_pContext as
ZZ_pContext
global sage.libs.ntl.ntl_ZZ_pContext = undefined
global ntl_ZZ_pContext = undefined
global ZZ_pContext = undefined
33
34 from sage.libs.ntl.ntl_ZZ_p import (
35 ntl_ZZ_p as ZZ_p,
36 ntl_ZZ_p_random_element as ZZ_p_random )
37
38 from sage.libs.ntl.ntl_ZZX import (
39 ntl_ZZX as ZZX,
40 zero_ZZX, one_ZZX )
41
42 from sage.libs.ntl.ntl_ZZ_pX import ntl_ZZ_pX as ZZ_pX
43
44 from sage.libs.ntl.ntl_ZZ_pEContext import ntl_ZZ_pEContext as
ZZ_pEContext
45
46 from sage.libs.ntl.ntl_ZZ_pE import ntl_ZZ_pE as ZZ_pE
47
ImportError: libntl.so.2: cannot open shared object file: No such file or
directory
***************************************************************************
History of session input:
*** Last line of input (may not be in above history):
}}}
--
Ticket URL: <http://trac.sagemath.org/ticket/16105>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.