In
static dberr_t row_merge_write_blob_to_tmp_file()
|
the line
dberr_t err= os_file_write(
|
IORequestWrite, "(bulk insert)", blob_file->fd,
|
field->data, blob_file->offset * srv_page_size, len);
|
|
https://github.com/MariaDB/server/blob/11.0/storage/innobase/row/row0merge.cc#L1069
uses the file offset
blob_file->offset * srv_page_size
|
but the "* srv_page_size" part is not writen to the tuple field:
uint64_t val= blob_file->offset;
|
...
|
/* Write offset for next 8 bytes */
|
mach_write_to_8(data + 8, val);
|
and the offset is also not updated for this:
blob_file->offset+= field->len;
|
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.
Because it is multiplication it will work "correctly" if blob_file->offset is 0, so it seems to work for the first blob, and will be broken for all following blobs.
This is most likely the cause the issue I reported here:
https://jira.mariadb.org/browse/MDEV-29453
Here is a query which will trigger the bug:
SET UNIQUE_CHECKS=0;
|
SET FOREIGN_KEY_CHECKS=0;
|
|
/* Required condition: Tuple data size is greater than srv_sort_buf_size */
|
/* default: innodb_sort_buffer_size = 1048576 */
|
|
DROP DATABASE IF EXISTS `debug`;
|
CREATE DATABASE IF NOT EXISTS `debug`;
|
USE `debug`;
|
|
DROP TABLE IF EXISTS `d1`;
|
CREATE TABLE `d1` (
|
`id` INT NOT NULL AUTO_INCREMENT,
|
`data` LONGBLOB NOT NULL,
|
PRIMARY KEY (`id`)
|
) ENGINE=InnoDB;
|
|
INSERT INTO `d1` VALUES
|
(DEFAULT, REPEAT('X', @@innodb_sort_buffer_size)),
|
(DEFAULT, REPEAT('X', @@innodb_sort_buffer_size))
|
;
|
|
SELECT COUNT(*) AS nb_corrupted_rows FROM debug.d1 WHERE data != REPEAT('X', @@innodb_sort_buffer_size);
|
|
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
There are no comments yet on this issue.
{"report":{"fcp":900.3000001907349,"ttfb":255.30000019073486,"pageVisibility":"visible","entityId":117947,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"6862cfca-e742-468f-b4eb-e0c45e28f97c","navigationType":0,"readyForUser":1012.1999998092651,"redirectCount":0,"resourceLoadedEnd":815.6999998092651,"resourceLoadedStart":261.19999980926514,"resourceTiming":[{"duration":59,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":261.19999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":261.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":320.19999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":59.39999961853027,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":261.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":261.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":320.8999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":232.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":261.69999980926514,"connectEnd":261.69999980926514,"connectStart":261.69999980926514,"domainLookupEnd":261.69999980926514,"domainLookupStart":261.69999980926514,"fetchStart":261.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":324.30000019073486,"responseEnd":494.19999980926514,"responseStart":344,"secureConnectionStart":261.69999980926514},{"duration":354.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":261.80000019073486,"connectEnd":261.80000019073486,"connectStart":261.80000019073486,"domainLookupEnd":261.80000019073486,"domainLookupStart":261.80000019073486,"fetchStart":261.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":326.19999980926514,"responseEnd":616.3000001907349,"responseStart":347.5999994277954,"secureConnectionStart":261.80000019073486},{"duration":89.10000038146973,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":262.0999994277954,"connectEnd":262.0999994277954,"connectStart":262.0999994277954,"domainLookupEnd":262.0999994277954,"domainLookupStart":262.0999994277954,"fetchStart":262.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":326.69999980926514,"responseEnd":351.19999980926514,"responseStart":349.5,"secureConnectionStart":262.0999994277954},{"duration":88.80000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":262.19999980926514,"connectEnd":262.19999980926514,"connectStart":262.19999980926514,"domainLookupEnd":262.19999980926514,"domainLookupStart":262.19999980926514,"fetchStart":262.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":326.80000019073486,"responseEnd":351,"responseStart":348.8999996185303,"secureConnectionStart":262.19999980926514},{"duration":90.89999961853027,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":262.5,"connectEnd":262.5,"connectStart":262.5,"domainLookupEnd":262.5,"domainLookupStart":262.5,"fetchStart":262.5,"redirectEnd":0,"redirectStart":0,"requestStart":327.69999980926514,"responseEnd":353.3999996185303,"responseStart":352.19999980926514,"secureConnectionStart":262.5},{"duration":63.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":262.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":262.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":326.19999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":94.29999923706055,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":262.80000019073486,"connectEnd":262.80000019073486,"connectStart":262.80000019073486,"domainLookupEnd":262.80000019073486,"domainLookupStart":262.80000019073486,"fetchStart":262.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":332.8999996185303,"responseEnd":357.0999994277954,"responseStart":355.5999994277954,"secureConnectionStart":262.80000019073486},{"duration":65,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":262.8999996185303,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":262.8999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":327.8999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":93.70000076293945,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":263.0999994277954,"connectEnd":263.0999994277954,"connectStart":263.0999994277954,"domainLookupEnd":263.0999994277954,"domainLookupStart":263.0999994277954,"fetchStart":263.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":333.30000019073486,"responseEnd":356.80000019073486,"responseStart":355,"secureConnectionStart":263.0999994277954},{"duration":550.1999998092651,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":264.19999980926514,"connectEnd":264.19999980926514,"connectStart":264.19999980926514,"domainLookupEnd":264.19999980926514,"domainLookupStart":264.19999980926514,"fetchStart":264.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":802.6999998092651,"responseEnd":814.3999996185303,"responseStart":813.6999998092651,"secureConnectionStart":264.19999980926514},{"duration":551.3999996185303,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":264.30000019073486,"connectEnd":264.30000019073486,"connectStart":264.30000019073486,"domainLookupEnd":264.30000019073486,"domainLookupStart":264.30000019073486,"fetchStart":264.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":803,"responseEnd":815.6999998092651,"responseStart":815.0999994277954,"secureConnectionStart":264.30000019073486},{"duration":245.19999980926514,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":626.8000001907349,"connectEnd":626.8000001907349,"connectStart":626.8000001907349,"domainLookupEnd":626.8000001907349,"domainLookupStart":626.8000001907349,"fetchStart":626.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":836.3999996185303,"responseEnd":872,"responseStart":870.1999998092651,"secureConnectionStart":626.8000001907349},{"duration":223.80000019073486,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":891.5999994277954,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":891.5999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1115.3999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":254.80000019073486,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":918.5999994277954,"connectEnd":918.5999994277954,"connectStart":918.5999994277954,"domainLookupEnd":918.5999994277954,"domainLookupStart":918.5999994277954,"fetchStart":918.5999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":1141.8000001907349,"responseEnd":1173.3999996185303,"responseStart":1172.5999994277954,"secureConnectionStart":918.5999994277954}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":51,"responseStart":255,"responseEnd":259,"domLoading":258,"domInteractive":1120,"domContentLoadedEventStart":1121,"domContentLoadedEventEnd":1177,"domComplete":1658,"loadEventStart":1658,"loadEventEnd":1659,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1103.5999994277954},{"name":"bigPipe.sidebar-id.end","time":1104.3000001907349},{"name":"bigPipe.activity-panel-pipe-id.start","time":1104.3999996185303},{"name":"bigPipe.activity-panel-pipe-id.end","time":1105},{"name":"activityTabFullyLoaded","time":1185.5}],"measures":[],"correlationId":"2102d6cfa2269b","effectiveType":"4g","downlink":9,"rtt":0,"serverDuration":96,"dbReadsTimeInMs":10,"dbConnsTimeInMs":17,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}