Bug #75232 Sig 6 abort in get_partition_id_range_for_endpoint | sql/sql_partition.cc:3600

Submitted: 16 Dec 2014 9:11 Modified: 16 Dec 2014 9:48
Reporter: Ramesh Sivaraman Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: DML Severity:S3 (Non-critical)
Version:5.6.21, 5.6.23, 5.7.6 OS:Linux (CentOS 7)
Assigned to: CPU Architecture:Any
Tags: debug

[16 Dec 2014 9:11] Ramesh Sivaraman
Description:
mysqld: /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_partition.cc:3603: uint32 get_partition_id_range_for_endpoint(partition_info*, bool, bool): Asser
tion `part_func_value > part_end_val ? (loc_part_id == max_partition && !part_info->defined_max_value) : 1' failed.
08:56:01 UTC - mysqld got signal 6 ;

** GDB

#0  0x00007f722afcc771 in pthread_kill () from /lib64/libpthread.so.0
#1  0x0000000000a954ea in my_write_core (sig=6) at /ssd/ramesh/mysql-server/mysql-5.6/mysys/stacktrace.c:422
#2  0x0000000000726494 in handle_fatal_signal (sig=6) at /ssd/ramesh/mysql-server/mysql-5.6/sql/signal_handler.cc:230
#3  <signal handler called>
#4  0x00007f7229dd85c9 in raise () from /lib64/libc.so.6
#5  0x00007f7229dd9cd8 in abort () from /lib64/libc.so.6
#6  0x00007f7229dd1536 in __assert_fail_base () from /lib64/libc.so.6
#7  0x00007f7229dd15e2 in __assert_fail () from /lib64/libc.so.6
#8  0x00000000009c27cc in get_partition_id_range_for_endpoint (part_info=0x7f718e82cd70, left_endpoint=true, include_endpoint=true) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_partition.cc:3600
#9  0x00000000009cac53 in get_part_iter_for_interval_via_mapping (part_info=0x7f718e82cd70, is_subpart=false, store_length_array=0x7f722b57e5e0, min_value=0x7f722b57e968 "", max_value=0x7f722b57f866 "", min_len=5, max_len=5, flags=0, part_iter=0x7f722b5807d0) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_partition.cc:7979
#10 0x0000000000950972 in find_used_partitions (ppar=0x7f722b57e810, key_tree=0x7f718e895298) at /ssd/ramesh/mysql-server/mysql-5.6/sql/opt_range.cc:3833
#11 0x000000000094fab3 in prune_partitions (thd=0x7f7197b5d000, table=0x7f718e850200, pprune_cond=0x7f718e81fa00) at /ssd/ramesh/mysql-server/mysql-5.6/sql/opt_range.cc:3304
#12 0x0000000000860bcf in mysql_update (thd=0x7f7197b5d000, table_list=0x7f718e81f0f8, fields=..., values=..., conds=0x7f718e81fa00, order_num=0, order=0x0, limit=18446744073709551615, handle_duplicates=DUP_ERROR, ignore=false, found_return=0x7f722b5819f8, updated_return=0x7f722b5819f0) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_update.cc:345
#13 0x00000000007d3e6a in mysql_execute_command (thd=0x7f7197b5d000) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_parse.cc:3307
#14 0x00000000007dbdbc in mysql_parse (thd=0x7f7197b5d000, rawbuf=0x7f718e81f010 "UPDATE t1 SET a=5 WHERE a=9", length=27, parser_state=0x7f722b581e70) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_parse.cc:6245
#15 0x00000000007cf36f in dispatch_command (command=COM_QUERY, thd=0x7f7197b5d000, packet=0x7f718c666001 "UPDATE t1 SET a=5 WHERE a=9", packet_length=27) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_parse.cc:1332
#16 0x00000000007ce45e in do_command (thd=0x7f7197b5d000) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_parse.cc:1034
#17 0x0000000000796879 in do_handle_one_connection (thd_arg=0x7f7197b5d000) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_connect.cc:982
#18 0x0000000000796362 in handle_one_connection (arg=0x7f7197b5d000) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_connect.cc:898
#19 0x0000000000d71288 in pfs_spawn_thread (arg=0x7f72273fea60) at /ssd/ramesh/mysql-server/mysql-5.6/storage/perfschema/pfs.cc:1860
#20 0x00007f722afc7df3 in start_thread () from /lib64/libpthread.so.0
#21 0x00007f7229e9901d in clone () from /lib64/libc.so.6

How to repeat:
DROP DATABASE test;CREATE DATABASE test;USE test;
CREATE TABLE t1(a INT)PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (6),PARTITION `p1....................` VALUES LESS THAN (9),PARTITION p2 VALUES LESS THAN MAXVALUE);
create table t2(id2 int,t CHAR (100),index(id2)) pack_keys=1;
lock tables t1 write,t1 as b write,t2 write,t2 as c read;
alter table t1 reorganize partition p2 into(partition p2 values less than (10));
UPDATE t1 SET a=5 WHERE a=9;
[16 Dec 2014 9:48] MySQL Verification Team
Hello Ramesh Sivaraman,

Thank you for the report and test case.
Confirmed that latest 5.6.23, 5.7.6 debug builds asserts.

Thanks,
Umesh
[16 Dec 2014 9:48] MySQL Verification Team
// 5.6.23 debug build

scripts/mysql_install_db --basedir=/export/umesh/mysql-5.6.23 --datadir=/export/umesh/mysql-5.6.23/75232
bin/mysqld-debug --basedir=/export/umesh/mysql-5.6.23 --datadir=/export/umesh/mysql-5.6.23/75232 --core-file --socket=/tmp/75232.sock  --port=15000 --log-error=/export/umesh/mysql-5.6.23/75232/log.err --plugin-load=audit_log=audit_log.so  --innodb_file_per_table=1 --innodb_flush_method=O_DIRECT --log-bin=binlog --binlog_format=MIXED  --event-scheduler=ON --maximum-bulk_insert_buffer_size=1M --maximum-join_buffer_size=1M --maximum-max_heap_table_size=1M --maximum-max_join_size=1M --maximum-myisam_max_sort_file_size=1M --maximum-myisam_mmap_size=1M --maximum-myisam_sort_buffer_size=1M --maximum-optimizer_trace_max_mem_size=1M --maximum-preload_buffer_size=1M --maximum-query_alloc_block_size=1M --maximum-query_prealloc_size=1M --maximum-range_alloc_block_size=1M --maximum-read_buffer_size=1M --maximum-read_rnd_buffer_size=1M --maximum-sort_buffer_size=1M --maximum-tmp_table_size=1M --maximum-transaction_alloc_block_size=1M --maximum-transaction_prealloc_size=1M --log-output=none --sql_mode=ONLY_FULL_GROUP_BY 2>&1 &

commit: df34098068ae4a07f245ad13a4819ca01bde71df
date: 2014-11-18 09:54:31 +0530
build-date: 2014-11-18 18:01:47 +0100
short: df34098
branch: mysql-5.6

MySQL source 5.6.23

(gdb) bt
#0  0x00007f8085688771 in pthread_kill () from /lib64/libpthread.so.0
#1  0x0000000000b0070b in my_write_core (sig=6) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/mysys/stacktrace.c:422
#2  0x000000000077ec8c in handle_fatal_signal (sig=6) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/signal_handler.cc:230
#3  <signal handler called>
#4  0x00007f808428e5c9 in raise () from /lib64/libc.so.6
#5  0x00007f808428fcd8 in abort () from /lib64/libc.so.6
#6  0x00007f8084287536 in __assert_fail_base () from /lib64/libc.so.6
#7  0x00007f80842875e2 in __assert_fail () from /lib64/libc.so.6
#8  0x0000000000a29789 in get_partition_id_range_for_endpoint (part_info=0x7f8028026090, left_endpoint=true, include_endpoint=true)
    at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_partition.cc:3603
#9  0x0000000000a31d46 in get_part_iter_for_interval_via_mapping (part_info=0x7f8028026090, is_subpart=false, store_length_array=0x7f805b00c7e0, min_value=0x7f805b00cb48 "",
    max_value=0x7f805b00da46 "", min_len=5, max_len=5, flags=0, part_iter=0x7f805b00e9b0) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_partition.cc:7979
#10 0x00000000009b52c2 in find_used_partitions (ppar=0x7f805b00c9f0, key_tree=0x7f80280753c8) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/opt_range.cc:3833
#11 0x00000000009b43ab in prune_partitions (thd=0x23d2490, table=0x7f802801c2f0, pprune_cond=0x7f80280059c0) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/opt_range.cc:3304
#12 0x00000000008bf571 in mysql_update (thd=0x23d2490, table_list=0x7f80280050b8, fields=..., values=..., conds=0x7f80280059c0, order_num=0, order=0x0, limit=18446744073709551615,
    handle_duplicates=DUP_ERROR, ignore=false, found_return=0x7f805b00fd88, updated_return=0x7f805b00fd80) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_update.cc:345
#13 0x000000000082f812 in mysql_execute_command (thd=0x23d2490) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_parse.cc:3307
#14 0x0000000000838085 in mysql_parse (thd=0x23d2490, rawbuf=0x7f8028004fd0 "UPDATE t1 SET a=5 WHERE a=9", length=27, parser_state=0x7f805b010700)
    at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_parse.cc:6357
#15 0x000000000082aa07 in dispatch_command (command=COM_QUERY, thd=0x23d2490, packet=0x24b6ae1 "UPDATE t1 SET a=5 WHERE a=9", packet_length=27)
    at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_parse.cc:1332
#16 0x0000000000829a6c in do_command (thd=0x23d2490) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_parse.cc:1034
#17 0x00000000007f0e5f in do_handle_one_connection (thd_arg=0x23d2490) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_connect.cc:982
#18 0x00000000007f0930 in handle_one_connection (arg=0x23d2490) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/sql/sql_connect.cc:898
#19 0x0000000000e652e1 in pfs_spawn_thread (arg=0x2422bc0) at /pb2/build/sb_0-13700644-1416330726.69/mysqlcom-pro-5.6.23/storage/perfschema/pfs.cc:1860
#20 0x00007f8085683df3 in start_thread () from /lib64/libpthread.so.0
#21 0x00007f808434f47d in clone () from /lib64/libc.so.6
[16 Dec 2014 9:49] MySQL Verification Team
// 5.7.6  debug build

bin/mysql_install_db --basedir=/export/umesh/mysql-5.7.6 --datadir=/export/umesh/mysql-5.7.6/75232 -v
bin/mysqld-debug --basedir=/export/umesh/mysql-5.7.6 --datadir=/export/umesh/mysql-5.7.6/75232 --core-file --socket=/tmp/75232.sock  --port=15000 --log-error=/export/umesh/mysql-5.7.6/75232/log.err --plugin-load=audit_log=audit_log.so  --innodb_file_per_table=1 --innodb_flush_method=O_DIRECT --log-bin=binlog --binlog_format=MIXED  --event-scheduler=ON --maximum-bulk_insert_buffer_size=1M --maximum-join_buffer_size=1M --maximum-max_heap_table_size=1M --maximum-max_join_size=1M --maximum-myisam_max_sort_file_size=1M --maximum-myisam_mmap_size=1M --maximum-myisam_sort_buffer_size=1M --maximum-optimizer_trace_max_mem_size=1M --maximum-preload_buffer_size=1M --maximum-query_alloc_block_size=1M --maximum-query_prealloc_size=1M --maximum-range_alloc_block_size=1M --maximum-read_buffer_size=1M --maximum-read_rnd_buffer_size=1M --maximum-sort_buffer_size=1M --maximum-tmp_table_size=1M --maximum-transaction_alloc_block_size=1M --maximum-transaction_prealloc_size=1M --log-output=none --sql_mode=ONLY_FULL_GROUP_BY --server_id=1 2>&1 &

// build used

commit: 1982dd7ab813e3cdb28d3bb119cc7b706cf01b15
date: 2014-11-27 13:27:39 +0300
build-date: 2014-11-27 12:38:45 +0100
short: 1982dd7
branch: mysql-trunk

MySQL source 5.7.6

(gdb) bt
#0  0x00007f43910da771 in pthread_kill () from /lib64/libpthread.so.0
#1  0x0000000000f70894 in my_write_core (sig=6) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/mysys/stacktrace.c:247
#2  0x00000000009206ce in handle_fatal_signal (sig=6) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/signal_handler.cc:219
#3  <signal handler called>
#4  0x00007f438fce05c9 in raise () from /lib64/libc.so.6
#5  0x00007f438fce1cd8 in abort () from /lib64/libc.so.6
#6  0x00007f438fcd9536 in __assert_fail_base () from /lib64/libc.so.6
#7  0x00007f438fcd95e2 in __assert_fail () from /lib64/libc.so.6
#8  0x0000000000e85ef3 in get_partition_id_range_for_endpoint (part_info=0x7f4308045900, left_endpoint=true, include_endpoint=true)
    at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/sql_partition.cc:3571
#9  0x0000000000e8e742 in get_part_iter_for_interval_via_mapping (part_info=0x7f4308045900, is_subpart=false, store_length_array=0x7f436ecf60d0, min_value=0x7f436ecf6460 "",
    max_value=0x7f436ecf735e "", min_len=5, max_len=5, flags=0, part_iter=0x7f436ecf82c8) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/sql_partition.cc:8010
#10 0x0000000000e25aef in find_used_partitions (ppar=0x7f436ecf6300, key_tree=0x7f43080433a8) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/opt_range.cc:3874
#11 0x0000000000e24bfc in prune_partitions (thd=0x7f4308000c00, table=0x7f430802ffb0, pprune_cond=0x7f4308006818)
    at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/opt_range.cc:3345
#12 0x0000000000d31fd4 in mysql_update (thd=0x7f4308000c00, fields=..., values=..., limit=18446744073709551615, handle_duplicates=DUP_ERROR, found_return=0x7f436ecf99a8,
    updated_return=0x7f436ecf99a0) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/sql_update.cc:345
#13 0x0000000000c99baa in mysql_execute_command (thd=0x7f4308000c00) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:3162
#14 0x0000000000ca039f in mysql_parse (thd=0x7f4308000c00, parser_state=0x7f436ecf9ea0) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:5386
#15 0x0000000000c950db in dispatch_command (command=COM_QUERY, thd=0x7f4308000c00, packet=0x7f4308009891 "UPDATE t1 SET a=5 WHERE a=9", packet_length=27)
    at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:1249
#16 0x0000000000c93df5 in do_command (thd=0x7f4308000c00) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/sql_parse.cc:833
#17 0x0000000000d9d9ea in handle_connection (arg=0x31ced20) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/sql/conn_handler/connection_handler_per_thread.cc:298
#18 0x0000000000fa0dc7 in pfs_spawn_thread (arg=0x3123b50) at /export/home/pb2/build/sb_0-13761755-1417089283.97/mysqlcom-pro-5.7.6-m16/storage/perfschema/pfs.cc:2137
#19 0x00007f43910d5df3 in start_thread () from /lib64/libpthread.so.0
#20 0x00007f438fda147d in clone () from /lib64/libc.so.6

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.041 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.