[MDEV-13722] Bytes lost or Assertion `global_status_var.global_memory_used == 0' failed after using trigger on table with blob Created: 2017-09-03  Updated: 2018-06-19  Resolved: 2018-06-19

Status: Closed
Project: MariaDB Server
Component/s: Server, Triggers
Affects Version/s: 10.1, 10.2, 10.3
Fix Version/s: 10.2.6, 10.1.34, 10.3.8

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Michael Widenius
Resolution: Duplicate Votes: 0
Labels: None

Issue Links:
Duplicate
duplicates MDEV-16093 Assertion `global_status_var.global_m... Closed

 Description   

CREATE TABLE t (f BLOB NOT NULL);
CREATE TRIGGER tr BEFORE INSERT ON t FOR EACH ROW SET @a = 1; 
INSERT INTO t VALUES ( 'foo' );
 
--source include/restart_mysqld.inc
 
# Cleanup
--connection default
DROP TABLE t;

10.1 debug 38ca9be4de3

2017-09-03 23:14:17 139901928381184 [Note] /data/bld/10.1/bin/mysqld: Shutdown complete
 
Warning:    8 bytes lost at 0x7f3d69c205f0, allocated by T@0 at 0x558b461f70b5, 0x558b4609380b, sql/sql_string.cc:46, sql/field.cc:7961, sql/item.cc:6082, sql/sql_base.cc:8965, sql/sql_base.cc:9013, sql/sql_insert.cc:982
Memory lost: 8 bytes in 1 chunks

10.1 valgrind 38ca9be4de3

==8584== 16 bytes in 1 blocks are definitely lost in loss record 1 of 8
==8584==    at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==8584==    by 0xED4D45: my_malloc (my_malloc.c:101)
==8584==    by 0x68C1B8: String::real_alloc(unsigned int) (sql_string.cc:46)
==8584==    by 0x524582: String::alloc(unsigned int) (sql_string.h:325)
==8584==    by 0x809535: Field_blob::store(char const*, unsigned int, charset_info_st const*) (field.cc:7961)
==8584==    by 0x838006: Item::save_str_value_in_field(Field*, String*) (item.cc:460)
==8584==    by 0x846BCF: Item_string::save_in_field(Field*, bool) (item.cc:6081)
==8584==    by 0x58024E: fill_record(THD*, TABLE*, Field**, List<Item>&, bool, bool) (sql_base.cc:8965)
==8584==    by 0x5803EF: fill_record_n_invoke_before_triggers(THD*, TABLE*, Field**, List<Item>&, bool, trg_event_type) (sql_base.cc:9013)
==8584==    by 0x5BA177: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:982)
==8584==    by 0x5DF172: mysql_execute_command(THD*) (sql_parse.cc:3921)
==8584==    by 0x5E9CB2: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7333)
==8584==    by 0x5D88B5: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1484)
==8584==    by 0x5D7652: do_command(THD*) (sql_parse.cc:1106)
==8584==    by 0x715544: do_handle_one_connection(THD*) (sql_connect.cc:1349)
==8584==    by 0x7152A8: handle_one_connection (sql_connect.cc:1261)
^ Found warnings in /data/bld/10.1-valgrind/mysql-test/var/log/mysqld.1.err

10.2 debug 5660c061faf30

2017-09-03 23:10:53 140672200853248 [Note] /data/bld/10.2/bin/mysqld: Shutdown complete
 
mysqld: /data/src/10.2/sql/mysqld.cc:2166: void mysqld_exit(int): Assertion `global_status_var.global_memory_used == 0' failed.
170903 23:10:53 [ERROR] mysqld got signal 6 ;
 
#7  0x00007ff0d2669ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x000055ca9e376f48 in mysqld_exit (exit_code=0) at /data/src/10.2/sql/mysqld.cc:2166
#9  0x000055ca9e37edf5 in mysqld_main (argc=128, argv=0x55caa1dae370) at /data/src/10.2/sql/mysqld.cc:6084
#10 0x000055ca9e373540 in main (argc=6, argv=0x7fff6203cee8) at /data/src/10.2/sql/main.cc:25



 Comments   
Comment by Michael Widenius [ 2018-06-19 ]

Duplicate of MDEV-16093 Memory leak with triggers

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