Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-10543

Memory leak when "replacing into" on a Aria table with Text field

Details

    Description

      When doing a "REPLACE INTO table SELECT * FROM..." or "LOAD DATA INFILE ... REPLACE..." on a Aria table with a "text" (or tinytext, mediumtext, longtext) field, replacing data already in the table, used memory increases each time of about the size of data inserted, until server crash with error 1041.
      The problem doesn't occours if matching records are deleted before.
      Tested also with MyISAM and TokuDB, with which there are no problems.

      Attachments

        1. h3088ato2 _2016-08-19_12-11-49.png
          41 kB
          Risato Stefano
        2. my.cnf
          5 kB
          Risato Stefano
        3. my.ini
          21 kB
          Risato Stefano

        Issue Links

          Activity

            Couldn't reproduce it right away, but there are too many variables.
            Could you please paste the exact SHOW CREATE TABLE from your scenario, specify how many rows (approximately) you replace by one query, and attach your cnf file(s)?

            elenst Elena Stepanova added a comment - Couldn't reproduce it right away, but there are too many variables. Could you please paste the exact SHOW CREATE TABLE from your scenario, specify how many rows (approximately) you replace by one query, and attach your cnf file(s)?
            steris Risato Stefano added a comment - - edited

            Maybe the problem occours dependently on the row size. I wrote a stored proc to reproduce the bug. This doesn't occours if you change the second field in the create table statement from TEXT to VARCHAR(4), or if you remove any other field. The three resultsets show the increasing usage of memory after repeated replace intos. I attach the windows my.ini and linux my.cnf files.
            Stored procedure content:

            BEGIN
             
            declare i int;
             
            drop table if exists eneltel_info;
            CREATE TABLE `eneltel_info` (
            	`P3` MEDIUMINT(9) NOT NULL DEFAULT '0',
            	`CODICE_ZONA` TEXT NOT NULL DEFAULT '',
            	`CFT` CHAR(3) NOT NULL DEFAULT '',
            	`ENELTEL` CHAR(9) NOT NULL DEFAULT '',
            	`CODICE_PRESA` VARCHAR(13) NOT NULL DEFAULT '',
            	`FLAG_TG` VARCHAR(255) NOT NULL DEFAULT '',
            	`CODICE_GRUPPO` VARCHAR(255) NOT NULL DEFAULT '',
            	`DATA_INSERIMENTO` DATETIME NULL DEFAULT NULL,
            	`DATA_MODIFICA` DATETIME NULL DEFAULT NULL,
            	`TARIFFARIO` VARCHAR(255) NOT NULL DEFAULT '',
            	`CODICE_MIS` VARCHAR(255) NOT NULL DEFAULT '',
            	`MATRICOLA_MIS` VARCHAR(255) NOT NULL DEFAULT '',
            	`NOMINATIVO` VARCHAR(35) NOT NULL DEFAULT '',
            	`VIA` VARCHAR(255) NOT NULL DEFAULT '',
            	`NUM_CIV` VARCHAR(255) NOT NULL DEFAULT '',
            	`RAPP_1` DECIMAL(5,0) NULL DEFAULT NULL,
            	`RAPP_2` DECIMAL(3,0) NULL DEFAULT NULL,
            	`STATO_PRESA` VARCHAR(255) NOT NULL DEFAULT '',
            	`SOTTOSTATO_PRESA` VARCHAR(255) NOT NULL DEFAULT '',
            	`CD_CL_MERCEOLOGICA` DECIMAL(3,0) NULL DEFAULT NULL,
            	`POT_DISP` DECIMAL(7,1) NULL DEFAULT NULL,
            	`SOM_POT` DECIMAL(7,3) NULL DEFAULT NULL,
            	`COST_E` DECIMAL(12,5) NULL DEFAULT NULL,
            	`COST_P` DECIMAL(12,3) NULL DEFAULT NULL,
            	`DT_CONTRATTO` DATETIME NULL DEFAULT NULL,
            	`DT_ALLACCIAMENTO` DATETIME NULL DEFAULT NULL,
            	`FLAG_MIS_POT` VARCHAR(255) NOT NULL DEFAULT '',
            	`TENSIONE` DECIMAL(6,0) NULL DEFAULT NULL,
            	`TENS_FOR` VARCHAR(255) NOT NULL DEFAULT '',
            	`FONDO_SCALA` VARCHAR(255) NOT NULL DEFAULT '',
            	`MATR_1_TA` VARCHAR(255) NOT NULL DEFAULT '',
            	`MATR_2_TA` VARCHAR(255) NOT NULL DEFAULT '',
            	`MATR_3_TA` VARCHAR(255) NOT NULL DEFAULT '',
            	`MATR_4_TA` VARCHAR(255) NOT NULL DEFAULT '',
            	`TIPO_MIS` VARCHAR(255) NOT NULL DEFAULT '',
            	`SISTEMA` VARCHAR(255) NOT NULL DEFAULT '',
            	`POD` VARCHAR(15) NOT NULL DEFAULT '',
            	`COD_TRADER` VARCHAR(255) NOT NULL DEFAULT '',
            	`DESC_TRADER` VARCHAR(255) NOT NULL DEFAULT '',
            	`SCALA` VARCHAR(255) NOT NULL DEFAULT '',
            	`PIANO` VARCHAR(255) NOT NULL DEFAULT '',
            	`INTERNO` VARCHAR(255) NOT NULL DEFAULT '',
            	`CAP` VARCHAR(255) NOT NULL DEFAULT '',
            	`LOCALITA` VARCHAR(25) NOT NULL DEFAULT '',
            	`NUM_TEL1` VARCHAR(255) NOT NULL DEFAULT '',
            	`NOTE_ACCESSO` VARCHAR(255) NOT NULL DEFAULT '',
            	`CODICE_FISCALE` VARCHAR(16) NOT NULL DEFAULT '',
            	`PARTITA_IVA` VARCHAR(11) NOT NULL DEFAULT '',
            	`COD_U` CHAR(1) NOT NULL DEFAULT '',
            	`DT_CES_CONTRATTO` DATETIME NULL DEFAULT NULL,
            	`ID_PUNTO_MISURA_RRE` DECIMAL(11,0) NULL DEFAULT NULL,
            	`ID_PUNTO_MISURA_LCO` DECIMAL(11,0) NULL DEFAULT NULL,
            	`ID_PUNTO_MISURA_2` DECIMAL(11,0) NULL DEFAULT NULL,
            	`NU_CIF_A` DECIMAL(1,0) NULL DEFAULT NULL,
            	`COD_MAT_A` VARCHAR(255) NOT NULL DEFAULT '',
            	`CODICE_MIS_R` VARCHAR(255) NOT NULL DEFAULT '',
            	`MATRICOLA_MIS_R` VARCHAR(255) NOT NULL DEFAULT '',
            	`NU_CIF_R` DECIMAL(1,0) NULL DEFAULT NULL,
            	`COD_MAT_R` VARCHAR(255) NOT NULL DEFAULT '',
            	`CODICE_MIS_P` VARCHAR(255) NOT NULL DEFAULT '',
            	`MATRICOLA_MIS_P` VARCHAR(255) NOT NULL DEFAULT '',
            	`NU_CIF_P` DECIMAL(1,0) NULL DEFAULT NULL,
            	`COD_MAT_P` VARCHAR(255) NOT NULL DEFAULT '',
            	`GESTORE_RETE` VARCHAR(255) NOT NULL DEFAULT '',
            	`FORNITURA_RFI` VARCHAR(255) NOT NULL DEFAULT '',
            	`POTENZA_FRANCHIGIA` DECIMAL(9,2) NULL DEFAULT NULL,
            	`POT_CONTR_IMPEGNATA` DECIMAL(15,2) NULL DEFAULT NULL,
            	`FRAZIONE` VARCHAR(255) NOT NULL DEFAULT '',
            	`PROVINCIA` VARCHAR(255) NOT NULL DEFAULT '',
            	`NAZIONE` VARCHAR(255) NOT NULL DEFAULT '',
            	`TIPO_FORN` VARCHAR(255) NOT NULL DEFAULT '',
            	`ID_TIPO_CONTR` VARCHAR(255) NOT NULL DEFAULT '',
            	`CONTR_DISPAC` VARCHAR(255) NOT NULL DEFAULT '',
            	`DT_FIRMA_CONTR_COMMITT` DATETIME NULL DEFAULT NULL,
            	`DT_FIRMA_CONTR_CONTRAE` DATETIME NULL DEFAULT NULL,
            	`VIA_ESAZ` VARCHAR(255) NOT NULL DEFAULT '',
            	`NUMERO_CIVICO_ESAZ` VARCHAR(255) NOT NULL DEFAULT '',
            	`CAP_ESAZ` VARCHAR(255) NOT NULL DEFAULT '',
            	`COMUNE_ESAZ` VARCHAR(255) NOT NULL DEFAULT '',
            	`FRAZIONE_ESAZ` VARCHAR(255) NOT NULL DEFAULT '',
            	`PROVINCIA_ESAZ` VARCHAR(255) NOT NULL DEFAULT '',
            	`NAZIONE_ESAZ` VARCHAR(255) NOT NULL DEFAULT '',
            	`GEST_RETE_CONNES_SITO` VARCHAR(255) NOT NULL DEFAULT '',
            	`PRODUTTORE` VARCHAR(255) NOT NULL DEFAULT '',
            	`NON_DISALIMENTABILE` VARCHAR(256) NOT NULL DEFAULT '',
            	`PATTI_SPECIALI` VARCHAR(255) NOT NULL DEFAULT '',
            	`UBICAZ_APPARECCHI` VARCHAR(255) NOT NULL DEFAULT '',
            	`LIMITATORE` VARCHAR(255) NOT NULL DEFAULT '',
            	`PORTATA` VARCHAR(255) NOT NULL DEFAULT '',
            	`FLAG_MISURA_ENERGIA_ATTIVA` VARCHAR(255) NOT NULL DEFAULT '',
            	`FLAG_MISURA_ENERGIA_REATTIVA` VARCHAR(255) NOT NULL DEFAULT '',
            	`CIFRE_ATTIVA` DECIMAL(2,0) NULL DEFAULT NULL,
            	`CIFRE_REATTIVA` DECIMAL(2,0) NULL DEFAULT NULL,
            	`CIFRE_POTENZA` DECIMAL(2,0) NULL DEFAULT NULL,
            	`FORNTURE_ORARIE` VARCHAR(255) NOT NULL DEFAULT '',
            	`FLAG_FITT` VARCHAR(255) NOT NULL DEFAULT '',
            	`TIPO_RIPROGR` DECIMAL(1,0) NULL DEFAULT NULL,
            	`TIPO_ALIM_CONTRAT` VARCHAR(255) NOT NULL DEFAULT '',
            	`TIPO_MIS_POT` DECIMAL(2,0) NULL DEFAULT NULL,
            	`CURVE_CARICO` VARCHAR(255) NOT NULL DEFAULT '',
            	`ORE_UTLIZZO` DECIMAL(13,0) NULL DEFAULT NULL,
            	`MAGG_PRELIEVI_TENS` DECIMAL(13,0) NULL DEFAULT NULL,
            	`COMPONENTE_AUC` VARCHAR(255) NOT NULL DEFAULT '',
            	`TIPO_UTENTE` VARCHAR(255) NOT NULL DEFAULT '',
            	PRIMARY KEY (`P3`, `ENELTEL`)
            ) ENGINE=Aria
            COLLATE='latin1_swedish_ci'
            ROW_FORMAT=DYNAMIC;
             
             
            drop table if exists test;
            create table test like eneltel_info;
             
            set i=0;
            while i < 10000 do
            	replace into test (p3,eneltel) values (1,i);
            	set i=i+1;
            end while;
             
            show global status like 'Memory_used';
             
            set i=0;
            while i < 10000 do
            	replace into test (p3,eneltel) values (1,i);
            	set i=i+1;
            end while;
             
            show global status like 'Memory_used';
             
            set i=0;
            while i < 10000 do
            	replace into test (p3,eneltel) values (1,i);
            	set i=i+1;
            end while;
             
            show global status like 'Memory_used';
             
            END
            

            steris Risato Stefano added a comment - - edited Maybe the problem occours dependently on the row size. I wrote a stored proc to reproduce the bug. This doesn't occours if you change the second field in the create table statement from TEXT to VARCHAR(4), or if you remove any other field. The three resultsets show the increasing usage of memory after repeated replace intos. I attach the windows my.ini and linux my.cnf files. Stored procedure content: BEGIN   declare i int ;   drop table if exists eneltel_info; CREATE TABLE `eneltel_info` ( `P3` MEDIUMINT(9) NOT NULL DEFAULT '0' , `CODICE_ZONA` TEXT NOT NULL DEFAULT '' , `CFT` CHAR (3) NOT NULL DEFAULT '' , `ENELTEL` CHAR (9) NOT NULL DEFAULT '' , `CODICE_PRESA` VARCHAR (13) NOT NULL DEFAULT '' , `FLAG_TG` VARCHAR (255) NOT NULL DEFAULT '' , `CODICE_GRUPPO` VARCHAR (255) NOT NULL DEFAULT '' , `DATA_INSERIMENTO` DATETIME NULL DEFAULT NULL , `DATA_MODIFICA` DATETIME NULL DEFAULT NULL , `TARIFFARIO` VARCHAR (255) NOT NULL DEFAULT '' , `CODICE_MIS` VARCHAR (255) NOT NULL DEFAULT '' , `MATRICOLA_MIS` VARCHAR (255) NOT NULL DEFAULT '' , `NOMINATIVO` VARCHAR (35) NOT NULL DEFAULT '' , `VIA` VARCHAR (255) NOT NULL DEFAULT '' , `NUM_CIV` VARCHAR (255) NOT NULL DEFAULT '' , `RAPP_1` DECIMAL (5,0) NULL DEFAULT NULL , `RAPP_2` DECIMAL (3,0) NULL DEFAULT NULL , `STATO_PRESA` VARCHAR (255) NOT NULL DEFAULT '' , `SOTTOSTATO_PRESA` VARCHAR (255) NOT NULL DEFAULT '' , `CD_CL_MERCEOLOGICA` DECIMAL (3,0) NULL DEFAULT NULL , `POT_DISP` DECIMAL (7,1) NULL DEFAULT NULL , `SOM_POT` DECIMAL (7,3) NULL DEFAULT NULL , `COST_E` DECIMAL (12,5) NULL DEFAULT NULL , `COST_P` DECIMAL (12,3) NULL DEFAULT NULL , `DT_CONTRATTO` DATETIME NULL DEFAULT NULL , `DT_ALLACCIAMENTO` DATETIME NULL DEFAULT NULL , `FLAG_MIS_POT` VARCHAR (255) NOT NULL DEFAULT '' , `TENSIONE` DECIMAL (6,0) NULL DEFAULT NULL , `TENS_FOR` VARCHAR (255) NOT NULL DEFAULT '' , `FONDO_SCALA` VARCHAR (255) NOT NULL DEFAULT '' , `MATR_1_TA` VARCHAR (255) NOT NULL DEFAULT '' , `MATR_2_TA` VARCHAR (255) NOT NULL DEFAULT '' , `MATR_3_TA` VARCHAR (255) NOT NULL DEFAULT '' , `MATR_4_TA` VARCHAR (255) NOT NULL DEFAULT '' , `TIPO_MIS` VARCHAR (255) NOT NULL DEFAULT '' , `SISTEMA` VARCHAR (255) NOT NULL DEFAULT '' , `POD` VARCHAR (15) NOT NULL DEFAULT '' , `COD_TRADER` VARCHAR (255) NOT NULL DEFAULT '' , `DESC_TRADER` VARCHAR (255) NOT NULL DEFAULT '' , `SCALA` VARCHAR (255) NOT NULL DEFAULT '' , `PIANO` VARCHAR (255) NOT NULL DEFAULT '' , `INTERNO` VARCHAR (255) NOT NULL DEFAULT '' , `CAP` VARCHAR (255) NOT NULL DEFAULT '' , `LOCALITA` VARCHAR (25) NOT NULL DEFAULT '' , `NUM_TEL1` VARCHAR (255) NOT NULL DEFAULT '' , `NOTE_ACCESSO` VARCHAR (255) NOT NULL DEFAULT '' , `CODICE_FISCALE` VARCHAR (16) NOT NULL DEFAULT '' , `PARTITA_IVA` VARCHAR (11) NOT NULL DEFAULT '' , `COD_U` CHAR (1) NOT NULL DEFAULT '' , `DT_CES_CONTRATTO` DATETIME NULL DEFAULT NULL , `ID_PUNTO_MISURA_RRE` DECIMAL (11,0) NULL DEFAULT NULL , `ID_PUNTO_MISURA_LCO` DECIMAL (11,0) NULL DEFAULT NULL , `ID_PUNTO_MISURA_2` DECIMAL (11,0) NULL DEFAULT NULL , `NU_CIF_A` DECIMAL (1,0) NULL DEFAULT NULL , `COD_MAT_A` VARCHAR (255) NOT NULL DEFAULT '' , `CODICE_MIS_R` VARCHAR (255) NOT NULL DEFAULT '' , `MATRICOLA_MIS_R` VARCHAR (255) NOT NULL DEFAULT '' , `NU_CIF_R` DECIMAL (1,0) NULL DEFAULT NULL , `COD_MAT_R` VARCHAR (255) NOT NULL DEFAULT '' , `CODICE_MIS_P` VARCHAR (255) NOT NULL DEFAULT '' , `MATRICOLA_MIS_P` VARCHAR (255) NOT NULL DEFAULT '' , `NU_CIF_P` DECIMAL (1,0) NULL DEFAULT NULL , `COD_MAT_P` VARCHAR (255) NOT NULL DEFAULT '' , `GESTORE_RETE` VARCHAR (255) NOT NULL DEFAULT '' , `FORNITURA_RFI` VARCHAR (255) NOT NULL DEFAULT '' , `POTENZA_FRANCHIGIA` DECIMAL (9,2) NULL DEFAULT NULL , `POT_CONTR_IMPEGNATA` DECIMAL (15,2) NULL DEFAULT NULL , `FRAZIONE` VARCHAR (255) NOT NULL DEFAULT '' , `PROVINCIA` VARCHAR (255) NOT NULL DEFAULT '' , `NAZIONE` VARCHAR (255) NOT NULL DEFAULT '' , `TIPO_FORN` VARCHAR (255) NOT NULL DEFAULT '' , `ID_TIPO_CONTR` VARCHAR (255) NOT NULL DEFAULT '' , `CONTR_DISPAC` VARCHAR (255) NOT NULL DEFAULT '' , `DT_FIRMA_CONTR_COMMITT` DATETIME NULL DEFAULT NULL , `DT_FIRMA_CONTR_CONTRAE` DATETIME NULL DEFAULT NULL , `VIA_ESAZ` VARCHAR (255) NOT NULL DEFAULT '' , `NUMERO_CIVICO_ESAZ` VARCHAR (255) NOT NULL DEFAULT '' , `CAP_ESAZ` VARCHAR (255) NOT NULL DEFAULT '' , `COMUNE_ESAZ` VARCHAR (255) NOT NULL DEFAULT '' , `FRAZIONE_ESAZ` VARCHAR (255) NOT NULL DEFAULT '' , `PROVINCIA_ESAZ` VARCHAR (255) NOT NULL DEFAULT '' , `NAZIONE_ESAZ` VARCHAR (255) NOT NULL DEFAULT '' , `GEST_RETE_CONNES_SITO` VARCHAR (255) NOT NULL DEFAULT '' , `PRODUTTORE` VARCHAR (255) NOT NULL DEFAULT '' , `NON_DISALIMENTABILE` VARCHAR (256) NOT NULL DEFAULT '' , `PATTI_SPECIALI` VARCHAR (255) NOT NULL DEFAULT '' , `UBICAZ_APPARECCHI` VARCHAR (255) NOT NULL DEFAULT '' , `LIMITATORE` VARCHAR (255) NOT NULL DEFAULT '' , `PORTATA` VARCHAR (255) NOT NULL DEFAULT '' , `FLAG_MISURA_ENERGIA_ATTIVA` VARCHAR (255) NOT NULL DEFAULT '' , `FLAG_MISURA_ENERGIA_REATTIVA` VARCHAR (255) NOT NULL DEFAULT '' , `CIFRE_ATTIVA` DECIMAL (2,0) NULL DEFAULT NULL , `CIFRE_REATTIVA` DECIMAL (2,0) NULL DEFAULT NULL , `CIFRE_POTENZA` DECIMAL (2,0) NULL DEFAULT NULL , `FORNTURE_ORARIE` VARCHAR (255) NOT NULL DEFAULT '' , `FLAG_FITT` VARCHAR (255) NOT NULL DEFAULT '' , `TIPO_RIPROGR` DECIMAL (1,0) NULL DEFAULT NULL , `TIPO_ALIM_CONTRAT` VARCHAR (255) NOT NULL DEFAULT '' , `TIPO_MIS_POT` DECIMAL (2,0) NULL DEFAULT NULL , `CURVE_CARICO` VARCHAR (255) NOT NULL DEFAULT '' , `ORE_UTLIZZO` DECIMAL (13,0) NULL DEFAULT NULL , `MAGG_PRELIEVI_TENS` DECIMAL (13,0) NULL DEFAULT NULL , `COMPONENTE_AUC` VARCHAR (255) NOT NULL DEFAULT '' , `TIPO_UTENTE` VARCHAR (255) NOT NULL DEFAULT '' , PRIMARY KEY (`P3`, `ENELTEL`) ) ENGINE=Aria COLLATE = 'latin1_swedish_ci' ROW_FORMAT= DYNAMIC ;     drop table if exists test; create table test like eneltel_info;   set i=0; while i < 10000 do replace into test (p3,eneltel) values (1,i); set i=i+1; end while;   show global status like 'Memory_used' ;   set i=0; while i < 10000 do replace into test (p3,eneltel) values (1,i); set i=i+1; end while;   show global status like 'Memory_used' ;   set i=0; while i < 10000 do replace into test (p3,eneltel) values (1,i); set i=i+1; end while;   show global status like 'Memory_used' ;   END

            Thanks for the report and test case.
            Reproducible with current 5.5-10.2.

            10.1 also produces the assertion failure upon shutdown:

            ...
            Warning: 16496 bytes lost at 0x7f5c6620d070, allocated by T@3 at maria/ma_dynrec.c:291, maria/ma_update.c:159, maria/ha_maria.cc:2310, sql/handler.cc:5914, sql/sql_insert.c
            c:1825, sql/sql_insert.cc:991, sql/sql_parse.cc:3896, sql/sp_head.cc:3215
            Warning: 16496 bytes lost at 0x7f5c661e8070, allocated by T@3 at maria/ma_dynrec.c:291, maria/ma_update.c:159, maria/ha_maria.cc:2310, sql/handler.cc:5914, sql/sql_insert.c
            c:1825, sql/sql_insert.cc:991, sql/sql_parse.cc:3896, sql/sp_head.cc:3215
            Memory lost: 3299200 bytes in 1384 chunks
            mysqld: /data/src/10.1/sql/sql_class.cc:1709: virtual THD::~THD(): Assertion `status_var.local_memory_used == 0' failed.
            160826 21:04:59 [ERROR] mysqld got signal 6 ;
            This could be because you hit a bug. It is also possible that this binary
            ...
            #7  0x00007f5c92f03312 in __GI___assert_fail (assertion=0x7f5c960159c0 "status_var.local_memory_used == 0", file=0x7f5c96015730 "/data/src/10.1/sql/sql_class.cc", line=1709, function=0x7f5c960170b0 <THD::~THD()::__PRETTY_FUNCTION__> "virtual THD::~THD()") at assert.c:101
            #8  0x00007f5c956c75ff in THD::~THD (this=0x7f5c6f356070, __in_chrg=<optimized out>) at /data/src/10.1/sql/sql_class.cc:1709
            #9  0x00007f5c956c77ac in THD::~THD (this=0x7f5c6f356070, __in_chrg=<optimized out>) at /data/src/10.1/sql/sql_class.cc:1714
            #10 0x00007f5c9563c707 in unlink_thd (thd=0x7f5c6f356070) at /data/src/10.1/sql/mysqld.cc:2912
            #11 0x00007f5c9563ca6a in one_thread_per_connection_end (thd=0x7f5c6f356070, put_in_cache=true) at /data/src/10.1/sql/mysqld.cc:3025
            #12 0x00007f5c95839f6a in do_handle_one_connection (thd_arg=0x7f5c6f356070) at /data/src/10.1/sql/sql_connect.cc:1369
            #13 0x00007f5c95839ba9 in handle_one_connection (arg=0x7f5c6f356070) at /data/src/10.1/sql/sql_connect.cc:1262
            #14 0x00007f5c94e050a4 in start_thread (arg=0x7f5c9663bb00) at pthread_create.c:309
            #15 0x00007f5c92fbd87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
            

            elenst Elena Stepanova added a comment - Thanks for the report and test case. Reproducible with current 5.5-10.2. 10.1 also produces the assertion failure upon shutdown: ... Warning: 16496 bytes lost at 0x7f5c6620d070, allocated by T@3 at maria/ma_dynrec.c:291, maria/ma_update.c:159, maria/ha_maria.cc:2310, sql/handler.cc:5914, sql/sql_insert.c c:1825, sql/sql_insert.cc:991, sql/sql_parse.cc:3896, sql/sp_head.cc:3215 Warning: 16496 bytes lost at 0x7f5c661e8070, allocated by T@3 at maria/ma_dynrec.c:291, maria/ma_update.c:159, maria/ha_maria.cc:2310, sql/handler.cc:5914, sql/sql_insert.c c:1825, sql/sql_insert.cc:991, sql/sql_parse.cc:3896, sql/sp_head.cc:3215 Memory lost: 3299200 bytes in 1384 chunks mysqld: /data/src/10.1/sql/sql_class.cc:1709: virtual THD::~THD(): Assertion `status_var.local_memory_used == 0' failed. 160826 21:04:59 [ERROR] mysqld got signal 6 ; This could be because you hit a bug. It is also possible that this binary ... #7 0x00007f5c92f03312 in __GI___assert_fail (assertion=0x7f5c960159c0 "status_var.local_memory_used == 0", file=0x7f5c96015730 "/data/src/10.1/sql/sql_class.cc", line=1709, function=0x7f5c960170b0 <THD::~THD()::__PRETTY_FUNCTION__> "virtual THD::~THD()") at assert.c:101 #8 0x00007f5c956c75ff in THD::~THD (this=0x7f5c6f356070, __in_chrg=<optimized out>) at /data/src/10.1/sql/sql_class.cc:1709 #9 0x00007f5c956c77ac in THD::~THD (this=0x7f5c6f356070, __in_chrg=<optimized out>) at /data/src/10.1/sql/sql_class.cc:1714 #10 0x00007f5c9563c707 in unlink_thd (thd=0x7f5c6f356070) at /data/src/10.1/sql/mysqld.cc:2912 #11 0x00007f5c9563ca6a in one_thread_per_connection_end (thd=0x7f5c6f356070, put_in_cache=true) at /data/src/10.1/sql/mysqld.cc:3025 #12 0x00007f5c95839f6a in do_handle_one_connection (thd_arg=0x7f5c6f356070) at /data/src/10.1/sql/sql_connect.cc:1369 #13 0x00007f5c95839ba9 in handle_one_connection (arg=0x7f5c6f356070) at /data/src/10.1/sql/sql_connect.cc:1262 #14 0x00007f5c94e050a4 in start_thread (arg=0x7f5c9663bb00) at pthread_create.c:309 #15 0x00007f5c92fbd87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
            alice Alice Sherepa added a comment -

            Still reproducible (10.1 312de43f40e221096b556)

            Memory lost: 768 bytes in 3701 chunks
            mysqld: 10.1/sql/sql_class.cc:1608: virtual THD::~THD(): Assertion `status_var.local_memory_used == 0' failed.
            180718 21:25:05 [ERROR] mysqld got signal 6 ;
             
            Server version: 10.1.35-MariaDB-debug
             
            stack_bottom = 0x7f107e1bd100 thread_stack 0x48400
            mysys/stacktrace.c:267(my_print_stacktrace)[0x55e6a2426454]
            sql/signal_handler.cc:168(handle_fatal_signal)[0x55e6a1dbf3dd]
            /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f107d291390]
            linux/raise.c:54(__GI_raise)[0x7f107c860428]
            stdlib/abort.c:91(__GI_abort)[0x7f107c86202a]
            assert/assert.c:92(__assert_fail_base)[0x7f107c858bd7]
            /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7f107c858c82]
            sql/sql_class.cc:1610(THD::~THD())[0x55e6a1b3e217]
            sql/sql_class.cc:1613(THD::~THD())[0x55e6a1b3e3c4]
            sql/mysqld.cc:2840(unlink_thd(THD*))[0x55e6a1ab1daa]
            sql/mysqld.cc:2954(one_thread_per_connection_end(THD*, bool))[0x55e6a1ab210e]
            sql/sql_connect.cc:1349(do_handle_one_connection(THD*))[0x55e6a1cb67f7]
            sql/sql_connect.cc:1243(handle_one_connection)[0x55e6a1cb6448]
            /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f107d2876ba]
            x86_64/clone.S:111(clone)[0x7f107c93241d]
            

            alice Alice Sherepa added a comment - Still reproducible (10.1 312de43f40e221096b556) Memory lost: 768 bytes in 3701 chunks mysqld: 10.1/sql/sql_class.cc:1608: virtual THD::~THD(): Assertion `status_var.local_memory_used == 0' failed. 180718 21:25:05 [ERROR] mysqld got signal 6 ;   Server version: 10.1.35-MariaDB-debug   stack_bottom = 0x7f107e1bd100 thread_stack 0x48400 mysys/stacktrace.c:267(my_print_stacktrace)[0x55e6a2426454] sql/signal_handler.cc:168(handle_fatal_signal)[0x55e6a1dbf3dd] /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f107d291390] linux/raise.c:54(__GI_raise)[0x7f107c860428] stdlib/abort.c:91(__GI_abort)[0x7f107c86202a] assert/assert.c:92(__assert_fail_base)[0x7f107c858bd7] /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7f107c858c82] sql/sql_class.cc:1610(THD::~THD())[0x55e6a1b3e217] sql/sql_class.cc:1613(THD::~THD())[0x55e6a1b3e3c4] sql/mysqld.cc:2840(unlink_thd(THD*))[0x55e6a1ab1daa] sql/mysqld.cc:2954(one_thread_per_connection_end(THD*, bool))[0x55e6a1ab210e] sql/sql_connect.cc:1349(do_handle_one_connection(THD*))[0x55e6a1cb67f7] sql/sql_connect.cc:1243(handle_one_connection)[0x55e6a1cb6448] /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f107d2876ba] x86_64/clone.S:111(clone)[0x7f107c93241d]

            It seems to have disappeared from current 10.1/10.2, need to bisect to find out when/why.

            elenst Elena Stepanova added a comment - It seems to have disappeared from current 10.1/10.2, need to bisect to find out when/why.

            The failure disappeared from 5.5 branch after this commit:

            commit 2709380587bbcbc7abda77f11ee0abd207c65027
            Author: Sergei Golubchik <serg@mariadb.org>
            Date:   Wed Feb 14 18:14:24 2018 +0100
             
                MDEV-13748 Assertion `status_var.local_memory_used == 0 || !debug_assert_on_not_freed_memory' failed in virtual THD::~THD after query with INTERSECT
                
                my_safe_alloca()/my_safe_afree() work as alloca() or malloc()/free()
                depending on the memory size to allocate, that is, depending on
                reclength here. They only work correctly if reclength doesn't
            

            elenst Elena Stepanova added a comment - The failure disappeared from 5.5 branch after this commit: commit 2709380587bbcbc7abda77f11ee0abd207c65027 Author: Sergei Golubchik <serg@mariadb.org> Date: Wed Feb 14 18:14:24 2018 +0100   MDEV-13748 Assertion `status_var.local_memory_used == 0 || !debug_assert_on_not_freed_memory' failed in virtual THD::~THD after query with INTERSECT my_safe_alloca()/my_safe_afree() work as alloca() or malloc()/free() depending on the memory size to allocate, that is, depending on reclength here. They only work correctly if reclength doesn't

            People

              Unassigned Unassigned
              steris Risato Stefano
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.