#20693: Sage crashes when inverting/dividing large number field elements
-------------------------------------+-------------------------------------
       Reporter:  ehlen              |        Owner:
           Type:  defect             |       Status:  needs_review
       Priority:  critical           |    Milestone:  sage-7.3
      Component:  number fields      |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Stephan Ehlen,     |    Reviewers:
  Peter Bruin                        |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  162035995bff5bb15d73bc13d2994655f24a8c23
  u/pbruin/20693-sage_crashes_when_computing_newforms|     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------
Description changed by ehlen:

Old description:

> Computing newforms for a certain character of modulus 23 fails in sage
> 7.2.
> Here's how to reproduce it (you have to wait 10 minutes or so until the
> crash happens):
>
> {{{
> sage: D=DirichletGroup(23)
> sage: c=D.gen()^2
> sage: N=Newforms(c,6, names='a')
> }}}
>
> Then I get
> {{{
> /usr/local/sage/sage-1/local/lib/python2.7/site-
> packages/cysignals/signals.so(+0x4715)[0x7fc7327c4715]
> /usr/local/sage/sage-1/local/lib/python2.7/site-
> packages/cysignals/signals.so(+0x4765)[0x7fc7327c4765]
> /usr/local/sage/sage-1/local/lib/python2.7/site-
> packages/cysignals/signals.so(+0x6f41)[0x7fc7327c6f41]
> /lib/x86_64-linux-gnu/libpthread.so.0(+0x10330)[0x7fc73aae0330]
> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37)[0x7fc73a73ec37]
> /lib/x86_64-linux-gnu/libc.so.6(abort+0x148)[0x7fc73a742028]
> /usr/local/sage/sage-1/local/lib/libntl.so.19(_ZN3NTL13TerminalErrorEPKc+0x2b)[0x7fc72603512b]
> /usr/local/sage/sage-1/local/lib/libntl.so.19(_ZN3NTL11UseFFTPrimeEl+0x33)[0x7fc725ef13c3]
> /usr/local/sage/sage-1/local/lib/libntl.so.19(_ZN3NTL11zz_pContextC1ERKNS_15INIT_FFT_STRUCTEl+0x28)[0x7fc725fd3838]
> /usr/local/sage/sage-1/local/lib/libntl.so.19(_ZN3NTL4zz_p7FFTInitEl+0x17)[0x7fc725fd3967]
> /usr/local/sage/sage-1/local/lib/libntl.so.19(_ZN3NTL9resultantERNS_2ZZERKNS_3ZZXES4_l+0x184)[0x7fc725f602f4]
> /usr/local/sage/sage-1/local/lib/libntl.so.19(_ZN3NTL4XGCDERNS_2ZZERNS_3ZZXES3_RKS2_S5_l+0x50)[0x7fc725f64b20]
> /usr/local/sage/sage-1/local/lib/python2.7/site-
> packages/sage/rings/number_field/number_field_element.so(+0x91149)[0x7fb7396e1149]
> /usr/local/sage/sage-1/local/lib/python2.7/site-
> packages/sage/rings/number_field/number_field_element.so(+0xff39)[0x7fb73965ff39]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x1efa)[0x7fc73adf5caa]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(+0x84425)[0x7fc73ad74425]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyObject_Call+0x43)[0x7fc73ad42733]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(+0x61205)[0x7fc73ad51205]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyObject_Call+0x43)[0x7fc73ad42733]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(+0xbdfaf)[0x7fc73adadfaf]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(+0xbcb3f)[0x7fc73adacb3f]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyObject_Call+0x43)[0x7fc73ad42733]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x1d51)[0x7fc73adf5b01]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCode+0x32)[0x7fc73adf9fb2]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4dae)[0x7fc73adf8b5e]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(+0x84425)[0x7fc73ad74425]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyObject_Call+0x43)[0x7fc73ad42733]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x1426)[0x7fc73adf51d6]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(+0x84425)[0x7fc73ad74425]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyObject_Call+0x43)[0x7fc73ad42733]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x1426)[0x7fc73adf51d6]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCode+0x32)[0x7fc73adf9fb2]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4dae)[0x7fc73adf8b5e]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x43a1)[0x7fc73adf8151]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x80d)[0x7fc73adf9e7d]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyEval_EvalCode+0x32)[0x7fc73adf9fb2]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyRun_FileExFlags+0x92)[0x7fc73ae236f2]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(PyRun_SimpleFileExFlags+0xd9)[0x7fc73ae24c39]
> /usr/local/sage/sage-1/local/lib/libpython2.7.so.1.0(Py_Main+0xc7f)[0x7fc73ae3ac6f]
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fc73a729f45]
> python[0x40071e]
> ------------------------------------------------------------------------
> Attaching gdb to process id 52504.
>
> Saved trace to /home/ehlen/.sage/crash_logs/crash_BoCUvt.log
> ------------------------------------------------------------------------
> Unhandled SIGABRT: An abort() occurred.
> This probably occurred because a *compiled* module has a bug
> in it and is not properly wrapped with sig_on(), sig_off().
> Python will now terminate.
> ------------------------------------------------------------------------
> Aborted (core dumped)
> }}}
>
> The file home/ehlen/.sage/crash_logs/crash_BoCUvt.log is empty.
>
> {{{
> sage: version()
> 'SageMath version 7.2, Release Date: 2016-05-15'
> }}}
>
> Sage has been compiled from source in this case.
>
> I tested the same commands on a sage 7.1 compiled from source on a
> different machine and got a crash as well!
> {{{
> sage: N=Newforms(c,6, names='a')
> ------------------------------------------------------------------------
> 0   signals.so                          0x000000010dc3b5c5
> print_backtrace + 37
> ------------------------------------------------------------------------
> Unhandled SIGABRT: An abort() occurred.
> This probably occurred because a *compiled* module has a bug
> in it and is not properly wrapped with sig_on(), sig_off().
> Python will now terminate.
> ------------------------------------------------------------------------
> }}}

New description:

 This ticket used to be about a crash that occurred when computing newforms
 for a certain character of modulus 23 in sage 7.2.
 Here's how to reproduce it (you have to wait 10 minutes or so until the
 crash happens):

 {{{
 sage: D=DirichletGroup(23)
 sage: c=D.gen()^2
 sage: N=Newforms(c,6, names='a')
 }}}

 It turned out that this was due to NTL running out of FFT primes when
 inverting number field elements with humongous denominators. Moreover, it
 turned out that we only ran into this problem in the example (and other
 examples in the comments) because the function {{{_invert_c_()}}} of a
 number field element was doing unnecessary work.

--

--
Ticket URL: <http://trac.sagemath.org/ticket/20693#comment:44>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to