[MDEV-11197] TrxInInnoDB::is_aborted(const trx_t*): Assertion `srv_read_only_mode || trx->in_depth > 0' failed Created: 2016-10-31 Updated: 2017-05-10 Resolved: 2017-05-10 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.2 |
| Fix Version/s: | 10.2.6 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Jan Lindström (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Non-deterministic concurrent test
|
| Comments |
| Comment by Marko Mäkelä [ 2017-04-04 ] | ||||||||||||||||||||||||||||||
|
It seems to me that there could be a problem when merging from MySQL 5.7. The function innobase_kill_connection() which is bound to handlerton::kill_connection does not exist in MariaDB, but instead we have a similar function innobase_kill_query() that is bound to handlerton::kill_query(). At the very least, comments that refer to innobase_kill_connection() should be revised to refer to innobase_kill_query(). I suspect some difference near lock_trx_handle_wait(). While I was investigating this bug, I came up with the following clean-up patch that might marginally improve performance:
Also, while I was looking at this, I noticed that my change to deprecate innodb_support_xa in MySQL 5.7.10 has not been merged. | ||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2017-05-06 ] | ||||||||||||||||||||||||||||||
|
Happened again, 10.2 revision 8f05c848c5d856f53fa907ae202deac465a17656. | ||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-05-08 ] | ||||||||||||||||||||||||||||||
|
To me this looks like optimizer does not stop when InnoDB has already reported transaction abort instead it just continues the statement execution but InnoDB has already thrown transaction away. | ||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-05-10 ] | ||||||||||||||||||||||||||||||
|
Does not repeat with MySQL 5.7.18, repeats easily with current 10.2. | ||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-05-10 ] | ||||||||||||||||||||||||||||||
|
http://lists.askmonty.org/pipermail/commits/2017-May/011141.html Could not yet construct repeatable test case from RQG test case log. | ||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2017-05-10 ] | ||||||||||||||||||||||||||||||
|
Please include my clean-up patch as well, and do not construct the TrxInInnoDB object before DBUG_ENTER. For what it is worth, starting with | ||||||||||||||||||||||||||||||
| Comment by Jan Lindström (Inactive) [ 2017-05-10 ] | ||||||||||||||||||||||||||||||
|
commit f4df8c00c957146f04db031f1f9f80aab229d1d2 TrxInInnoDB should be constructed to track if a transaction is executing Applied suggested clean-up to TrxInInnoDB class functions enter() |