Joe, were you able to apply this patch?
Cheers, El Friday, January 1, 2021 a la(s) 6:45:16 PM UTC-5, Joe Barnhart escribió: > Here is a patch that restores redis3 sessions for my system. I'm using > the latest web2py 2.21.1 and redis stable 6.0.9 (via brew) > > *diff --git a/gluon/contrib/redis_session.py > b/gluon/contrib/redis_session.py* > *index 6413b52a..73c20422 100644* > *--- a/gluon/contrib/redis_session.py* > *+++ b/gluon/contrib/redis_session.py* > *@@ -13,7 +13,7 @@ from gluon import current* > * from gluon.storage import Storage* > * from gluon.contrib.redis_utils import acquire_lock, release_lock* > * from gluon.contrib.redis_utils import register_release_lock* > *-from gluon._compat import to_native* > *+from gluon._compat import to_native,to_bytes* > * from datetime import datetime* > > * logger = logging.getLogger("web2py.session.redis")* > *@@ -208,7 +208,7 @@ class MockQuery(object):* > * if rtn:* > * if self.unique_key:* > * # make sure the id and unique_key are correct* > *- if rtn['unique_key'] == to_native(self.unique_key):* > *+ if rtn['unique_key'] == to_bytes(self.unique_key):* > * rtn['update_record'] = self.update # update > record support* > * else:* > * rtn = None* > > > Does anyone know how to make code blocks in this new stupid Google Groups > window? Sheesh. One step sideways and three steps back. > > -- Joe > > On Wednesday, September 11, 2019 at 12:11:13 AM UTC-5 Massimo Di Pierro > wrote: > >> :-) >> >> >> On Monday, 9 September 2019 22:40:36 UTC-7, Joe Barnhart wrote: >>> >>> ROFL! I don't think it's quite ready for my prime-time cash-producing >>> website yet. I'll definitely keep an eye on it and start playing around >>> with it. I need to keep you from making any decisions I don't like, after >>> all! >>> >>> -- Joe >>> >>> >>> On Monday, September 9, 2019 at 8:48:54 PM UTC-7, Massimo Di Pierro >>> wrote: >>>> >>>> py4web supports redis. Just saying. ;-) >>>> >>>> On Monday, 9 September 2019 09:27:20 UTC-7, Joe Barnhart wrote: >>>>> >>>>> I sure wish somebody could fix this. It's a real bottleneck to >>>>> Python3 adoption for my site. I tried using local storage for sessions >>>>> but >>>>> the limitation on data size makes it a no-go for my site. If I can't use >>>>> redis I'll have to drop back to storing sessions in files and that really >>>>> sucks for a larger deployment. >>>>> >>>>> -- Joe >>>>> >>>>> On Monday, April 1, 2019 at 11:31:10 PM UTC-7, Massimo Di Pierro wrote: >>>>>> >>>>>> we could change True/False with 1/0 but a better approach would be to >>>>>> remove the value within the redis adapter. The value of locked does not >>>>>> do >>>>>> anything anyway on redis since it is not a relational database with >>>>>> transactions. >>>>>> >>>>>> On Sunday, 31 March 2019 10:19:20 UTC-7, Jim S wrote: >>>>>>> >>>>>>> I changed the following in gluon/globals.py and mine is working >>>>>>> now. But, I'm unclear on how to test to see if it is handling the >>>>>>> locking >>>>>>> properly: >>>>>>> >>>>>>> dd = dict(locked=False, >>>>>>> client_ip=response.session_client, >>>>>>> modified_datetime=request.now, >>>>>>> session_data=session_pickled, >>>>>>> unique_key=unique_key) >>>>>>> >>>>>>> to >>>>>>> >>>>>>> dd = dict(locked='False', >>>>>>> client_ip=response.session_client, >>>>>>> modified_datetime=str(request.now), >>>>>>> session_data=session_pickled, >>>>>>> unique_key=unique_key) >>>>>>> >>>>>>> This makes all my stuff work (I'm still on Python 2.7 but I think >>>>>>> the problem has to do with the python redis client moving to version 3). >>>>>>> >>>>>>> Leonel - I think this relates back to an issue you commented on late >>>>>>> last year. >>>>>>> https://groups.google.com/forum/?pli=1#!searchin/web2py/redis%7Csort:date/web2py/PdquGF_9a2E/6VJpLqsnBgAJ >>>>>>> >>>>>>> At that time I just continued using python redis 2.10.6. But, can't >>>>>>> do that forever. Anyone able to test or improve upon the change I made >>>>>>> above? Like I said, it works for me, but I don't know how to see if >>>>>>> I'm >>>>>>> causing any other unforeseen damage. >>>>>>> >>>>>>> -Jim >>>>>>> >>>>>>> On Friday, March 29, 2019 at 7:49:03 PM UTC-5, Joe Barnhart wrote: >>>>>>>> >>>>>>>> Hi Leonel -- >>>>>>>> >>>>>>>> My brain refuses to put together the words "session locked field". >>>>>>>> I understand the part of pickle smashing the values and encoding them >>>>>>>> as >>>>>>>> one string. The bool has something to do with session locking? >>>>>>>> >>>>>>>> I've only looked at the web2py redis code in the most scant way as >>>>>>>> I wasn't planning to become a redis expert. Sessions in redis could >>>>>>>> be >>>>>>>> important to me, tho, so I may need to set aside some time to dig into >>>>>>>> it. >>>>>>>> (Storing sessions in cookies has been problematic due to the limited >>>>>>>> space >>>>>>>> for cookies in browsers.) >>>>>>>> >>>>>>>> -- Joe >>>>>>>> >>>>>>>> >>>>>>>> On Wednesday, March 27, 2019 at 4:49:25 PM UTC-7, Leonel Câmara >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> It's not your values Joe, pickle serializes them as a string so >>>>>>>>> they would be fine. It's web2py session locked field which is True or >>>>>>>>> False. It's probably easy to fix this in redis_session.py >>>>>>>>> >>>>>>>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/6c019673-5c23-475a-9e10-c466e0d536e1n%40googlegroups.com.