[MDEV-30321] blob data corrupted by row_merge_write_blob_to_tmp_file() Created: 2023-01-02 Updated: 2023-02-09 Resolved: 2023-01-04 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.7.6, 10.8.6, 10.9.4, 10.10.2 |
| Fix Version/s: | 10.11.3, 10.8.8, 10.9.6, 10.10.4 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Michael Roosz | Assignee: | Thirunarayanan Balathandayuthapani |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Description |
|
In
the line
https://github.com/MariaDB/server/blob/11.0/storage/innobase/row/row0merge.cc#L1069 uses the file offset
but the "* srv_page_size" part is not writen to the tuple field:
and the offset is also not updated for this:
thus when row_merge_copy_blob_from_file() reads the blob data, it reads from a wrong location As I understand it the "* srv_page_size" make so sense here and should be removed. This is most likely the cause the issue I reported here: Here is a query which will trigger the bug:
nb_corrupted_rows will be 1 on mariadb >= 10.7 and 0 for mariadb <= 10.6 pull request: https://github.com/MariaDB/server/pull/2400 |