[MDEV-21831] Assertion `length == pack_length()' failed in Field_inet6::sort_string upon INSERT into RocksDB table Created: 2020-02-27  Updated: 2020-06-16  Resolved: 2020-06-11

Status: Closed
Project: MariaDB Server
Component/s: Data types, Storage Engine - RocksDB
Affects Version/s: 10.5
Fix Version/s: 10.5.4

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Varun Gupta (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-22256 Assertion `length == pack_length()' f... Closed

 Description   

INSTALL SONAME 'ha_rocksdb';
CREATE TABLE t1 (a INET6 NOT NULL, KEY (a)) ENGINE=RocksDB;
INSERT IGNORE INTO t1 VALUES (NULL);

10.5 9894751a

mysqld: /data/src/10.5/plugin/type_inet/sql_type_inet.cc:690: virtual void Field_inet6::sort_string(uchar*, uint): Assertion `length == pack_length()' failed.
200227 15:59:14 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f1794ec6f12 in __GI___assert_fail (assertion=0x55d42cfee6a7 "length == pack_length()", file=0x55d42cfee4d0 "/data/src/10.5/plugin/type_inet/sql_type_inet.cc", line=690, function=0x55d42cfefd40 <Field_inet6::sort_string(unsigned char*, unsigned int)::__PRETTY_FUNCTION__> "virtual void Field_inet6::sort_string(uchar*, uint)") at assert.c:101
#8  0x000055d42ca2379d in Field_inet6::sort_string (this=0x7f177424a3c0, to=0x7f1774008594 '\245' <repeats 52 times>, "h4z\025", '\217' <repeats 12 times>, "\305", length=39) at /data/src/10.5/plugin/type_inet/sql_type_inet.cc:690
#9  0x00007f178aebd624 in myrocks::Rdb_key_def::pack_with_make_sort_key (fpi=0x7f177406d080, field=0x7f177424a3c0, buf=0x7f1774008890 '\245' <repeats 56 times>, "h4z\025", '\217' <repeats 12 times>, "U", dst=0x7f17900725e0, pack_ctx=0x7f1790072608) at /data/src/10.5/storage/rocksdb/rdb_datadic.cc:1497
#10 0x00007f178aebc538 in myrocks::Rdb_key_def::pack_field (this=0x7f177406cce0, field=0x7f177424a3c0, pack_info=0x7f177406d080, tuple=0x7f1774008594 '\245' <repeats 52 times>, "h4z\025", '\217' <repeats 12 times>, "\305", packed_tuple=0x7f1774008590 "", pack_buffer=0x7f1774008890 '\245' <repeats 56 times>, "h4z\025", '\217' <repeats 12 times>, "U", unpack_info=0x7f177424ad78, n_null_fields=0x0) at /data/src/10.5/storage/rocksdb/rdb_datadic.cc:1233
#11 0x00007f178aebccb6 in myrocks::Rdb_key_def::pack_record (this=0x7f177406cce0, tbl=0x7f1774249500, pack_buffer=0x7f1774008890 '\245' <repeats 56 times>, "h4z\025", '\217' <repeats 12 times>, "U", record=0x7f177424a380 "\377", packed_tuple=0x7f1774008590 "", unpack_info=0x7f177424ad78, should_store_row_debug_checksums=false, hidden_pk_id=1, n_key_parts=2, n_null_fields=0x0, ttl_bytes=0x7f177424c681 '\217' <repeats 15 times>, "P\307$t\027\177") at /data/src/10.5/storage/rocksdb/rdb_datadic.cc:1381
#12 0x00007f178ae2f5d2 in myrocks::ha_rocksdb::update_write_sk (this=0x7f177424a7d8, table_arg=0x7f1774249500, kd=..., row_info=..., bulk_load_sk=false) at /data/src/10.5/storage/rocksdb/ha_rocksdb.cc:10171
#13 0x00007f178ae2fac4 in myrocks::ha_rocksdb::update_write_indexes (this=0x7f177424a7d8, row_info=..., pk_changed=false) at /data/src/10.5/storage/rocksdb/ha_rocksdb.cc:10271
#14 0x00007f178ae2fd80 in myrocks::ha_rocksdb::update_write_row (this=0x7f177424a7d8, old_data=0x0, new_data=0x7f177424a380 "\377", skip_unique_check=false) at /data/src/10.5/storage/rocksdb/ha_rocksdb.cc:10354
#15 0x00007f178ae2d94f in myrocks::ha_rocksdb::write_row (this=0x7f177424a7d8, buf=0x7f177424a380 "\377") at /data/src/10.5/storage/rocksdb/ha_rocksdb.cc:9563
#16 0x000055d42c0a794a in handler::ha_write_row (this=0x7f177424a7d8, buf=0x7f177424a380 "\377") at /data/src/10.5/sql/handler.cc:6657
#17 0x000055d42bd019cc in write_record (thd=0x7f1774000b00, table=0x7f1774249500, info=0x7f1790072c60, sink=0x0) at /data/src/10.5/sql/sql_insert.cc:2056
#18 0x000055d42bcfe942 in mysql_insert (thd=0x7f1774000b00, table_list=0x7f17740135a0, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=true, result=0x0) at /data/src/10.5/sql/sql_insert.cc:1081
#19 0x000055d42bd4fa83 in mysql_execute_command (thd=0x7f1774000b00) at /data/src/10.5/sql/sql_parse.cc:4505
#20 0x000055d42bd5b99c in mysql_parse (thd=0x7f1774000b00, rawbuf=0x7f17740134a8 "INSERT IGNORE INTO t1 VALUES (NULL)", length=35, parser_state=0x7f1790073570, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:7918
#21 0x000055d42bd47645 in dispatch_command (command=COM_QUERY, thd=0x7f1774000b00, packet=0x7f1774157491 "INSERT IGNORE INTO t1 VALUES (NULL)", packet_length=35, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:1845
#22 0x000055d42bd45d8c in do_command (thd=0x7f1774000b00) at /data/src/10.5/sql/sql_parse.cc:1364
#23 0x000055d42bee7323 in do_handle_one_connection (connect=0x55d42f6807c0, put_in_cache=true) at /data/src/10.5/sql/sql_connect.cc:1422
#24 0x000055d42bee7052 in handle_one_connection (arg=0x55d42f6807c0) at /data/src/10.5/sql/sql_connect.cc:1319
#25 0x000055d42c443b45 in pfs_spawn_thread (arg=0x55d42f614a50) at /data/src/10.5/storage/perfschema/pfs.cc:1869
#26 0x00007f1796e4f4a4 in start_thread (arg=0x7f1790074700) at pthread_create.c:456
#27 0x00007f1794f83d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Not reproducible with BINARY(16) instead of INET6.
No failure with InnoDB or MyISAM.
No obvious problem on a non-debug build.



 Comments   
Comment by Varun Gupta (Inactive) [ 2020-06-08 ]

Patch
https://github.com/MariaDB/server/commit/035b22e4759b9764e8f6ed8a0a52ef70383bc86a

Comment by Sergei Petrunia [ 2020-06-09 ]

Review input: https://lists.launchpad.net/maria-developers/msg12270.html

Generated at Thu Feb 08 09:10:08 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.