Hi All,

I have a projects using SQLAlchemy 0.6.1 on a Zope app server where I have a SQLAlchemy session that's basically used to call a set of about 3 MySQL stored procedures to do some auth checks for the app. Sadly these stored procs are not maintained by me, and while I suspect they're the cause of this issue, I can't do much about them...

Every so often, I get MySQL InnoDB transactions that report their state as '', with no transaction info according to the MySQL processlist table, but which are active according to the INNODB_TRX table.

That in itself is weird, and if anyone knows what that means or how to solve it, I'm very interested ;-)

However, if I use mysql's kill statement to kill the thread associated with that transaction, I then get the following error message in the Zope logs:

  Module sqlalchemy.orm.session, line 724, in execute
  Module sqlalchemy.engine.base, line 1191, in execute
  Module sqlalchemy.engine.base, line 1271, in _execute_clauseelement
  Module sqlalchemy.engine.base, line 1302, in __execute_context
  Module sqlalchemy.engine.base, line 1401, in _cursor_execute
  Module sqlalchemy.engine.base, line 1394, in _cursor_execute
  Module sqlalchemy.engine.default, line 299, in do_execute
  Module MySQLdb.cursors, line 174, in execute
  Module MySQLdb.connections, line 36, in defaulterrorhandler
OperationalError: (OperationalError) (2006, 'MySQL server has gone away') 'call AuthUser(%s,%s)' (None, None)

Okay, so that indicates to me that the AuthUser stored proc is what was involved here, right?

The problem is that, after I've done this, anything that uses a SQLAlchemy connection in that app server dies with:

  Module sqlalchemy.orm.session, line 724, in execute
  Module sqlalchemy.engine.base, line 1191, in execute
  Module sqlalchemy.engine.base, line 1269, in _execute_clauseelement
  Module sqlalchemy.engine.base, line 1377, in __create_execution_context
  Module sqlalchemy.engine.default, line 392, in __init__
  Module sqlalchemy.engine.default, line 534, in create_cursor
  Module sqlalchemy.engine.base, line 917, in connection
InvalidRequestError: Can't reconnect until invalid transaction is rolled back

This is a brand new session from a new request, is this indicating that the pooled connections are somehow being left in a weird state?
Any ideas why that would be?

cheers,

Chris

--
Simplistix - Content Management, Batch Processing & Python Consulting
           - http://www.simplistix.co.uk

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" 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/sqlalchemy?hl=en.

Reply via email to