Valgrind: Unaddressable bytes found during client check request at dtuple_validate by page_cur_search_with_match
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS | Status tracked in 5.7 | |||||
5.5 |
In Progress
|
High
|
Laurynas Biveinis | |||
5.6 |
Triaged
|
High
|
Laurynas Biveinis | |||
5.7 |
Triaged
|
High
|
Laurynas Biveinis |
Bug Description
Here's the part of Valgrind output from error log and the whole error log is attached.
==17453== Thread 29:
==17453== Unaddressable byte(s) found during client check request
==17453== at 0x1B9DDFA: dtuple_
==17453== by 0x1994836: page_cur_
==17453== by 0x1B34F24: btr_cur_
==17453== by 0x19F9344: row_ins_
==17453== by 0x19FAE75: row_ins_
==17453== by 0x1A1C487: row_insert_
==17453== by 0x1A1D02F: row_insert_
==17453== by 0x18B2C14: ha_innobase:
==17453== by 0x18B2CD9: ha_innobase:
==17453== by 0xF1CD11: handler:
==17453== by 0x14E0A48: end_write(JOIN*, QEP_TAB*, bool) (sql_executor.
==17453== by 0x14E3F9A: QEP_tmp_
==17453== by 0x14E4D44: QEP_tmp_
==17453== by 0x14DB2F0: sub_select_
==17453== by 0x14DC20C: evaluate_
==17453== by 0x14DB64C: sub_select(JOIN*, QEP_TAB*, bool) (sql_executor.
==17453== by 0x14DAECD: do_select(JOIN*) (sql_executor.
==17453== by 0x14D8E4E: JOIN::exec() (sql_executor.
==17453== by 0x15781D1: handle_query(THD*, LEX*, Query_result*, unsigned long long, unsigned long long) (sql_select.cc:184)
==17453== by 0x152AC65: execute_
==17453== by 0x1523D58: mysql_execute_
==17453== by 0x152BC42: mysql_parse(THD*, Parser_state*) (sql_parse.cc:5838)
==17453== by 0x1520892: dispatch_
==17453== by 0x151F7AC: do_command(THD*) (sql_parse.cc:1010)
==17453== by 0x1661847: handle_connection (connection_
==17453== by 0x1D0C13B: pfs_spawn_thread (pfs.cc:2188)
==17453== by 0x5075DC4: start_thread (pthread_
==17453== by 0x6E5CCEC: clone (clone.S:113)
TEST CASE:
==========
DROP DATABASE test;CREATE DATABASE test;USE test;
CREATE TABLE ti(g BLOB,id INT,KEY (id)) ENGINE=MEMORY;
INSERT INTO ti VALUES('test',5);
INSERT INTO ti VALUES(0,4);
SET @@session.
select * from ti;
I've tried with InnoDB as well but the issue wasn't visible there.
tags: | added: memory-se |
Oracle mysql is blocking creation of the table with text/block column in this case, and I get some different? issue on PS 5.6/5.5.
5.6: valgrind/ vgpreload_ memcheck- amd64-linux. so) blob_record (mi_dynrec.c:289) :write_ row(unsigned char*) (ha_myisam.cc:826) :ha_write_ row(unsigned char*) (handler.cc:7736) cc:3012) table:: put_record( bool) (sql_executor. cc:4320) table:: put_record( ) (sql_executor. h:242) op(JOIN* , st_join_table*, bool) (sql_executor. cc:1070) join_record( JOIN*, st_join_table*) (sql_executor. cc:1604)
====
==31697== Thread 24:
==31697== Invalid read of size 2
==31697== at 0x4C2E2A0: memcpy@@GLIBC_2.14 (in /usr/lib64/
==31697== by 0xDEE64B: _mi_rec_pack (mi_dynrec.c:997)
==31697== by 0xDEBD0D: _mi_write_
==31697== by 0xE12D38: mi_write (mi_write.c:142)
==31697== by 0xDCD1B9: ha_myisam:
==31697== by 0x655284: handler:
==31697== by 0x7C88AC: end_write(JOIN*, st_join_table*, bool) (sql_executor.
==31697== by 0x7CC0B9: QEP_tmp_
==31697== by 0x7CCC1A: QEP_tmp_
==31697== by 0x7C4582: sub_select_
==31697== by 0x7C5288: evaluate_
==31697== by 0x7C4871: sub_select(JOIN*...