[MDEV-25236] Online log apply fails for redundant row format tables Created: 2021-03-24 Updated: 2023-03-14 Resolved: 2021-07-02 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.4, 10.5, 10.6 |
| Fix Version/s: | 10.4.21, 10.5.12, 10.6.3 |
| Type: | Bug | Priority: | Major |
| Reporter: | Thirunarayanan Balathandayuthapani | Assignee: | Thirunarayanan Balathandayuthapani |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | rr-profile-analyzed | ||
| Issue Links: |
|
||||||||||||
| Description |
|
In rec_get_converted_size_comp_prefix_low(), InnoDB calculates extra bytes
Run the above test case with --innodb_page_size=64K --innodb_buffer_pool_size=24M |
| Comments |
| Comment by Thirunarayanan Balathandayuthapani [ 2021-04-26 ] |
|
Patch is in bb-10.4-thiru |
| Comment by Marko Mäkelä [ 2021-04-27 ] |
|
I think that we must a second template parameter bool redundant_temp to rec_init_offsets_comp_ordinary(), like we already have it in rec_get_converted_size_comp_prefix_low(). If redundant_temp==true, we must do something special for !index->table->not_redundant() (the online_log record is in a different format). Else, we must assert that index->table->not_redundant() holds. The test innodb.instant_alter_crash is supposed to test crash recovery. For this test, innodb.instant_alter_debug would be a better match. Please remove ROW_FORMAT=REDUNDANT from the test case, because that test runs with two combinations of innodb_default_row_format. |
| Comment by Thirunarayanan Balathandayuthapani [ 2021-05-17 ] |
|
Problem happens only in 10.4. Modify column does instant operation only in 10.4+. This issue is caused by MDEV-15563. |
| Comment by Marko Mäkelä [ 2021-07-02 ] |
|
I spent some time creating a simpler test case. We need 9 columns, and 8 of them can be INT. Only 2 ALTER TABLE statements are necessary. The code fix itself is fine, and 10.3 is not affected because it is missing |