I'm working off Webware in CVS. Something has changed in the way
Application works with session IDs.

If the browser has been sitting around for a long time and WebKit is
restarted, Application tries to retrieve a stale session object and
fails due to a KeyError:

Traceback (most recent call last):
  File "/opt/Webware/WebKit/Application.py", line 429, in
dispatchRawRequest
    self.runTransaction(trans)
  File "/opt/Webware/WebKit/Application.py", line 476, in runTransaction
    self.runServlet(servlet, trans)
  File "/opt/Webware/WebKit/Application.py", line 501, in runServlet
    servlet.runTransaction(trans)
  File "./WebKit/Servlet.py", line 43, in runTransaction
  File "/home/elian/mefa/SiteLib/Page.py", line 169, in sleep
    self.showDebugInfo()
  File "/home/elian/mefa/SiteLib/Page.py", line 628, in showDebugInfo
    print "DDD", self._transaction.session()
  File "./WebKit/Transaction.py", line 67, in session
  File "/opt/Webware/WebKit/Application.py", line 307, in
createSessionForTransaction
    session = self.session(sessId)
  File "/opt/Webware/WebKit/Application.py", line 275, in session
    return self._sessions[sessionId]
  File "./WebKit/SessionDynamicStore.py", line 74, in __getitem__
  File "./WebKit/SessionMemoryStore.py", line 33, in __getitem__
KeyError: 20030602003014-fbebd581e95e13ee6e46ca494f376a46


What is happening is that the new version of createSessionForTransaction assumes that sessId is a valid, fresh session ID, so that it doesn't catch the KeyError. The lines in question are marked with *


sessId = transaction.request().sessionId() if debug: print prefix, 'sessId =', sessId * if sessId: * session = self.session(sessId) * if debug: print prefix, 'retrieved session =', session * else: * session = Session(transaction) * self._sessions[session.identifier()] = session * if debug: print prefix, 'created session =', session


I'm thinking that that following patch will fix this:


diff -r1.171 Application.py
306c306
<       if sessId:
---
>       try:
309c309
<       else:
---
>       except KeyError:


Shall I submit this to via SourceForge?



...Edmund.






-------------------------------------------------------
This SF.net email is sponsored by: eBay
Get office equipment for less on eBay!
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
Webware-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-devel

Reply via email to