Google Groups Home
Help | Sign in
mod_wsgi + database transaction problems.
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  7 messages - Collapse all
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
vandevel  
View profile
 More options Mar 28, 7:17 pm
From: vandevel <vande...@gmail.com>
Date: Fri, 28 Mar 2008 16:17:38 -0700 (PDT)
Local: Fri, Mar 28 2008 7:17 pm
Subject: mod_wsgi + database transaction problems.
I am wondering if anyone has experienced database transaction problems
using mod_wsgi 1.3.
My turbogears project is based on TG 1.0.4.4 using SQLObject and I am
observing this error when executing some controller methods:

AssertionError: This transaction has already gone through ROLLBACK;
begin another transaction.

This only occurs when running the app behind mod_wsgi, however it is
not a problem when running the app straight from cherrypy. Clearly,
mod_wsgi is doing something which causes the app to behave in this
manner.

Any insight would be appreciated. Thanks!


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
vandevel  
View profile
 More options Mar 28, 7:20 pm
From: vandevel <vande...@gmail.com>
Date: Fri, 28 Mar 2008 16:20:23 -0700 (PDT)
Local: Fri, Mar 28 2008 7:20 pm
Subject: Re: mod_wsgi + database transaction problems.
Further to this, SQLObject is using the psycopg2 library.

On Mar 28, 7:17 pm, vandevel <vande...@gmail.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Graham Dumpleton  
View profile
 More options Mar 28, 10:48 pm
From: Graham Dumpleton <Graham.Dumple...@gmail.com>
Date: Fri, 28 Mar 2008 19:48:44 -0700 (PDT)
Local: Fri, Mar 28 2008 10:48 pm
Subject: Re: mod_wsgi + database transaction problems.

On Mar 29, 10:17 am, vandevel <vande...@gmail.com> wrote:

> I am wondering if anyone has experienced database transaction problems
> usingmod_wsgi1.3.
> My turbogears project is based on TG 1.0.4.4 using SQLObject and I am
> observing this error when executing some controller methods:

> AssertionError: This transaction has already gone through ROLLBACK;
> begin another transaction.

> This only occurs when running the app behindmod_wsgi, however it is
> not a problem when running the app straight from cherrypy. Clearly,mod_wsgiis doing something which causes the app to behave in this
> manner.

More information required.

Are you running your application in embedded mode of mod_wsgi or in
daemon mode? If in embedded mode, you did read about the problems with
SQLObject and multiprocess web servers in:

  http://code.google.com/p/modwsgi/wiki/IntegrationWithTurboGears

If running in daemon mode, are you running it as Apache user, or did
you configure daemon process to run as you? Also, if in daemon mode,
how many processes did you set for the daemon process group. Like
above, if more than one and using multiprocess server, there can be
issues, although it shouldn't be what you are seeing.

Anyway, post what the mod_wsgi configuration you are using is from
your Apache configuration.

Graham


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
vandevel  
View profile
 More options Mar 29, 1:18 am
From: vandevel <vande...@gmail.com>
Date: Fri, 28 Mar 2008 22:18:34 -0700 (PDT)
Local: Sat, Mar 29 2008 1:18 am
Subject: Re: mod_wsgi + database transaction problems.
Thanks for the prompt response. I am aware of the problems with using
SQLObject in a multi-process environment
so mod_wsgi was configured to run in daemon mode. I'm not entirely
familiar with apache configuration so I am guessing the daemon
process is running as Apache user since I did not explicitly set that
configuration option.

I did discover an issue in the my code which lead to the error when
mod_wsgi is enabled. I loaded a dictionary of SQLObject instances at
module scope in a controller module in order to avoid hitting the
database with each request.  This dictionary of course persists across
transactions so perhaps that indicates something. To resolve the
issue, I simply copied the data into
wrapper objects in order to disconnect the data from the SQLObject
machinery. That did the trick, however, I am a curious to know if
there is a more intelligent solution. It is worth pointing out that I
did set cacheValues=False in the SQLObject class definition and that
did not solve the problem.

The apache configuration is as follows(purged of sensitive details of
course):

WSGIDaemonProcess site-1 threads=25
WSGIProcessGroup site-1

Alias /static /project_dir/static

WSGIScriptAlias / /project_dir/project.wsgi

NameVirtualHost *:80
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /project_dir

        # Possible values include: debug, info, notice, warn, error,
crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

        <Directory /project_dir>
           Order deny,allow
           Allow from all
        </Directory>
</VirtualHost>

Thanks for your help!

On Mar 28, 10:48 pm, Graham Dumpleton <Graham.Dumple...@gmail.com>
wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
GSP  
View profile
 More options Mar 31, 9:02 pm
From: GSP <baycity...@gmail.com>
Date: Mon, 31 Mar 2008 18:02:32 -0700 (PDT)
Local: Mon, Mar 31 2008 9:02 pm
Subject: Re: mod_wsgi + database transaction problems.
Hello Graham,

Based on the provided info and configuration, were you able to
identify a potential cause of the database transaction issues that I
observed.?
My work around was admittedly less than ideal and I am still curious
to know why the problem only occurs when using mod_wsgi.

Thanks!

On Mar 29, 1:18 am, vandevel <vande...@gmail.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Graham Dumpleton  
View profile
 More options Mar 31, 9:11 pm
From: Graham Dumpleton <Graham.Dumple...@gmail.com>
Date: Mon, 31 Mar 2008 18:11:11 -0700 (PDT)
Local: Mon, Mar 31 2008 9:11 pm
Subject: Re: mod_wsgi + database transaction problems.
As you seemed to have a think, didn't really look any further. Plus, I
haven't ever used SQLObject so it is hard for me to say anyway.

All I could suggest is for your to come up with a working example of
the problem using SQLObject directly from a simple WSGI hello world
program and independent of TurboGears. That would make it easier to
debug. It is possible that such a hello world type test program may
work as it may be related somehow to TG or CherryPy internals.

Graham

On Apr 1, 11:02 am, GSP <baycity...@gmail.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mark Ramm  
View profile
 More options Apr 1, 12:24 am
From: "Mark Ramm" <mark.mchristen...@gmail.com>
Date: Tue, 1 Apr 2008 00:24:59 -0400
Local: Tues, Apr 1 2008 12:24 am
Subject: Re: [TurboGears] Re: mod_wsgi + database transaction problems.
I think there's a general way to clear out the SQLObject cache better
than has been done in TG.   I think it was added to a more recent
version of SO, and I must admit to not being a regular SO user in the
last year or so.

If somebody using SO could take a look at this ticket, I think it
might have suggestions that lead to a resolution of  this issue.

http://trac.turbogears.org/ticket/85

Of course, I use SA and it's been resolved there... But if there's a
good SO solution, we should try to get that figured out.

--Mark Ramm

--
Mark Ramm-Christensen
email: mark at compoundthinking dot com
blog: www.compoundthinking.com/blog

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2008 Google