| Bug #115207 | mysql 8.0.22 mysqld got signal 11 | ||
|---|---|---|---|
| Submitted: | 4 Jun 2024 7:15 | Modified: | 5 Jun 2024 2:00 |
| Reporter: | wei hu | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 8.0.22 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[4 Jun 2024 9:48]
MySQL Verification Team
Hi Mr. hu, Thank you for your bug report. However, we are not able to repeat it. This is what we get with the current release of 8.0: id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE sdo NULL ALL uniq_do_doc_no,idx_order_doc_no,idx_t1_1 NULL NULL NULL 1 100.00 Using where 1 SIMPLE sdpi NULL ref idx_shopcode_1,idx_shopcode_rodocno idx_shopcode_1 404 test.sdo.shop_code,test.sdo.order_doc_no 1 100.00 Using where 1 SIMPLE sdpi2 NULL ref idx_shopcode_1,idx_shopcode_rodocno idx_shopcode_1 404 test.sdo.shop_code,test.sdo.order_doc_no 1 100.00 Using where; Not exists No crashes no nothing. Please, always use latest bug-fix release of 8.0. Now, it is release 8.0.37. Can't repeat.
[5 Jun 2024 2:00]
wei hu
we use 8.0.22 to repeat it. MySQL 8.0.22 2024-06-05 09:54:33 10.90.79.199:3306 db_hw_test SQL > show tables; +----------------------+ | Tables_in_db_hw_test | +----------------------+ | sbtest1 | | sbtest10 | | sbtest2 | | sbtest3 | | sbtest4 | | sbtest5 | | sbtest6 | | sbtest7 | | sbtest8 | | sbtest9 | | so_do_order | | so_do_payment_info | +----------------------+ 12 rows in set (0.0024 sec) MySQL 8.0.22 2024-06-05 09:54:34 10.90.79.199:3306 db_hw_test SQL > MySQL 8.0.22 2024-06-05 09:54:34 10.90.79.199:3306 db_hw_test SQL > MySQL 8.0.22 2024-06-05 09:54:34 10.90.79.199:3306 db_hw_test SQL > explain -> select sdpi.id*-1,sdpi.shop_code, sdpi.do_doc_no, sdpi.ro_doc_no, sdpi.order_doc_no, 47, sdo.other_vc_amt -> from so_do_order sdo -> inner join so_do_payment_info sdpi on sdo.shop_code = sdpi.shop_code and sdo.order_doc_no = sdpi.order_doc_no and sdo.do_doc_no = sdpi.do_doc_no and sdpi.pay_type = 3 -> left join so_do_payment_info sdpi2 on sdo.shop_code = sdpi2.shop_code and sdo.order_doc_no = sdpi2.order_doc_no and sdo.do_doc_no = sdpi2.do_doc_no and sdpi.pay_type = 47 -> where sdo.status not in (30, 32) and sdo.other_vc_amt > 0 and sdo.total_actual_af_disc > sdpi.pay_actual and sdpi2.id is null; ERROR: 2013 (HY000): Lost connection to MySQL server during query The global session got disconnected.. Attempting to reconnect to 'mysql://u_autodba@10.90.79.199:3306/db_hw_test'...... The global session was successfully reconnected. MySQL 8.0.22 2024-06-05 09:54:41 10.90.79.199:3306 db_hw_test SQL > show tables; +----------------------+ | Tables_in_db_hw_test | +----------------------+ | sbtest1 | | sbtest10 | | sbtest2 | | sbtest3 | | sbtest4 | | sbtest5 | | sbtest6 | | sbtest7 | | sbtest8 | | sbtest9 | | so_do_order | | so_do_payment_info | +----------------------+ 12 rows in set (0.0041 sec) mysql-error.log 09:54:38 UTC - mysqld got signal 11 ; Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware. Thread pointer: 0x7738e000 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... stack_bottom = 7f0c09277d00 thread_stack 0x46000 /service/software/mysql_3306/bin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x2e) [0x2106fee] /service/software/mysql_3306/bin/mysqld(handle_fatal_signal+0x303) [0xfe7113] /lib64/libpthread.so.0(+0xf630) [0x7f0ca317c630] /service/software/mysql_3306/bin/mysqld(CreateIteratorFromAccessPath(THD*, AccessPath*, JOIN*, bool)+0x1268) [0x1240958] /service/software/mysql_3306/bin/mysqld(CreateIteratorFromAccessPath(THD*, AccessPath*, JOIN*, bool)+0x55b) [0x123fc4b] /service/software/mysql_3306/bin/mysqld(SELECT_LEX_UNIT::optimize(THD*, TABLE*, bool)+0x269) [0xf75399] /service/software/mysql_3306/bin/mysqld(Sql_cmd_dml::execute_inner(THD*)+0x2e) [0xf02f1e] /service/software/mysql_3306/bin/mysqld(Sql_cmd_dml::execute(THD*)+0x4f5) [0xf0d4a5] /service/software/mysql_3306/bin/mysqld(mysql_execute_command(THD*, bool)+0x9d0) [0xeb3c90] /service/software/mysql_3306/bin/mysqld(mysql_parse(THD*, Parser_state*)+0x3ff) [0xeb83df] /service/software/mysql_3306/bin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0x1d1d) [0xeba58d] /service/software/mysql_3306/bin/mysqld(do_command(THD*)+0x174) [0xebb2f4] /service/software/mysql_3306/bin/mysqld() [0xfd8c78] /service/software/mysql_3306/bin/mysqld() [0x267b78e] /lib64/libpthread.so.0(+0x7ea5) [0x7f0ca3174ea5] /lib64/libc.so.6(clone+0x6d) [0x7f0ca14cdb0d] Trying to get some variables. Some pointers may be invalid and cause the dump to abort. Query (7ae38028): explain select sdpi.id*-1,sdpi.shop_code, sdpi.do_doc_no, sdpi.ro_doc_no, sdpi.order_doc_no, 47, sdo.other_vc_amt from so_do_order sdo inner join so_do_payment_info sdpi on sdo.shop_code = sdpi.shop_code and sdo.order_doc_no = sdpi.order_doc_no and sd o.do_doc_no = sdpi.do_doc_no and sdpi.pay_type = 3 left join so_do_payment_info sdpi2 on sdo.shop_code = sdpi2.shop_code and sdo.order_doc_no = sdpi2.order_doc_no and sdo.do_doc_no = sdpi2.do_doc_no and sdpi.pay_type = 47 where sdo.status not in (30, 32) and sdo.other_v c_amt > 0 and sdo.total_actual_af_disc > sdpi.pay_actual and sdpi2.id is null Connection ID (thread ID): 3131 Status: NOT_KILLED The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
[5 Jun 2024 9:23]
MySQL Verification Team
Hi Mr. Hu, We have used 8.0.37 and we could not have repeated it. 8.022 and 8.0.37 are both bug-fix releases of the version 8.0. Hence, we only test the latest release, because you can easily upgrade from any other 8.0 release to the latest one. Can't repeat.

Description: We have encountered a bug where executing a particular query results in the MySQL instance restarting. Additionally, we have observed that data written to tables is not being recorded in the binary logs. Server version: 8.0.22 MySQL Community Server - GPL mysql-error.log: 16:11:07 UTC - mysqld got signal 11 ; Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware. Thread pointer: 0x270162000 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... stack_bottom = 7f30383e8d00 thread_stack 0x46000 /service/software/mysql_3306/bin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x2e) [0x2106fee] /service/software/mysql_3306/bin/mysqld(handle_fatal_signal+0x303) [0xfe7113] /lib64/libpthread.so.0(+0xf630) [0x7f513008c630] /service/software/mysql_3306/bin/mysqld(CreateIteratorFromAccessPath(THD*, AccessPath*, JOIN*, bool)+0x1268) [0x1240958] /service/software/mysql_3306/bin/mysqld(CreateIteratorFromAccessPath(THD*, AccessPath*, JOIN*, bool)+0x55b) [0x123fc4b] /service/software/mysql_3306/bin/mysqld(CreateIteratorFromAccessPath(THD*, AccessPath*, JOIN*, bool)+0x1c5b) [0x124134b] /service/software/mysql_3306/bin/mysqld(SELECT_LEX_UNIT::optimize(THD*, TABLE*, bool)+0x269) [0xf75399] /service/software/mysql_3306/bin/mysqld(Sql_cmd_dml::execute_inner(THD*)+0x2e) [0xf02f1e] /service/software/mysql_3306/bin/mysqld(Sql_cmd_dml::execute(THD*)+0x4f5) [0xf0d4a5] /service/software/mysql_3306/bin/mysqld(mysql_execute_command(THD*, bool)+0x9d0) [0xeb3c90] /service/software/mysql_3306/bin/mysqld(mysql_parse(THD*, Parser_state*)+0x3ff) [0xeb83df] /service/software/mysql_3306/bin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0x1d1d) [0xeba58d] /service/software/mysql_3306/bin/mysqld(do_command(THD*)+0x174) [0xebb2f4] /service/software/mysql_3306/bin/mysqld() [0xfd8c78] /service/software/mysql_3306/bin/mysqld() [0x267b78e] /lib64/libpthread.so.0(+0x7ea5) [0x7f5130084ea5] /lib64/libc.so.6(clone+0x6d) [0x7f512e3ddb0d] Trying to get some variables. Some pointers may be invalid and cause the dump to abort. Query (259d72028): /* ApplicationName=DBeaver 21.3.0 - SQLEditor <Script-3.sql> */ select sdpi.id*-1,sdpi.shop_code, sdpi.do_doc_no, sdpi.ro_doc_no, sdpi.order_doc_no, 47, sdo.other_vc_amt , sdpi.pay_account, sdpi.pay_bank, sdpi.pay_no, sdpi.pay_status, sdpi.memo, sdpi. bz_pay_no, sdpi.ext_props from so_do_order sdo inner join so_do_payment_info sdpi on sdo.shop_code = sdpi.shop_code and sdo.order_doc_no = sdpi.order_doc_no and sdo.do_doc_no = sdpi.do_doc_no and sdpi.pay_type = 3 left join so_do_payment_info sdpi2 on sdo.shop_cod e = sdpi2.shop_code and sdo.order_doc_no = sdpi2.order_doc_no and sdo.do_doc_no = sdpi2.do_doc_no and sdpi.pay_type = 47 where sdo.status not in (30, 32) and sdo.other_vc_amt > 0 and sdo.total_actual_af_disc > sdpi.pay_actual and sdpi2.id is null and sdo.order_doc_no in ('SO24110592730082','SO24110592730083','SO24110592730081','SO24110592730080','SO24110592730084','SO24110592730085','SO24110592730086','SO24110592730087','SO24110592730088','SO24110592730089','SO24110592730090','SO24110592730091',' Connection ID (thread ID): 15760478 Status: NOT_KILLED The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains information that should help you find out what is causing the crash. How to repeat: Create Table: CREATE TABLE `so_do_order` ( `id` bigint NOT NULL, `do_doc_no` varchar(50) NOT NULL, `order_doc_no` varchar(50) NOT NULL, `shop_code` varchar(50) NOT NULL, `other_vc_amt` decimal(15,6) NOT NULL, `total_actual_af_disc` decimal(15,6) NOT NULL, `status` int NOT NULL COMMENT '状态', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `last_modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uniq_do_doc_no` (`do_doc_no`), KEY `idx_order_doc_no` (`order_doc_no`), KEY `idx_create_time` (`create_time`), KEY `idx_so_do_order_1` (`shop_code`), KEY `idx_lmt01` (`last_modify_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; CREATE TABLE `so_do_payment_info` ( `id` bigint NOT NULL, `shop_code` varchar(50) NOT NULL, `order_doc_no` varchar(50) NOT NULL, `do_doc_no` varchar(50) DEFAULT NULL, `pay_actual` decimal(15,6) NOT NULL, `pay_type` bigint NOT NULL, `ro_doc_no` varchar(50) DEFAULT NULL, `status` int NOT NULL DEFAULT '1', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `last_modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_shopcode_1` (`shop_code`,`order_doc_no`,`status`), KEY `idx_shopcode_rodocno` (`shop_code`,`ro_doc_no`), KEY `idx_ct01` (`create_time`) USING BTREE, KEY `idx_lmt01` (`last_modify_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; sql: explain select sdpi.id*-1,sdpi.shop_code, sdpi.do_doc_no, sdpi.ro_doc_no, sdpi.order_doc_no, 47, sdo.other_vc_amt from so_do_order sdo inner join so_do_payment_info sdpi on sdo.shop_code = sdpi.shop_code and sdo.order_doc_no = sdpi.order_doc_no and sdo.do_doc_no = sdpi.do_doc_no and sdpi.pay_type = 3 left join so_do_payment_info sdpi2 on sdo.shop_code = sdpi2.shop_code and sdo.order_doc_no = sdpi2.order_doc_no and sdo.do_doc_no = sdpi2.do_doc_no and sdpi.pay_type = 47 where sdo.status not in (30, 32) and sdo.other_vc_amt > 0 and sdo.total_actual_af_disc > sdpi.pay_actual and sdpi2.id is null;