
With edge do_mysql and pooling, Internal Server Error occurs during transaction rollback
Reported by Aadi Deshpande | July 15th, 2008 @ 11:05 AM
This seems to be a problem with pooling the dm-connections on do_mysql
It appears that, when a mysql error occurs, the normal smart thing to do is to clear out the connection and close it, to prevent stale connections.
However, in the case of a transaction, this closes the connection prematurely, causing the actual XA END and XA ROLLBACK to never be executed, and posing the user with a "The connection has already been closed" error.
Comments and changes to this ticket
-
Aadi Deshpande July 15th, 2008 @ 12:37 PM
added a patch that attempts to resolve the issue.
It's kind of hacky because at present, the connection doesn't know if it's associated with a transaction, so I stuff the transaction into the connection using i_v_s. and then check inside mysql to see if we're running under a transaction and don't flush in that scenario
It would be possibly smoother if there was a Connection.transaction_identifier ) to associate that.
-
Aadi Deshpande July 15th, 2008 @ 09:11 PM
- Assigned user changed from Sam Smoot to Bernerd Schaefer
changing to bernerd so he can take a look when he gets a chance.
-
Dirkjan Bussink December 2nd, 2008 @ 04:19 AM
- Assigned user cleared.
Bernerd, why is that connection closing code in there in the first place? It's not present in any of the other drivers and an error doesn't render the connection in a broken state afaik.
-
Dirkjan Bussink December 2nd, 2008 @ 04:21 AM
- Assigned user set to Bernerd Schaefer
-
Dirkjan Bussink December 2nd, 2008 @ 04:21 AM
- State changed from new to hold
-
Dirkjan Bussink December 9th, 2008 @ 03:03 PM
- State changed from hold to resolved
This issue should be solved now. We don't close the connection on just any error that occurs.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »