[MDEV-17814] Server crashes in is_current_stmt_binlog_format_row Created: 2018-11-23 Updated: 2024-01-30 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Server, Storage Engine - InnoDB |
| Affects Version/s: | 10.3.11, 10.4.0, 10.2.19 |
| Fix Version/s: | 10.4 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Elena Stepanova | Assignee: | Vladislav Lesin |
| Resolution: | Unresolved | Votes: | 1 |
| Labels: | upstream-fixed | ||
| Attachments: |
|
||||||||||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||||||||||
| Description |
|
https://travis-ci.org/elenst/travis-tests/jobs/457440238 Note: it might be related to MDEV-14472, but no assertion failure here, just SIGSEGV.
Not reproducible right away. |
| Comments |
| Comment by Elena Stepanova [ 2018-12-13 ] |
|
New occurrence on 10.4: https://travis-ci.org/elenst/travis-tests/jobs/467607663 |
| Comment by Marko Mäkelä [ 2018-12-14 ] |
|
The crash was introduced by Internal transactions may not have trx->mysql_thd. But at the same time, trx->duplicates should only hold if REPLACE or INSERT…ON DUPLICATE KEY UPDATE was executed from SQL. The flag trx->duplicates feels misplaced. A more appropriate place for it would be row_prebuilt_t or similar. I will prevent the crashes by checking for trx->mysql_thd==NULL before the calls, but this will not fix the issue with the flag. |
| Comment by Marko Mäkelä [ 2019-10-17 ] |
|
In MySQL 8.0.18, the flag trx->duplicates was finally moved to row_prebuilt_t. I think that we must apply that fix to MariaDB Server. |
| Comment by Marko Mäkelä [ 2019-10-17 ] |
|
MDEV-17814-10.2-WIP.patch I am not entirely satisfied with the change to the function lock_rec_inherit_to_gap(). In MySQL 8.0, something was changed earlier, and I am not convinced that the change is actually correct. My patch discards the problematic condition. It seems that we must first fix |
| Comment by Marko Mäkelä [ 2024-01-12 ] |
|
The logic around InnoDB persistent statistics as well as DDL was refactored in MariaDB Server 10.6. First it could make sense to check if the problem is reproducible in 10.6 at all. In older releases we also have other bugs in this area that are not feasible, such as |
| Comment by Marko Mäkelä [ 2024-01-12 ] |
|
vlad.lesin has filed MDEV-32951 for the suggestion that the field trx_t::duplicates be moved to the cursor (ha_innobase::m_prebuilt or similar). |