Opened 9 years ago

Last modified 8 years ago

#14740 new defect

Infinite loop in creation of number field order

Reported by: Marco Streng Owned by: David Loeffler
Priority: major Milestone: sage-6.4
Component: number fields Keywords:
Cc: Leif Leonhardy Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by Jeroen Demeyer)

With sage-5.10.rc2:

sage: Qa12.<kappa12> = NumberField(x^14 - 26*x^13 + 325*x^12 - 2548*x^11 + 13832*x^10 - 54340*x^9 + 157118*x^8 - 333580*x^7 + 509366*x^6 - 534820*x^5 + 354536*x^4 - 124852*x^3 + 15145*x^2 - 33514*x + 13)
sage: y = polygen(Qa12)
sage: L.<c> = Qa12.extension(y^2-kappa12)
sage: L.<alpha> = L.absolute_field()
sage: OO = Qa12.maximal_order()
sage: bas = [L.structure()[1](b) for b in OO.basis()]
sage: subOrderK = L.order(bas + [b*alpha for b in bas])

This hangs forever. Pressing CTRL-C (if it works, reportedly, it doesn't always interrupt):

---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-8-b8aed520adc1> in <module>()
----> 1 subOrderK = L.order(bas + [b*alpha for b in bas])

/mazur/release/merger/sage-5.10/local/lib/python2.7/site-packages/sage/rings/number_field/number_field.pyc in order(self, *args, **kwds)
   6428         gens = map(self, gens)
   6429         import sage.rings.number_field.order as order
-> 6430         return order.absolute_order_from_ring_generators(gens, **kwds)
   6431
   6432     def vector_space(self):

/mazur/release/merger/sage-5.10/local/lib/python2.7/site-packages/sage/rings/number_field/order.pyc in absolute_order_from_ring_generators(gens, check_is_integral, check_rank, is_maximal, allow_subfield)
   1744     K = gens.universe()
   1745     n = [x.absolute_minpoly().degree() for x in gens]
-> 1746     module_gens = monomials(gens, n)
   1747     return absolute_order_from_module_generators(module_gens,
   1748                check_integral=False, check_is_ring=False,

/mazur/release/merger/sage-5.10/local/lib/python2.7/site-packages/sage/rings/monomials.pyc in monomials(v, n)
     66     v = Sequence(v)
     67     R = v.universe()
---> 68     return _monomials(v, R, n, 0)

/mazur/release/merger/sage-5.10/local/lib/python2.7/site-packages/sage/rings/monomials.pyc in _monomials(gens, R, n, i)
     26         nn = list(n)
     27         del nn[i]
---> 28         v = monomials(w, nn)
     29         k = len(v)
     30         for _ in range(n[i]-1):

/mazur/release/merger/sage-5.10/local/lib/python2.7/site-packages/sage/rings/monomials.pyc in monomials(v, n)
     66     v = Sequence(v)
     67     R = v.universe()
---> 68     return _monomials(v, R, n, 0)

/mazur/release/merger/sage-5.10/local/lib/python2.7/site-packages/sage/rings/monomials.pyc in _monomials(gens, R, n, i)
     26         nn = list(n)
     27         del nn[i]
---> 28         v = monomials(w, nn)
     29         k = len(v)
     30         for _ in range(n[i]-1):

/mazur/release/merger/sage-5.10/local/lib/python2.7/site-packages/sage/rings/monomials.pyc in monomials(v, n)
     66     v = Sequence(v)
     67     R = v.universe()
---> 68     return _monomials(v, R, n, 0)

/mazur/release/merger/sage-5.10/local/lib/python2.7/site-packages/sage/rings/monomials.pyc in _monomials(gens, R, n, i)
     26         nn = list(n)
     27         del nn[i]
---> 28         v = monomials(w, nn)
     29         k = len(v)
     30         for _ in range(n[i]-1):

[...]

See also http://groups.google.com/forum/?fromgroups#!topic/sage-devel/MpPqbjAqol4 http://ask.sagemath.org/question/1652/computing-maximal-orders-in-relative-extensions http://stackoverflow.com/questions/11850418/computing-maximal-orders-in-large-number-fields-with-sage

Change History (10)

comment:1 Changed 9 years ago by Jeroen Demeyer

Marco, just to confirm that CTRL-C really does not work for you: press CTRL-C just once and wait a long time (say, 1 hour, just to exaggerate). Do you not get a proper traceback?

comment:2 Changed 9 years ago by Jeroen Demeyer

Also, please mention the version of Sage.

comment:3 Changed 9 years ago by Jeroen Demeyer

Description: modified (diff)
Summary: creation of number field order hangsCreation of number field order hangs
Type: enhancementdefect

comment:4 Changed 9 years ago by Jeroen Demeyer

Description: modified (diff)
Summary: Creation of number field order hangsInfinite loop in creation of number field order

comment:5 Changed 9 years ago by Leif Leonhardy

Cc: Leif Leonhardy added

comment:6 in reply to:  1 Changed 9 years ago by Marco Streng

Replying to jdemeyer:

Marco, just to confirm that CTRL-C really does not work for you: press CTRL-C just once and wait a long time (say, 1 hour, just to exaggerate). Do you not get a proper traceback?

I tried again with a fresh sage-5.10.rc2 on my mac 10.6.8. The first few times, CTRL-C did nothing (pressed it, waited an hour, then pressed it again and waited half an hour more, then killed the process). Then a few times CTRL-C did work (instantly). It seems random.

Before, I thought for a while that #14523 was the cause (I had a clear correlation, but with a small sample size). But since I never patched my new 5.10.rc2 with that, I obviously have the problem also without #14523.

When CTRL-C does not work, I see ^C. Only once I got "Exception KeyboardInterrupt in <function remove at 0x102ad6d70> ignored".

comment:7 Changed 9 years ago by Jeroen Demeyer

Milestone: sage-5.11sage-5.12

comment:8 Changed 9 years ago by For batch modifications

Milestone: sage-6.1sage-6.2

comment:9 Changed 8 years ago by For batch modifications

Milestone: sage-6.2sage-6.3

comment:10 Changed 8 years ago by For batch modifications

Milestone: sage-6.3sage-6.4
Note: See TracTickets for help on using tickets.