I came across this bug and reported it here
https://sourceforge.net/tracker/index.php?func=detail&aid=2776267&group_id=22307&atid=374932
Since SQLAlchemy is indirectly affected by this I want to hear your
opinion on this matter and on the fix proposed.
On deadlocks or lock timeouts cursors are not raising the expected
exceptions.
Given this scenario:
CREATE TABLE testing1 (a int(11) NOT NULL, PRIMARY KEY (a))
ENGINE=InnoDB;
CREATE TABLE testing2 (a int(11) NOT NULL, PRIMARY KEY (a))
ENGINE=InnoDB;
INSERT INTO testing1 VALUES (12345);
INSERT INTO testing2 VALUES (34567);
And this script:
from sqlalchemy import *
e = create_engine('mysql://localhost/TESTS?
read_default_file=~/.my.cnf')
c1 = e.connect()
c2 = e.connect()
c1.execute('BEGIN')
r = c1.execute('''SELECT * FROM testing1 FOR UPDATE;''')
print 'c1', r.fetchall()
c2.execute('BEGIN')
r = c2.execute('''SELECT * FROM testing2 FOR UPDATE;''')
print 'c2', r.fetchall()
r = c1.execute('''SELECT * FROM testing2 FOR UPDATE;''')
print 'c1', r.fetchall()
This is the output using sqlalchemy 0.5.3:
c1 [(12345L,)]
c2 [(34567L,)]
c1 []
The third statement instead of rasing an exception after timing out,
returns an empty list.
See the attached patch on the sourceforge link for the proposed fix.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---