[ 
https://issues.apache.org/jira/browse/MODPYTHON-175?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Graham Dumpleton closed MODPYTHON-175.
--------------------------------------


> PSP error page accessing session object can cause a deadlock.
> -------------------------------------------------------------
>
>                 Key: MODPYTHON-175
>                 URL: https://issues.apache.org/jira/browse/MODPYTHON-175
>             Project: mod_python
>          Issue Type: Bug
>    Affects Versions: 3.2.8
>            Reporter: Graham Dumpleton
>         Assigned To: Graham Dumpleton
>             Fix For: 3.3
>
>
> If a session object is required for a PSP page, the session object will be 
> created automatically with the session being locked at the same time, when 
> PSP.run() is called. If an error page is generated by the session page it in 
> turn will then be run. The problem is that the session lock is still held by 
> the main page and thus if the error page itself tries to also access the 
> session object, when the PSP.run() method of the error page is called, it 
> will create a new instance of the session object which will result in a 
> deadlock.
> In MODPYTHON-38, the suggested change was that when PSP.run() creates the 
> session object that it assign it back to req.session. This change was not 
> made, but if it was then when the error page was run, it would simply have 
> inherited the session object which had already been created by the main page 
> and a deadlock would not have ensued.
> Thus could should read as:
>         session = None
>         if "session" in code.co_names:
>             if hasattr(req, 'session'):
>                 session = req.session
>             else:
>                 req.session = session = Session.Session(req)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to