#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.

Reply via email to