Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.4(EOL), 10.5, 10.6, 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL)
-
None
Description
INSTALL SONAME 'ha_rocksdb'; |
|
CREATE TABLE t (id INT, a INT, b INT, PRIMARY KEY(id), KEY(a), KEY(b)) ENGINE=RocksDB COMMENT='ttl_duration=300'; |
START TRANSACTION; |
INSERT INTO t VALUES (1,1,1),(2,2,2); |
DELETE FROM t ORDER BY a LIMIT 10; |
10.4 64f44b22d9a3dab3d4c0b77addbcbdafde57b466 |
2023-11-26 17:39:42 4 [ERROR] Decoding ttl from PK value failed, for index (0,257), val:
|
mysqld: /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:6433: bool myrocks::ha_rocksdb::should_hide_ttl_rec(const myrocks::Rdb_key_def&, const rocksdb::Slice&, int64_t): Assertion `0' failed.
|
|
#9 0x00007f7ba5e53e32 in __GI___assert_fail (assertion=0x7f7b9bb3a040 "0", file=0x7f7b9bb2bca0 "/data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc", line=6433, function=0x7f7b9bb39ea0 "bool myrocks::ha_rocksdb::should_hide_ttl_rec(const myrocks::Rdb_key_def&, const rocksdb::Slice&, int64_t)") at ./assert/assert.c:101
|
#10 0x00007f7b9ae8062e in myrocks::ha_rocksdb::should_hide_ttl_rec (this=0x61d0002468a8, kd=..., ttl_rec_val=..., curr_ts=1701013182) at /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:6433
|
#11 0x00007f7b9ae80c1b in myrocks::ha_rocksdb::rocksdb_skip_expired_records (this=0x61d0002468a8, kd=..., iter=0x6080000103a0, seek_backward=false) at /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:6461
|
#12 0x00007f7b9ae980b6 in myrocks::ha_rocksdb::index_next_with_direction (this=0x61d0002468a8, buf=0x61900009f1b8 "\371\002", move_forward=true) at /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:9145
|
#13 0x00007f7b9ae977f7 in myrocks::ha_rocksdb::index_next (this=0x61d0002468a8, buf=0x61900009f1b8 "\371\002") at /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:9096
|
#14 0x000056488d21f98a in handler::ha_index_next (this=0x61d0002468a8, buf=0x61900009f1b8 "\371\002") at /data/bld/10.4-asan/sql/handler.cc:3011
|
#15 0x000056488d644091 in rr_index (info=0x7f7b9ce51710) at /data/bld/10.4-asan/sql/records.cc:450
|
#16 0x000056488c8aea84 in READ_RECORD::read_record (this=0x7f7b9ce51710) at /data/bld/10.4-asan/sql/records.h:70
|
#17 0x000056488d692083 in mysql_delete (thd=0x62b00005b208, table_list=0x62b000062340, conds=0x0, order_list=0x62b00005fc20, limit=8, options=0, result=0x0) at /data/bld/10.4-asan/sql/sql_delete.cc:794
|
#18 0x000056488ca6777c in mysql_execute_command (thd=0x62b00005b208) at /data/bld/10.4-asan/sql/sql_parse.cc:4817
|
#19 0x000056488ca7da6b in mysql_parse (thd=0x62b00005b208, rawbuf=0x62b000062228 "DELETE FROM t ORDER BY a LIMIT 10", length=33, parser_state=0x7f7b9ce53c60, is_com_multi=false, is_next_command=false) at /data/bld/10.4-asan/sql/sql_parse.cc:8060
|
#20 0x000056488ca53ae2 in dispatch_command (command=COM_QUERY, thd=0x62b00005b208, packet=0x62900021c209 "DELETE FROM t ORDER BY a LIMIT 10", packet_length=33, is_com_multi=false, is_next_command=false) at /data/bld/10.4-asan/sql/sql_parse.cc:1857
|
#21 0x000056488ca50651 in do_command (thd=0x62b00005b208) at /data/bld/10.4-asan/sql/sql_parse.cc:1378
|
#22 0x000056488ce56d15 in do_handle_one_connection (connect=0x6080000009a8) at /data/bld/10.4-asan/sql/sql_connect.cc:1419
|
#23 0x000056488ce5662c in handle_one_connection (arg=0x6080000009a8) at /data/bld/10.4-asan/sql/sql_connect.cc:1323
|
#24 0x000056488dabb26c in pfs_spawn_thread (arg=0x615000003508) at /data/bld/10.4-asan/storage/perfschema/pfs.cc:1869
|
#25 0x00007f7ba5ea8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
|
#26 0x00007f7ba5f2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
|
Non-debug build produces the same error without server abort:
2023-11-26 17:39:42 4 [ERROR] Decoding ttl from PK value failed, for index (0,257), val:
|
(it does indeed end with val:, nothing after that).
Reproducible on all existing versions.
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Fix Version/s | 10.10 [ 27530 ] | |
Assignee | Elena Stepanova [ elenst ] | Sergei Petrunia [ psergey ] |
Description |
Reproducible (also on previous 10.4, so not a recent regression), needs cleaning
{code:sql} # Remaining options: --mysqld=--default-storage-engine=RocksDB --mysqld=--plugin-load-add=ha_rocksdb # Search pattern(s): (?^s:myrocks::ha_rocksdb::should_hide_ttl_rec) --disable_abort_on_error CREATE DATABASE IF NOT EXISTS advanced_db; CREATE TABLE advanced_db.t7 (id INTEGER AUTO_INCREMENT, col_timestamp TIMESTAMP NOT NULL DEFAULT '1971-01-01 00:00:00', col_bit BIT(53) NULL, col_int INT(1) UNSIGNED NOT NULL DEFAULT 0, col_char BINARY(161) NOT NULL DEFAULT '', col_year YEAR NULL, col_varchar VARCHAR(2136) NOT NULL DEFAULT '', PRIMARY KEY(id)); CREATE VIEW advanced_db.view_t7 AS SELECT * FROM advanced_db.t7; ALTER TABLE advanced_db.t7 ADD INDEX(col_timestamp,col_int,col_char(64)); ALTER TABLE advanced_db.t7 ADD INDEX(col_timestamp,col_int,col_char(64)); PREPARE stmt_86 FROM " REPLACE INTO advanced_db.view_t7 (col_year) VALUES (?) "; --delimiter ||| ALTER TABLE advanced_db.t7 COMMENT = 'ttl_duration=345;'||| PREPARE stmt_95 FROM " DELETE FROM advanced_db.view_t7 ORDER BY col_timestamp LIMIT ? "; START TRANSACTION; --delimiter ||| --delimiter ; EXECUTE stmt_86 USING 89; EXECUTE stmt_95 USING 80; {code} {noformat:title=10.4 9e321a44} 2023-11-05 23:36:36 4 [ERROR] Decoding ttl from PK value failed, for index (0,260), val: mysqld: /data/src/10.4/storage/rocksdb/ha_rocksdb.cc:6433: bool myrocks::ha_rocksdb::should_hide_ttl_rec(const myrocks::Rdb_key_def&, const rocksdb: :Slice&, int64_t): Assertion `0' failed. 231105 23:36:36 [ERROR] mysqld got signal 6 #9 0x00007fcfaa974e32 in __GI___assert_fail (assertion=0x7fcfa3b39fe0 "0", file=0x7fcfa3b2bc40 "/data/src/10.4/storage/rocksdb/ha_rocksdb.cc", line=6433, function=0x7fcfa3b39e40 "bool myrocks::ha_rocksdb::should_hide_ttl_rec(const myrocks::Rdb_key_def&, const rocksdb::Slice&, int64_t)") at ./assert/assert.c:101 #10 0x00007fcfa2e8062e in myrocks::ha_rocksdb::should_hide_ttl_rec (this=0x61d00022e2a8, kd=..., ttl_rec_val=..., curr_ts=1699220196) at /data/src/10.4/storage/rocksdb/ha_rocksdb.cc:6433 #11 0x00007fcfa2e80c1b in myrocks::ha_rocksdb::rocksdb_skip_expired_records (this=0x61d00022e2a8, kd=..., iter=0x6080000107a0, seek_backward=false) at /data/src/10.4/storage/rocksdb/ha_rocksdb.cc:6461 #12 0x00007fcfa2e980b6 in myrocks::ha_rocksdb::index_next_with_direction (this=0x61d00022e2a8, buf=0x6210000d7128 "\375\001", move_forward=true) at /data/src/10.4/storage/rocksdb/ha_rocksdb.cc:9145 #13 0x00007fcfa2e977f7 in myrocks::ha_rocksdb::index_next (this=0x61d00022e2a8, buf=0x6210000d7128 "\375\001") at /data/src/10.4/storage/rocksdb/ha_rocksdb.cc:9096 #14 0x00005584942fcd0c in handler::ha_index_next (this=0x61d00022e2a8, buf=0x6210000d7128 "\375\001") at /data/src/10.4/sql/handler.cc:3011 #15 0x00005584947209ad in rr_index (info=0x7fcf9d4ba730) at /data/src/10.4/sql/records.cc:450 #16 0x00005584939931e6 in READ_RECORD::read_record (this=0x7fcf9d4ba730) at /data/src/10.4/sql/records.h:70 #17 0x000055849476e99f in mysql_delete (thd=0x62b00005b208, table_list=0x62b000039f68, conds=0x0, order_list=0x62b000038dd8, limit=79, options=0, result=0x0) at /data/src/10.4/sql/sql_delete.cc:794 #18 0x0000558493b4a080 in mysql_execute_command (thd=0x62b00005b208) at /data/src/10.4/sql/sql_parse.cc:4817 #19 0x0000558493bb4355 in Prepared_statement::execute (this=0x619000099288, expanded_query=0x7fcf9d4bcb30, open_cursor=false) at /data/src/10.4/sql/sql_prepare.cc:5068 #20 0x0000558493baf995 in Prepared_statement::execute_loop (this=0x619000099288, expanded_query=0x7fcf9d4bcb30, open_cursor=false, packet=0x0, packet_end=0x0) at /data/src/10.4/sql/sql_prepare.cc:4515 #21 0x0000558493ba9807 in mysql_sql_stmt_execute (thd=0x62b00005b208) at /data/src/10.4/sql/sql_prepare.cc:3587 #22 0x0000558493b4448b in mysql_execute_command (thd=0x62b00005b208) at /data/src/10.4/sql/sql_parse.cc:3994 #23 0x0000558493b601e5 in mysql_parse (thd=0x62b00005b208, rawbuf=0x62b000062228 "EXECUTE stmt_95 USING 80", length=24, parser_state=0x7fcf9d4be860, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:8013 #24 0x0000558493b36410 in dispatch_command (command=COM_QUERY, thd=0x62b00005b208, packet=0x629000244209 "EXECUTE stmt_95 USING 80", packet_length=24, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1857 #25 0x0000558493b32f7f in do_command (thd=0x62b00005b208) at /data/src/10.4/sql/sql_parse.cc:1378 #26 0x0000558493f344dc in do_handle_one_connection (connect=0x608000008628) at /data/src/10.4/sql/sql_connect.cc:1420 #27 0x0000558493f33df3 in handle_one_connection (arg=0x608000008628) at /data/src/10.4/sql/sql_connect.cc:1324 #28 0x0000558494ba75c2 in pfs_spawn_thread (arg=0x61500000e408) at /data/src/10.4/storage/perfschema/pfs.cc:1869 #29 0x00007fcfaa9c9044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #30 0x00007fcfaaa4961c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 {noformat} A release build doesn't crash but also produces an error. |
{code:sql}
INSTALL SONAME 'ha_rocksdb'; CREATE TABLE t (id INT, a INT, b INT, PRIMARY KEY(id), KEY(a), KEY(b)) ENGINE=RocksDB COMMENT='ttl_duration=300'; START TRANSACTION; INSERT INTO t VALUES (1,1,1),(2,2,2); DELETE FROM t ORDER BY a LIMIT 10; {code} {noformat:title=10.4 64f44b22d9a3dab3d4c0b77addbcbdafde57b466} 2023-11-26 17:39:42 4 [ERROR] Decoding ttl from PK value failed, for index (0,257), val: mysqld: /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:6433: bool myrocks::ha_rocksdb::should_hide_ttl_rec(const myrocks::Rdb_key_def&, const rocksdb::Slice&, int64_t): Assertion `0' failed. #9 0x00007f7ba5e53e32 in __GI___assert_fail (assertion=0x7f7b9bb3a040 "0", file=0x7f7b9bb2bca0 "/data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc", line=6433, function=0x7f7b9bb39ea0 "bool myrocks::ha_rocksdb::should_hide_ttl_rec(const myrocks::Rdb_key_def&, const rocksdb::Slice&, int64_t)") at ./assert/assert.c:101 #10 0x00007f7b9ae8062e in myrocks::ha_rocksdb::should_hide_ttl_rec (this=0x61d0002468a8, kd=..., ttl_rec_val=..., curr_ts=1701013182) at /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:6433 #11 0x00007f7b9ae80c1b in myrocks::ha_rocksdb::rocksdb_skip_expired_records (this=0x61d0002468a8, kd=..., iter=0x6080000103a0, seek_backward=false) at /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:6461 #12 0x00007f7b9ae980b6 in myrocks::ha_rocksdb::index_next_with_direction (this=0x61d0002468a8, buf=0x61900009f1b8 "\371\002", move_forward=true) at /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:9145 #13 0x00007f7b9ae977f7 in myrocks::ha_rocksdb::index_next (this=0x61d0002468a8, buf=0x61900009f1b8 "\371\002") at /data/bld/10.4-asan/storage/rocksdb/ha_rocksdb.cc:9096 #14 0x000056488d21f98a in handler::ha_index_next (this=0x61d0002468a8, buf=0x61900009f1b8 "\371\002") at /data/bld/10.4-asan/sql/handler.cc:3011 #15 0x000056488d644091 in rr_index (info=0x7f7b9ce51710) at /data/bld/10.4-asan/sql/records.cc:450 #16 0x000056488c8aea84 in READ_RECORD::read_record (this=0x7f7b9ce51710) at /data/bld/10.4-asan/sql/records.h:70 #17 0x000056488d692083 in mysql_delete (thd=0x62b00005b208, table_list=0x62b000062340, conds=0x0, order_list=0x62b00005fc20, limit=8, options=0, result=0x0) at /data/bld/10.4-asan/sql/sql_delete.cc:794 #18 0x000056488ca6777c in mysql_execute_command (thd=0x62b00005b208) at /data/bld/10.4-asan/sql/sql_parse.cc:4817 #19 0x000056488ca7da6b in mysql_parse (thd=0x62b00005b208, rawbuf=0x62b000062228 "DELETE FROM t ORDER BY a LIMIT 10", length=33, parser_state=0x7f7b9ce53c60, is_com_multi=false, is_next_command=false) at /data/bld/10.4-asan/sql/sql_parse.cc:8060 #20 0x000056488ca53ae2 in dispatch_command (command=COM_QUERY, thd=0x62b00005b208, packet=0x62900021c209 "DELETE FROM t ORDER BY a LIMIT 10", packet_length=33, is_com_multi=false, is_next_command=false) at /data/bld/10.4-asan/sql/sql_parse.cc:1857 #21 0x000056488ca50651 in do_command (thd=0x62b00005b208) at /data/bld/10.4-asan/sql/sql_parse.cc:1378 #22 0x000056488ce56d15 in do_handle_one_connection (connect=0x6080000009a8) at /data/bld/10.4-asan/sql/sql_connect.cc:1419 #23 0x000056488ce5662c in handle_one_connection (arg=0x6080000009a8) at /data/bld/10.4-asan/sql/sql_connect.cc:1323 #24 0x000056488dabb26c in pfs_spawn_thread (arg=0x615000003508) at /data/bld/10.4-asan/storage/perfschema/pfs.cc:1869 #25 0x00007f7ba5ea8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #26 0x00007f7ba5f2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 {noformat} Non-debug build produces the same error without server abort: {noformat} 2023-11-26 17:39:42 4 [ERROR] Decoding ttl from PK value failed, for index (0,257), val: {noformat} (it does indeed end with {{val:}}, nothing after that). Reproducible on all existing versions. |
Summary | [Draft] Decoding ttl from PK value failed in RocksDB | Decoding ttl error, assertion failure in myrocks::ha_rocksdb::should_hide_ttl_rec |
Fix Version/s | 11.0 [ 28320 ] |
Fix Version/s | 10.4 [ 22408 ] |
Fix Version/s | 11.1 [ 28549 ] |
Fix Version/s | 11.2(EOL) [ 28603 ] |