Shawn Harrison
harrison at tbc.net
Wed Feb 23 23:47:34 EST 2005
Very strange Session problem. On Debian Linux 2.4.25, Python 2.3.3, mod_python ??? ("__init__.py,v 1.10 2004/02/16") I've been using session variables to keep a list of the current users' allowed groups. On the login POST script: session = Session.Session(req) # Set the username and groups that this user belongs to grouplist = [] groups = db.select('groups_memberships_users', 'groupname', "username = '%s'" % user.name) for i in range(len(groups)): grouplist.append(groups[i].groupname) session['groups'] = "|".join(grouplist) The result is, for instance, session['groups'] = 'editor|verified|admin' (for me). This has been working just fine. However, today when I called the following code it hangs, every time: def edit_group(req): from mod_python import Session sess = Session.Session(req) # <-- Hangs here sess.load() This is exactly what I have been doing all the time in my authen handler; this is outside of the authen handler in order to get the list of groups and the current user's name (I'm not using Apache authentication at all but am using Session for all of it). Thereafter, any attempt to load a page which needs to access the Session object hangs. That is, anything which is non-public and therefore goes through authen checking. I suppose I could work around this by setting the req table with appropriate data during authen, which would make the user & group info always available. Probably would be more efficient, too. But it begs the question: Is there some reason that this would be happening with Session? Note: The same code works just fine on Windows 2000 w/Apache 2.0.52, but in that case of course it's a MemorySession rather than a DbmSession. So I'm guessing that the difference has to do with the DBM session object or underlying file. Thanks, Shawn Harrison
|