Thanks, applied. On Tue, Oct 10, 2017 at 8:13 AM, Harshal Dhumal < harshal.dhu...@enterprisedb.com> wrote:
> Hi Dave, > > Please find attached patch (old RM2713). > Also for server group and server module login required checks were missing, > I have added them in same patch > > -- > *Harshal Dhumal* > *Sr. Software Engineer* > > EnterpriseDB India: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > On Tue, Oct 10, 2017 at 11:39 AM, Harshal Dhumal < > harshal.dhu...@enterprisedb.com> wrote: > >> Hi David, >> >> Thanks for you input. Session was not invalidated (otherwise execution >> would not have reached to connection manager); Only value of '_id' was >> changed for session. >> >> If we look at code >> <https://github.com/maxcountryman/flask-login/blob/master/flask_login/utils.py#L333> >> how '_id' is generated then we can see it uses remote address and user-agent >> to generate it. I thing we should use another session identifier (sid - >> session id) to map user connection from connection manager. >> >> -- >> *Harshal Dhumal* >> *Sr. Software Engineer* >> >> EnterpriseDB India: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> >> On Mon, Oct 9, 2017 at 10:18 PM, David Gilman <davidgilm...@gmail.com> >> wrote: >> >>> You can probably stand down on this one. The issue was that my PC was >>> switching back and forth between IPv4 and IPv6 for whatever reason and when >>> that happened the cookie and my session would get invalidated. Maybe it is >>> worth making code changes so you don't get Python tracebacks dumped to the >>> error logs every time this happens but I have been able to resolve the >>> issue by turning off IPv6 temporarily. That was an interesting one to >>> troubleshoot! >>> >>> On Mon, Oct 9, 2017 at 4:30 AM, Harshal Dhumal < >>> harshal.dhu...@enterprisedb.com> wrote: >>> >>>> sure Dave >>>> >>>> -- >>>> *Harshal Dhumal* >>>> *Sr. Software Engineer* >>>> >>>> EnterpriseDB India: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>>> On Mon, Oct 9, 2017 at 1:16 PM, Dave Page <dp...@pgadmin.org> wrote: >>>> >>>>> Harshal, can you help with this please? >>>>> >>>>> On Sun, Oct 8, 2017 at 12:39 AM, David Gilman <davidgilm...@gmail.com> >>>>> wrote: >>>>> >>>>>> I'm trying out pgadmin4 v2.0 for the first time. It seems that after >>>>>> only a few minutes (maybe even less than five) my pgadmin4 session will >>>>>> get >>>>>> logged out and I'll need to log in again and reopen everything from >>>>>> scratch. This exception is thrown in the mod_wsgi logs: >>>>>> >>>>>> mod_wsgi (pid=5965): Exception occurred processing WSGI script >>>>>> '/home/pgadmin/venv/lib/python2.7/site-packages/pgadmin4/pgA >>>>>> dmin4.wsgi'. >>>>>> Traceback (most recent call last): >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask/app.py", >>>>>> line 2000, in __call__ >>>>>> return self.wsgi_app(environ, start_response) >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask/app.py", >>>>>> line 1991, in wsgi_app >>>>>> response = self.make_response(self.handle_exception(e)) >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask/app.py", >>>>>> line 1567, in handle_exception >>>>>> reraise(exc_type, exc_value, tb) >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask/app.py", >>>>>> line 1988, in wsgi_app >>>>>> response = self.full_dispatch_request() >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask/app.py", >>>>>> line 1641, in full_dispatch_request >>>>>> rv = self.handle_user_exception(e) >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask/app.py", >>>>>> line 1544, in handle_user_exception >>>>>> reraise(exc_type, exc_value, tb) >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask/app.py", >>>>>> line 1639, in full_dispatch_request >>>>>> rv = self.dispatch_request() >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask/app.py", >>>>>> line 1625, in dispatch_request >>>>>> return self.view_functions[rule.endpoint](**req.view_args) >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/flask_login.py", >>>>>> line 792, in decorated_view >>>>>> return func(*args, **kwargs) >>>>>> File >>>>>> "/home/pgadmin/venv/lib/python2.7/site-packages/pgadmin4/pgadmin/dashboard/__init__.py", >>>>>> line 169, in wrap >>>>>> kwargs['sid'] >>>>>> File "/home/pgadmin/venv/lib/python2.7/site-packages/pgadmin4/pga >>>>>> dmin/utils/driver/psycopg2/__init__.py", line 2000, in >>>>>> connection_manager >>>>>> if session['_id'] not in self.managers: >>>>>> File >>>>>> "/home/pgadmin/venv/local/lib/python2.7/site-packages/werkzeug/local.py", >>>>>> line 368, in <lambda> >>>>>> __getitem__ = lambda x, i: x._get_current_object()[i] >>>>>> KeyError: '_id' >>>>>> >>>>>> My setup: >>>>>> pgadmin4 v2.0 . The configuration is all defaults except >>>>>> for LOG_FILE/SQLITE_PATH/SESSION_DB_PATH/STORAGE_DIR. That >>>>>> means MAX_SESSION_IDLE_TIME is at its default of 60 (minutes). >>>>>> pgadmin4 is in server mode with mod_wsgi as a host. >>>>>> PostgreSQL 9.4.14 - from the postgres apt repository. No changes >>>>>> made to timeouts or anything in the postgresql.conf , it's all defaults. >>>>>> Python 2.7 >>>>>> psycopg2 2.7.3.1 >>>>>> >>>>>> I can confirm that the apache process hosting pgadmin4 is running >>>>>> under the right UNIX user account and that it seems to have good >>>>>> access/permissions to its scratch files on disk. I see updates being >>>>>> made >>>>>> to pgadmin4.db and the sessions directory. >>>>>> >>>>>> -- >>>>>> David Gilman >>>>>> :DG< >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>> >>> >>> -- >>> David Gilman >>> :DG< >>> >> >> > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company