Re: Thread-safety bug in WSGIHandler

2009-03-11 Thread Travis Terry
lse I can do to help get these committed. Travis Propeller.com Malcolm Tredinnick wrote: > On Tue, 2009-03-10 at 10:30 -0400, Travis Terry wrote: > [...] > >> So, my proposed fix is to add a flag in WSGIHandler and then test for >> that flag in __call__(). >>

Thread-safety bug in WSGIHandler

2009-03-10 Thread Travis Terry
I have found an incomplete-initialization bug the WSGIHandler when running under Apache mpm_worker with mod_wsgi. On the first request the WSGIHandler.__call__(...), we set up the middleware. There is a lock wrapping the load of the middleware, but the logic still allows incomplete initializa

Re: Problems with concurrent DB access and get_or_create()

2007-12-04 Thread Travis Terry
Ivan Sagalaev wrote: > > Actually there is a common solution to this problem that doesn't create > duplicates and doesn't fail on second transaction. And as James > correctly has noted it works on database level. The solution is a form > of SELECT called SELECT FOR UPDATE. When one transaction

Re: Problems with concurrent DB access and get_or_create()

2007-12-04 Thread Travis Terry
ent a very non-DRY piece of identical code to handle the situation. Travis Leo Soto M. wrote: > On Dec 4, 2007 3:08 PM, Travis Terry <[EMAIL PROTECTED]> wrote: > >> I've run into a problem with get_or_create() with respect to concurrent >> access of the DB, and

Re: Problems with concurrent DB access and get_or_create()

2007-12-04 Thread Travis Terry
James Bennett wrote: > Ultimately, the database is the only location from which you can solve > this problem, because only the database can reliably know when these > situations are occurring. Solutions implemented outside the DB are > essentially doomed from the start. > > Similarly, an applicat

Problems with concurrent DB access and get_or_create()

2007-12-04 Thread Travis Terry
I've run into a problem with get_or_create() with respect to concurrent access of the DB, and I have looked at the list archives for advice. I found some discussions a while back regarding other's problems but no acceptable solution was ever implemented. I have another proposed solution that