|
Joshua Ginsberg
listspam at flowtheory.net
Thu Jun 23 18:33:39 EDT 2005
Hi Jim -- replies inline...
On Jun 23, 2005, at 3:01 PM, Jim Gallacher wrote:
> Nothing obvious comes to mind with the information, but I'll comment
> anyway. :)
>
> Joshua Ginsberg wrote:
>> I have an application that I developed using PSP pages. It is seven
>> steps to sign somebody up with our company. It worked just great
>> yesterday, this morning, it hangs going from step 1 to step 2, but
>> only with certain input data.
>
> Is it always the *same* data? What is different about that data?
Certain input data. What's different about the data is it fails certain
error checking tests.
>> I have a development server for it that queries the same MySQL and
>> MSSQL databases -- it hangs too at the same point. I inserted some
>> debug output in the development server to see where it's hanging up.
>
> Not clear in the following where it is hanging. It either hangs at one
> point or the other. Can't hang at 2 places at once, so which is it?
It hangs at the same point on both the development server and the
production server.
>> When I don't have a Session defined, it hangs up at a section that is:
>> - a call to an API that inserts some data in a MySQL server
>> - a call to psp.redirect (which should throw an error because i've
>> already returned stuff to the client, but it doesn't throw an error)
>
> Does psp.redirect get called or are you saying it hangs before it
> reaches the redirect?. The beauty of python is you can jump right it
> and change it. Stick a self.req.log_error() into the psp.redirect
> method in psp.py and make sure it actually reaches that point if you
> are in doubt.
I believe it is getting the the psp.redirect and hanging. As I said in
my other post, it hangs at a different point when I enter form data
that is bad in another way and a psp.redirect is being called.
>> Trying that API from command line by hand works like a charm, so I'm
>> not convinced it's the API.
>> When I do have a Session defined, it hangs up on trying to import the
>> session.
>
> Import the session or create the session? ie
> import Session
> vs.
> sess = Session.DbmSession(req)
class BSISession(Session.DbmSession):
def __getitem__(self, key):
try:
return super(BSISession, self).__getitem__(key)
except KeyError:
return ''
It hangs on:
sess=SignupLib.BSISession(req)
The session is not new at this point, so it's reading it from the DBM
file.
> If you mean creating the session, it sounds like a deadlock issue.
> There are known problems when using sessions in conjunction with psp
> pages, where you create a session before calling a psp page which
> contains a variable named 'session'. You'll need to manually save and
> unlock the session before calling the psp run method.
>
> If you are on Windows there is a double whammy if you are trying to
> use DbmSession in your handler code. The psp code will try to create a
> new session instance but using MemorySession instead of DbmSession.
> (It's not really Windows specific, it just that the default apache mpm
> on Windows is threaded and so MemorySession is selected as the
> default. And, it's is not actually a deadlock issue, but it will make
> it appear like your session data is getting lost.)
>
Apache on Linux.
> These issues will be fixed in the soon to be released (we all hope)
> version 3.2.
>
>> I've got a wrapper around the Session,DbmSession class which
>> basically does nothing but return an empty string instead of raising
>> an error if a key doesn't exist.
>
> So could this be masking some important information if an exception is
> being raised?
>
My code is above... I think it's unlikely, but you tell me...
>> I've already cleared the dbm file, started over from scratch, and
>> ensured that the dbm file is readable/writable by apache.
>> I cleared the semaphore array for Apache, I've restarted Apache, I've
>> restarted MySQL, and none of it has helped...
>> Anybody have any ideas? I'm just stumped at this point. If you need
>> code snippets or the site to test it out on, let me know. Thanks!
>
> Sorry I couldn't really help, but at least there a few more things for
> you to think about.
>
I appreciate the feedback... but I'm afraid I'm still stuck... :-/
-jag
|