Hi all,

I continue to have problems since I switched database to MySQL and I'm not
making any progress in resolving the issue. Basically, I every so often get
the 'MySQL has gone away' error. It mainly occurs when the site has not
been used for a few minutes, although sometimes also appears randomly. I
have both a paster installation and an Apache mod_wsgi installation
connected to the same MySQL database; both get this error. Traceback is at
the end of this mail; it sometimes occurs when loading a user, sometimes
with another call that is the first one of that particular request.

I've asked the SQLAlchemy guys, and the problem seems to be that a
connection is being picked up from the pool and then left to hang,
triggering this error. However, my understanding is that Pyramid deals with
closing the connection at the end of the request. I did have other (script)
code using the DBSession, but I have stopped that cron and even deleted it
from the application directory in order to try and identify the source of
this error.

My ini file contains:

sqlalchemy.pool_recycle = 30

(no other sqlalchemy settings other than the url).

/etc/my.cnf has:

interactive_timeout=3600

__init__ has:

engine = engine_from_config(settings, 'sqlalchemy.')


I'd really appreciate any ideas at all as to how I can make progress with
this - it's been bugging me for some time and I can't deploy to the client
with this still remaining. The only stuff I have found have been
suggestions about including the pool_recycle in ini, but that doesn't seem
to help.

Thanks for any ideas,
Ben

Traceback (most recent call last):
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/pyramid_exclog-0.5-py2.6.egg/pyramid_exclog/__init__.py",
line 40, in exclog_tween
   return handler(request)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/pyramid-1.2.1-py2.6.egg/pyramid/router.py",
line 153, in handle_request
   response = view_callable(context, request)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/pyramid-1.2.1-py2.6.egg/pyramid/config/views.py",
line 292, in rendered_view
   result = view(context, request)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/pyramid-1.2.1-py2.6.egg/pyramid/config/views.py",
line 402, in _requestonly_view
   response = view(request)
 File "/home/benjamin/myapp/staging/myapp/myapp/views.py", line 107, in home
   if request.user:
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/pyramid-1.2.1-py2.6.egg/pyramid/decorator.py",
line 17, in __get__
   val = self.wrapped(inst)
 File "/home/benjamin/myapp/staging/myapp/myapp/security.py", line 30, in
user
   return session.query(User).filter_by(username=userid).one()
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/SQLAlchemy-0.7.2-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py",
line 1796, in one
   ret = list(self)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/SQLAlchemy-0.7.2-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py",
line 1839, in __iter__
   return self._execute_and_instances(context)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/SQLAlchemy-0.7.2-py2.6-linux-x86_64.egg/sqlalchemy/orm/query.py",
line 1854, in _execute_and_instances
   result = conn.execute(querycontext.statement, self._params)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/SQLAlchemy-0.7.2-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1399, in execute
   params)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/SQLAlchemy-0.7.2-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1532, in _execute_clauseelement
   compiled_sql, distilled_params
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/SQLAlchemy-0.7.2-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1640, in _execute_context
   context)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/SQLAlchemy-0.7.2-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py",
line 1633, in _execute_context
   context)
 File
"/home/benjamin/myapp/staging/lib/python2.6/site-packages/SQLAlchemy-0.7.2-py2.6-linux-x86_64.egg/sqlalchemy/engine/default.py",
line 325, in do_execute
   cursor.execute(statement, parameters)
 File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 173, in
execute
   self.errorhandler(self, exc, value)
 File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36,
in defaulterrorhandler
   raise errorclass, errorvalue
OperationalError: (OperationalError) (2006, 'MySQL server has gone away')
'SELECT users.password ....

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to