Another update: The same application with debug toolbar 2.4.2 works fine. The problem occurs with debug toolbar 2.5, too.
On 15 May 2016 at 20:23, Vinicius Assef <[email protected]> wrote: > 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/CAFmXjSAFM_oH8Y6YC7J%3Dq%3Dj_Ph56UMavD0xOA-U7GcyB3fogAQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
