Yes Anthony, pretty sure. The little hash that you see in the logs *is* the cookie. Otherwise I can not grep for the relevant log messages (lots of activity going on with 10 parallel requests). This is the code that I have at the very top of my db.py:
try: cookie_value = request.cookies[response.session_id_name].value except: cookie_value = None from gluon.tools import tools_tracer tools_tracer.setid(cookie_value) (tools_tracer is part of my instrumentation) And that setid call with compute a cookie hash for my logs. On Thursday, January 17, 2013 5:32:22 AM UTC+1, Anthony wrote: > > You're sure the client is sending the session cookie each time? > > On Wednesday, January 16, 2013 10:19:01 PM UTC-5, Daniel Gonzalez wrote: >> >> Hi, >> >> I am doing stress testing of my web2py application. The way I am doing >> this is: >> >> - 10 parallel clients >> - the clients log-in automatically, and obtain the session cookie >> - the clients log-in only *once* at the start of testing. >> - I use the session cookie to tag log messages in order to look for >> mý problem: this way I can relate the log messages to a specific client. >> - I am looking for problems in the web2py code, specifically in >> tools.py, Auth.__init__, where the auth.user is defined >> >> This is my instrumented code (in tools.py, Auth.__init__): >> >> if auth is None: >> tools_tracer.show('session.auth is None') >> if auth and auth.last_visit and auth.last_visit + \ >> datetime.timedelta(days=0, seconds=auth.expiration) >request >> .now: >> tools_tracer.show('session.auth active, last_visit=%s', auth. >> last_visit) >> self.user = auth.user >> # this is a trick to speed up sessions >> if (request.now - auth.last_visit).seconds > (auth.expiration >> / 10): >> auth.last_visit = request.now >> else: >> self.user = None >> if session.auth: >> del session.auth >> tools_tracer.show('session.auth expired') >> >> And (in tools.py, Auth.login_user): >> >> current.session.auth = Storage( >> user = user, >> last_visit=current.request.now, >> expiration=self.settings.expiration, >> hmac_key=web2py_uuid()) >> tools_tracer.show('session.auth created') >> >> This is my current log: >> >> 2013-01-17 04:00:41,816 - Thread-5 - c2d769 session.auth >> is None >> 2013-01-17 04:00:41,861 - Thread-5 - c2d769 session.auth >> created >> 2013-01-17 04:00:41,984 - Thread-6 - c2d769 session.auth >> active, last_visit=2013-01-17 04:00:41.791030 >> 2013-01-17 04:00:48,923 - Thread-7 - c2d769 session.auth >> is None >> 2013-01-17 04:01:51,131 - Thread-10 - c2d769 session.auth >> is None >> 2013-01-17 04:01:51,214 - Thread-9 - c2d769 session.auth >> is None >> 2013-01-17 04:02:42,506 - Thread-6 - c2d769 session.auth >> is None >> 2013-01-17 04:04:42,791 - Thread-9 - c2d769 session.auth >> active, last_visit=2013-01-17 04:04:07.717197 >> 2013-01-17 04:04:42,816 - Thread-4 - c2d769 session.auth >> is None >> 2013-01-17 04:04:48,862 - Thread-10 - c2d769 session.auth >> is None >> 2013-01-17 04:04:49,251 - Thread-6 - c2d769 session.auth >> is None >> 2013-01-17 04:05:35,713 - Thread-7 - c2d769 session.auth >> is None >> 2013-01-17 04:06:39,764 - Thread-8 - c2d769 session.auth >> active, last_visit=2013-01-17 04:06:10.853567 >> 2013-01-17 04:06:39,803 - Thread-2 - c2d769 session.auth >> is None >> 2013-01-17 04:07:35,154 - Thread-8 - c2d769 session.auth >> active, last_visit=2013-01-17 04:07:00.261709 >> 2013-01-17 04:07:40,860 - Thread-9 - c2d769 session.auth >> is None >> 2013-01-17 04:07:46,176 - Thread-8 - c2d769 session.auth >> is None >> 2013-01-17 04:07:46,266 - Thread-5 - c2d769 session.auth >> is None >> 2013-01-17 04:08:27,416 - Thread-9 - c2d769 session.auth >> active, last_visit=2013-01-17 04:08:03.492030 >> 2013-01-17 04:08:27,436 - Thread-2 - c2d769 session.auth >> is None >> 2013-01-17 04:09:31,485 - Thread-10 - c2d769 session.auth >> is None >> 2013-01-17 04:11:21,903 - Thread-7 - c2d769 session.auth >> is None >> 2013-01-17 04:12:20,207 - Thread-10 - c2d769 session.auth >> is None >> >> (the c2d769 is a hash of the cookie, and identifies the client) >> >> As you can see, very often (for this specific client, other clients have >> fewer problems), the session.auth is not there. But then suddenly, in the >> following request, it is there again. >> >> What can be causing this strange problem? >> >> Thanks, >> Daniel >> >> --