{"action":"opened","issue":{"url":"https://api.github.com/repos/LMFDB/lmfdb/issues/1505","repository_url":"https://api.github.com/repos/LMFDB/lmfdb","labels_url":"https://api.github.com/repos/LMFDB/lmfdb/issues/1505/labels{/name}","comments_url":"https://api.github.com/repos/LMFDB/lmfdb/issues/1505/comments","events_url":"https://api.github.com/repos/LMFDB/lmfdb/issues/1505/events","html_url":"https://github.com/LMFDB/lmfdb/issues/1505","id":158254332,"number":1505,"title":"Attempt to render classical modular form page gets stuck in an infinite loop (sage bug?)","user":{"login":"AndrewVSutherland","id":11425002,"avatar_url":"https://avatars.githubusercontent.com/u/11425002?v=3","gravatar_id":"","url":"https://api.github.com/users/AndrewVSutherland","html_url":"https://github.com/AndrewVSutherland","followers_url":"https://api.github.com/users/AndrewVSutherland/followers","following_url":"https://api.github.com/users/AndrewVSutherland/following{/other_user}","gists_url":"https://api.github.com/users/AndrewVSutherland/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewVSutherland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewVSutherland/subscriptions","organizations_url":"https://api.github.com/users/AndrewVSutherland/orgs","repos_url":"https://api.github.com/users/AndrewVSutherland/repos","events_url":"https://api.github.com/users/AndrewVSutherland/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewVSutherland/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/LMFDB/lmfdb/labels/classicalMF","name":"classicalMF","color":"207de5"},{"url":"https://api.github.com/repos/LMFDB/lmfdb/labels/ec","name":"ec","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-06-02T22:31:04Z","updated_at":"2016-06-02T22:31:04Z","closed_at":null,"body":"Go to the elliptic curve isogeny class http://www.lmfdb.org/EllipticCurve/Q/234446/a/ and click on the modular form link http://www.lmfdb.org/ModularForm/GL2/Q/holomorphic/234446/2/1/a/.\r\n\r\nThis should result in a message saying the form is not in the database, but instead the page hangs and eventually times out with a 502 server error.  Similar behavior occurs for several other (but by no means all) elliptic curve isogeny classes.\r\n\r\nIf you run the lmfdb server locally, it appears to go into an infinite loop (or at least a multi-hour computation) inside sage while attempting to process this request (it is unclear to me why it should be accessing Sage at all, it only needs to determine that the form is not in the database).\r\n\r\nPressing ctrl-C yields an apparently infinite traceback, a portion of which appears below:\r\n\r\nTraceback (most recent call last):\r\n  File \"/usr/local/sage/sage-1/local/lib/python/SocketServer.py\", line 295, in _handle_request_noblock\r\n    self.process_request(request, client_address)\r\n  File \"/usr/local/sage/sage-1/local/lib/python/SocketServer.py\", line 321, in process_request\r\n    self.finish_request(request, client_address)\r\n  File \"/usr/local/sage/sage-1/local/lib/python/SocketServer.py\", line 334, in finish_request\r\n    self.RequestHandlerClass(request, client_address, self)\r\n  File \"/usr/local/sage/sage-1/local/lib/python/SocketServer.py\", line 655, in __init__\r\n    self.handle()\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/Werkzeug-0.11.4-py2.7.egg/werkzeug/serving.py\", line 216, in handle\r\n    rv = BaseHTTPRequestHandler.handle(self)\r\n  File \"/usr/local/sage/sage-1/local/lib/python/BaseHTTPServer.py\", line 340, in handle\r\n    self.handle_one_request()\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/Werkzeug-0.11.4-py2.7.egg/werkzeug/serving.py\", line 251, in handle_one_request\r\n    return self.run_wsgi()\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/Werkzeug-0.11.4-py2.7.egg/werkzeug/serving.py\", line 193, in run_wsgi\r\n    execute(self.server.app)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/Werkzeug-0.11.4-py2.7.egg/werkzeug/serving.py\", line 181, in execute\r\n    application_iter = app(environ, start_response)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py\", line 1836, in __call__\r\n    return self.wsgi_app(environ, start_response)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py\", line 1817, in wsgi_app\r\n    response = self.full_dispatch_request()\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py\", line 1475, in full_dispatch_request\r\n    rv = self.dispatch_request()\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/Flask-0.10.1-py2.7.egg/flask/app.py\", line 1461, in dispatch_request\r\n    return self.view_functions[rule.endpoint](**req.view_args)\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/views/emf_main.py\", line 130, in render_elliptic_modular_forms\r\n    return render_web_newform(**info)\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/views/emf_render_web_newform.py\", line 42, in render_web_newform\r\n    info = set_info_for_web_newform(level, weight, character, label, **kwds)\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/views/emf_render_web_newform.py\", line 71, in set_info_for_web_newform\r\n    WNF = WebNewForm_cached(level=level, weight=weight, character=character, label=label)\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/backend/web_newforms.py\", line 965, in WebNewForm_cached\r\n    F = WebNewForm(level,weight,character,label,**kwds)\r\n  File \"sage/misc/classcall_metaclass.pyx\", line 329, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (build/cythonized/sage/misc/classcall_metaclass.c:1188)\r\n    return cls.classcall(cls, *args, **kwds)\r\n  File \"sage/misc/cachefunc.pyx\", line 973, in sage.misc.cachefunc.CachedFunction.__call__ (build/cythonized/sage/misc/cachefunc.c:5376)\r\n    w = self.f(*args, **kwds)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/sage/structure/unique_representation.py\", line 1021, in __classcall__\r\n    instance = typecall(cls, *args, **options)\r\n  File \"sage/misc/classcall_metaclass.pyx\", line 496, in sage.misc.classcall_metaclass.typecall (build/cythonized/sage/misc/classcall_metaclass.c:1614)\r\n    return (<PyTypeObject*>type).tp_call(cls, args, kwds)\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/backend/web_newforms.py\", line 516, in __init__\r\n    else False),\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/backend/web_character.py\", line 233, in __init__\r\n    self._default_value = WebChar_cached(modulus, number, update_from_db=True, compute=True)\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/backend/web_character.py\", line 273, in WebChar_cached\r\n    X = WebChar(modulus,number,**kwds)\r\n  File \"sage/misc/classcall_metaclass.pyx\", line 329, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (build/cythonized/sage/misc/classcall_metaclass.c:1188)\r\n    return cls.classcall(cls, *args, **kwds)\r\n  File \"sage/misc/cachefunc.pyx\", line 973, in sage.misc.cachefunc.CachedFunction.__call__ (build/cythonized/sage/misc/cachefunc.c:5376)\r\n    w = self.f(*args, **kwds)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/sage/structure/unique_representation.py\", line 1021, in __classcall__\r\n    instance = typecall(cls, *args, **options)\r\n  File \"sage/misc/classcall_metaclass.pyx\", line 496, in sage.misc.classcall_metaclass.typecall (build/cythonized/sage/misc/classcall_metaclass.c:1614)\r\n    return (<PyTypeObject*>type).tp_call(cls, args, kwds)\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/backend/web_character.py\", line 92, in __init__\r\n    update_from_db=update_from_db\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/backend/web_object.py\", line 344, in __init__\r\n    self.init_dynamic_properties()\r\n  File \"/home/drew/github/lmfdb/lmfdb/modular_forms/elliptic_modular_forms/backend/web_character.py\", line 134, in init_dynamic_properties\r\n    self.sage_character = self.character.sage_character()\r\n  File \"dirichlet_conrey.pyx\", line 1475, in dirichlet_conrey.DirichletCharacter_conrey.sage_character (dirichlet_conrey.c:19264)\r\n  File \"dirichlet_conrey.pyx\", line 395, in dirichlet_conrey.DirichletGroup_conrey.standard_dirichlet_group (dirichlet_conrey.c:6601)\r\n  File \"sage/structure/factory.pyx\", line 361, in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:1469)\r\n    key, kwds = self.create_key_and_extra_args(*args, **kwds)\r\n  File \"sage/structure/factory.pyx\", line 459, in sage.structure.factory.UniqueFactory.create_key_and_extra_args (build/cythonized/sage/structure/factory.c:2602)\r\n    return self.create_key(*args, **kwds), {}\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/sage/modular/dirichlet.py\", line 1903, in create_key\r\n    base_ring = rings.CyclotomicField(e)\r\n  File \"sage/structure/factory.pyx\", line 363, in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:1551)\r\n    return self.get_object(version, key, kwds)\r\n  File \"sage/structure/factory.pyx\", line 406, in sage.structure.factory.UniqueFactory.get_object (build/cythonized/sage/structure/factory.c:1906)\r\n    obj = self.create_object(version, key, **extra_args)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/sage/rings/number_field/number_field.py\", line 1098, in create_object\r\n    return NumberField_cyclotomic(n, names, embedding=embedding)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/sage/rings/number_field/number_field.py\", line 8895, in __init__\r\n    maximize_at_primes=maximize_at_primes)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/sage/rings/number_field/number_field.py\", line 6444, in __init__\r\n    assume_disc_small=assume_disc_small, maximize_at_primes=maximize_at_primes, structure=structure)\r\n  File \"/usr/local/sage/sage-1/local/lib/python2.7/site-packages/sage/rings/number_field/number_field.py\", line 1223, in __init__\r\n    embedding = number_field_morphisms.create_embedding_from_approx(self, embedding)\r\n  File \"sage/rings/number_field/number_field_morphisms.pyx\", line 494, in sage.rings.number_field.number_field_morphisms.create_embedding_from_approx (build/cythonized/sage/rings/number_field/number_field_morphisms.c:7033)\r\n    if not P.is_exact() or f(gen_image) != 0:\r\n  File \"sage/structure/element.pyx\", line 1007, in sage.structure.element.Element.__richcmp__ (build/cythonized/sage/structure/element.c:9714)\r\n    return coercion_model.richcmp(self, other, op)\r\n  File \"sage/structure/coerce.pyx\", line 1801, in sage.structure.coerce.CoercionModel_cache_maps.richcmp (build/cythonized/sage/structure/coerce.c:18652)\r\n    return PyObject_RichCompare(x, y, op)\r\n  File \"sage/structure/element.pyx\", line 1005, in sage.structure.element.Element.__richcmp__ (build/cythonized/sage/structure/element.c:9690)\r\n    return (<Element>self)._richcmp_(<Element>other, op)\r\n  File \"sage/structure/element.pyx\", line 1040, in sage.structure.element.Element._richcmp_ (build/cythonized/sage/structure/element.c:9871)\r\n    c = left._cmp_(right)\r\n  File \"sage/rings/real_lazy.pyx\", line 699, in sage.rings.real_lazy.LazyFieldElement._cmp_ (build/cythonized/sage/rings/real_lazy.c:8630)\r\n    left, right = self.approx(), other.approx()\r\n  File \"sage/rings/real_lazy.pyx\", line 771, in sage.rings.real_lazy.LazyFieldElement.approx (build/cythonized/sage/rings/real_lazy.c:9311)\r\n    return self.eval(self._parent.interval_field())\r\n  File \"sage/rings/real_lazy.pyx\", line 1133, in sage.rings.real_lazy.LazyBinop.eval (build/cythonized/sage/rings/real_lazy.c:12492)\r\n    left = self._left.eval(R)\r\n  File \"sage/rings/real_lazy.pyx\", line 1133, in sage.rings.real_lazy.LazyBinop.eval (build/cythonized/sage/rings/real_lazy.c:12492)\r\n    left = self._left.eval(R)\r\n  File \"sage/rings/real_lazy.pyx\", line 1133, in sage.rings.real_lazy.LazyBinop.eval (build/cythonized/sage/rings/real_lazy.c:12492)\r\n..."}}
{"actor":{"display_login":"AndrewVSutherland"}}