A simple test case can be found here https://gist.github.com/4214092

Expected result:
Query returns a list of results from database

Current behaviour:
Query throws an exception:
https://gist.github.com/4214131

W dniu środa, 5 grudnia 2012 07:54:48 UTC+1 użytkownik Piotr Deszyński 
napisał:
>
> If it's necessary I will provide both, the question before that is: 
> Should ZopeTransactionExtension work with ShardedSession? Because if it 
> wasn't designed for that, then there's no need to write test cases.
>
> Best regards
>
> W dniu wtorek, 4 grudnia 2012 16:31:16 UTC+1 użytkownik Michael Bayer 
> napisał:
>>
>> test cases and stack traces would be a start
>>
>> On Dec 4, 2012, at 9:29 AM, Piotr Deszyński wrote:
>>
>> Hello,
>>
>> Is there a way to use ZopeTransactionExtension using ShardedSession? I 
>> just cannot figure it out. When I use it then I'm getting  exception during 
>> any query:
>>
>> unbound method after_begin() must be called with ZopeTransactionExtension 
>> instance as first argument (got SessionMaker instance instead)
>>
>> Best regards
>>
>> W dniu środa, 28 grudnia 2011 18:18:46 UTC+1 użytkownik Michael Bayer 
>> napisał:
>>>
>>>
>>> On Dec 27, 2011, at 11:58 PM, Josh Ha-Nyung Chung wrote:
>>>
>>> I've made web application using Pyramid 1.2.5 + Python 2.7.1 + 
>>> SQLAlchemy 0.7.4 and occasionally encountered the following error.
>>>
>>>   File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 
>>> 1599, in _execute_context
>>>     conn = self._revalidate_connection()
>>>   File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 
>>> 1018, in _revalidate_connection
>>>     "Can't reconnect until invalid "
>>>  StatementError: Can't reconnect until invalid transaction is rolled 
>>> back (original cause: InvalidRequestError: Can't reconnect until invalid 
>>> transaction is rolled back) 'SELECT dp_user.user_id AS dp_user_user_id, 
>>> dp_user.email AS dp_user_email, dp_user.new_email AS dp_user_new_email, 
>>> dp_sns_user.`SNS_name` AS `dp_sns_user_SNS_name` \\nFROM dp_user, 
>>> dp_sns_user \\nWHERE dp_user.status = %s AND dp_user.user_id = 
>>> dp_sns_user.user_id AND dp_user.signup_date >= %s AND dp_user.signup_date < 
>>> %s ORDER BY dp_user.signup_date DESC' [immutabledict({})]
>>>
>>> All queries what my web app is doing is SELECT. So I don't think I need 
>>> to explicitly call session.commit() at all. I can't understand why "invalid 
>>> transaction" ever occurred.
>>> mysqld's wait_timeout is 28800 and I create sqlalchemy engine with 
>>> pool_recycle of 3600.
>>>
>>> after I restarted apache, which run my web app through wsgi, it starts 
>>> working again.
>>>
>>>
>>>
>>> this can only happen if an error is emitted from a query or other SQL 
>>> operation inside of a transaction, and the connection continues to be 
>>> reused subsequent to that error condition without any attendance being 
>>> given to the invalid transaction.
>>>
>>> The "restarting of apache" step as the only solution suggests you're 
>>> sharing a single transaction between multiple requests, and the error was 
>>> emitted in a previous request.    You'd need to ensure that the Session is 
>>> completely closed out at the end of each request, or at least rollback() is 
>>> called, so that any remaining transactional state is released.    Pyramid 
>>> suggests integrating with the ZopeTransactionExtension which I believe 
>>> should handle this (you should check on the Pyramid list).
>>>
>>>
>>>
>>>
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "sqlalchemy" group.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msg/sqlalchemy/-/FHYesCKZhD4J.
>> To post to this group, send email to sqlal...@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> sqlalchemy+...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/sqlalchemy?hl=en.
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sqlalchemy/-/x64ucHKp8mIJ.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to