On IRC, inklesspen reached the problem: it is with debug toolbar. Disabling it, the app works nice.
The problem occurs with pyramid 1.6.1 too. On 15 May 2016 at 20:05, Vinicius Assef <[email protected]> wrote: > Following Steve Piercy's suggestion on IRC, I just tried using code from > here: > https://github.com/Pylons/pyramid/tree/1.7-branch/docs/tutorials/wiki2/src/authentication > > The problem continues to me. Would it be some problem with the tutorial? > > On 15 May 2016 at 18:42, Vinicius Assef <[email protected]> wrote: > >> I'm following the SQLAlchemy + URL dispatch wiki tutorial [1] in Pyramid >> 1.7b4 and I'm getting an error in the step "Adding Authentication" [2]. >> >> After making all recommended modifications in source files, I run the >> application. >> >> I can see any wiki page created, but when I submit the login form, I see >> the following message in browser: >> >> Internal Server Error >> >> The server encountered an unexpected internal server error >> >> (generated by waitress) >> >> >> The traceback generated on console is as follows: >> >> 2016-05-15 18:13:58,519 INFO >> [sqlalchemy.engine.base.Engine:646][waitress] BEGIN (implicit) >> 2016-05-15 18:13:58,520 INFO >> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT users.id AS >> users_id, users.name AS users_name, users.role AS users_role, >> users.password_hash AS users_password_hash >> FROM users >> WHERE users.name = ? >> LIMIT ? OFFSET ? >> 2016-05-15 18:13:58,520 INFO >> [sqlalchemy.engine.base.Engine:1100][waitress] ('editor', 1, 0) >> 2016-05-15 18:13:58,829 INFO >> [sqlalchemy.engine.base.Engine:666][waitress] ROLLBACK >> 2016-05-15 18:13:58,841 INFO >> [sqlalchemy.engine.base.Engine:646][waitress] BEGIN (implicit) >> 2016-05-15 18:13:58,842 INFO >> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT pages.id AS >> pages_id, pages.name AS pages_name, pages.data AS pages_data, >> pages.creator_id AS pages_creator_id >> FROM pages >> WHERE pages.name = ? >> LIMIT ? OFFSET ? >> 2016-05-15 18:13:58,842 INFO >> [sqlalchemy.engine.base.Engine:1100][waitress] ('FrontPage', 1, 0) >> 2016-05-15 18:13:58,857 INFO >> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT pages.id AS >> pages_id, pages.name AS pages_name, pages.data AS pages_data, >> pages.creator_id AS pages_creator_id >> FROM pages >> WHERE pages.name = ? >> 2016-05-15 18:13:58,858 INFO >> [sqlalchemy.engine.base.Engine:1100][waitress] ('ViniciusPage',) >> 2016-05-15 18:13:58,859 INFO >> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT pages.id AS >> pages_id, pages.name AS pages_name, pages.data AS pages_data, >> pages.creator_id AS pages_creator_id >> FROM pages >> WHERE pages.name = ? >> 2016-05-15 18:13:58,859 INFO >> [sqlalchemy.engine.base.Engine:1100][waitress] ('RosangelaPage',) >> 2016-05-15 18:13:58,862 INFO >> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT users.id AS >> users_id, users.name AS users_name, users.role AS users_role, >> users.password_hash AS users_password_hash >> FROM users >> WHERE users.id = ? >> 2016-05-15 18:13:58,862 INFO >> [sqlalchemy.engine.base.Engine:1100][waitress] (1,) >> 2016-05-15 18:13:58,865 INFO >> [sqlalchemy.engine.base.Engine:666][waitress] ROLLBACK >> 2016-05-15 18:13:58,866 ERROR [waitress:341][waitress] Exception when >> serving /FrontPage >> Traceback (most recent call last): >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/waitress/channel.py", >> line 338, in service >> task.service() >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/waitress/task.py", >> line 169, in service >> self.execute() >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/waitress/task.py", >> line 399, in execute >> app_iter = self.channel.server.application(env, start_response) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid/router.py", >> line 236, in __call__ >> response = self.invoke_subrequest(request, use_tweens=True) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid/router.py", >> line 211, in invoke_subrequest >> response = handle_request(request) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid_debugtoolbar/toolbar.py", >> line 266, in toolbar_tween >> toolbar.process_response(request, response) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid_debugtoolbar/toolbar.py", >> line 87, in process_response >> panel.process_response(response) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid_debugtoolbar/panels/request_vars.py", >> line 112, in process_response >> extracted_attributes = extract_request_attributes(self.request) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid_debugtoolbar/panels/request_vars.py", >> line 56, in extract_request_attributes >> if not hasattr(request, attr_): >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid/security.py", >> line 344, in authenticated_userid >> return policy.authenticated_userid(self) >> File >> "/Users/viniciusban/projects/tutoriais-pyramid/sqla/sqla/security.py", line >> 11, in authenticated_userid >> return user.id >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/sqlalchemy/orm/attributes.py", >> line 237, in __get__ >> return self.impl.get(instance_state(instance), dict_) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/sqlalchemy/orm/attributes.py", >> line 578, in get >> value = state._load_expired(state, passive) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/sqlalchemy/orm/state.py", >> line 474, in _load_expired >> self.manager.deferred_scalar_loader(self, toload) >> File >> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/sqlalchemy/orm/loading.py", >> line 610, in load_scalar_attributes >> (state_str(state))) >> sqlalchemy.orm.exc.DetachedInstanceError: Instance <User at 0x111ac67f0> >> is not bound to a Session; attribute refresh operation cannot proceed >> >> >> According to this traceback, the error is raised at the last line of >> MyAuthenticationPolicy class when I try to access request.user: >> >> class MyAuthenticationPolicy(AuthTktAuthenticationPolicy): >> def authenticated_userid(self, request): >> user = request.user >> if user is not None: >> return user.id >> >> Strange is I can access http://localhost:6543/404 by hand and see the >> request.user.name showed next to the "Logout" link (coming from the >> layout.jinja2 template). >> >> I can log out successfuly. >> >> Any advice? >> >> >> For more information, I am using Python 3.5.1 in OS X El Capitan. Here >> are all libs installed in my virtualenv: >> >> $ pip freeze >> bcrypt==2.0.0 >> beautifulsoup4==4.4.1 >> cffi==1.6.0 >> coverage==4.0.3 >> docutils==0.12 >> Jinja2==2.8 >> Mako==1.0.4 >> MarkupSafe==0.23 >> PasteDeploy==1.5.2 >> py==1.4.31 >> pycparser==2.14 >> Pygments==2.1.3 >> pyramid==1.7b4 >> pyramid-debugtoolbar==3.0 >> pyramid-jinja2==2.6.2 >> pyramid-mako==1.0.2 >> pyramid-tm==0.12.1 >> pytest==2.9.1 >> pytest-cov==2.2.1 >> repoze.lru==0.6 >> six==1.10.0 >> sqla==0.0 >> SQLAlchemy==1.0.12 >> transaction==1.5.0 >> translationstring==1.3 >> venusian==1.0 >> waitress==0.9.0 >> WebOb==1.6.0 >> WebTest==2.0.21 >> zope.deprecation==4.1.2 >> zope.interface==4.1.3 >> zope.sqlalchemy==0.7.6 >> >> >> [1] >> http://docs.pylonsproject.org/projects/pyramid/en/1.7-branch/tutorials/wiki2/index.html >> [2] >> http://docs.pylonsproject.org/projects/pyramid/en/1.7-branch/tutorials/wiki2/authentication.html >> >> >> I already checked my source code and it is according to the tutorial >> recommendations. What must I do to fix it? >> Any help is very appreciated. >> >> -- >> Vinicius Assef >> >> >> >> > -- You received this message because you are subscribed to the Google Groups "pylons-discuss" 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/CAFmXjSBnBRTt4JahnTRr961x9i2GSfnYPT3LFcGr325D91SreQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
