Details
-
Bug
-
Status: Needs Feedback (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.11
-
None
Description
Our application was performing a bunch of transactions yesterday, and for one transaction we detected a bit of odd behavior.
The transactions were simple, and followed this pattern:
1. START TRANSACTION; |
2. SELECT * FROM table1 WHERE id = x FOR UPDATE; |
3. UPDATE table1 SET col1 = y, col2 = z WHERE id = x; |
4. UPDATE table1 SET col3 = col3 + 1 WHERE id = x; |
5. UPDATE table1 SET col4 = 'some text' WHERE id = x; |
6. INSERT INTO table2 (col1,col2) VALUES (...); |
7. COMMIT; |
And there was one transaction were the steps 3. & 4. were just silently ignored, and therefore missing from the db. The transaction itself was successful, and there was no errors on the application log files that some of the steps would have failed.
I could verify this pattern from the database, and from the binary log files.
This is probably something what I can't re-produce easily, since this is the first time when I have seen this pattern for the application logic above.
Could there be some rare race condition that InnoDB could just silently ignore some steps inside of a transaction?