Bug #91142 dml causes the server restart
Submitted: 5 Jun 2018 2:16 Modified: 11 Jul 2018 10:48
Reporter: xingzhou li Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Errors Severity:S2 (Serious)
Version:5.7.21 OS:CentOS (CentOS release 6.8 (Final))
Assigned to: MySQL Verification Team CPU Architecture:x86 (Intel(R) Xeon(R) CPU E5-2620)
Tags: dml causes server restart

[5 Jun 2018 2:16] xingzhou li
Description:
When I have done the tablespace migration, execute "delete from red limit 1000;",then mysqld_safe mysqld restarted.
attention:
the red.ibd file come from the version of mysql 5.6.35. i want to import it into the the version of mysql 5.7.21.

the errorlog is:
InnoDB: record PHYSICAL RECORD: n_fields 3; compact format; info bits 0
 0: len 19; hex 32303138303331313039393030303030313930; asc 2018031109900000190;;
 1: len 9; hex e5b7b2e8bf87e69c9f; asc          ;;
 2: len 19; hex 32303137303731383133353333303137393939; asc 2017071813533017999;;
2018-06-05T01:40:46.730742Z 0 [ERROR] InnoDB: page [page id: space=107, page number=28] (221 records, index id 147).
2018-06-05T01:40:46.730749Z 0 [ERROR] InnoDB: Submit a detailed bug report to http://bugs.mysql.com
2018-06-05T01:40:46.730765Z 0 [ERROR] InnoDB: Unable to find a record to delete-mark
InnoDB: tuple DATA TUPLE: 3 fields;
 0: len 19; hex 32303138303331313039393030303030313932; asc 2018031109900000192;;
 1: len 9; hex 8eb0e98791e588b8e5; asc          ;;
 2: len 19; hex 32303137303731383133353333303137393939; asc 2017071813533017999;;

How to repeat:
first,create table like this:
CREATE TABLE `red` (
  `id` varchar(255) NOT NULL,
  `name` varchar(128) DEFAULT NULL COMMENT '礼券名称',
  `user_id` varchar(32) NOT NULL COMMENT '用户id',
  `money` double NOT NULL DEFAULT '0' COMMENT '现金券金额',
  `surplus` double NOT NULL DEFAULT '0' COMMENT '现金券剩余金额',
  `rate` double DEFAULT NULL COMMENT '加息率',
  `type` varchar(32) DEFAULT NULL COMMENT '礼券类型(加息券,现金券,翻倍卡)',
  `status` varchar(32) NOT NULL COMMENT '状态',
  `time` datetime NOT NULL COMMENT '发放时间',
  `use_time` datetime DEFAULT NULL COMMENT '使用时间',
  `start_time` datetime DEFAULT NULL COMMENT '使用开始期限限制',
  `end_time` datetime NOT NULL COMMENT '使用结束期限限制(礼券过期时间)',
  `min_period` int(11) DEFAULT NULL COMMENT '最小可投期限限制(标的时间)',
  `max_period` int(11) DEFAULT '0' COMMENT '最大可投期限限制(标的时间)',
  `min_invest_money` double DEFAULT NULL COMMENT '最小投资金额限制(投资金额)',
  `max_invest_money` double(11,0) DEFAULT '0' COMMENT '最大投资金额限制(投资金额)',
  `invest_id` varchar(32) DEFAULT NULL COMMENT '出借id',
  `remark` varchar(255) DEFAULT NULL COMMENT '礼券说明',
  `isread` varchar(32) DEFAULT '未读' COMMENT '用户是否已读',
  `multiple` double DEFAULT '1' COMMENT '翻倍卡倍数',
  `coupon_multiple` double DEFAULT NULL,
  `ticket_id` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`,`status`,`user_id`) USING BTREE,
  KEY `fk_user_id` (`user_id`) USING BTREE,
  KEY `IDX_INVEST_ID` (`invest_id`) USING BTREE,
  KEY `index_time_status` (`status`,`time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='礼券表' ROW_FORMAT=COMPACT;

the second step:
attention:[the red.ibd file come from the version of mysql 5.6.35. i want to import it into the the version of mysql 5.7.21.]

alter table red discard tablespace;
copy red.ibd to xxx.xxx.xx.xx:/data/mysql/mysql3360/lixingzhou/
alter table red import tablespace; 
i excute 'select count(*) from red;' is ok;when i excute "delete * from red limit 1000;" the mysqld&mysqld_safe restart.
[11 Jun 2018 10:48] MySQL Verification Team
Hi,

If you are doing upgrade between major versions you need to use the highest available minor versions in both tree so can you reproduce this from 5.6.40 to 5.7.22 ?

best regards
Bogdan
[12 Jul 2018 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".