[MDEV-12631] Valgrind warnings Mismatched free() / delete / delete [] in UNZIPUTL::closeEntry, connect.zip fails in buildbot with valgrind Created: 2017-04-29  Updated: 2017-04-29  Resolved: 2017-04-29

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Connect, Tests
Affects Version/s: 10.1
Fix Version/s: 10.1.23, 10.0.31

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Olivier Bertrand
Resolution: Fixed Votes: 0
Labels: None


 Description   

http://buildbot.askmonty.org/buildbot/builders/work-amd64-valgrind/builds/10024/steps/test/logs/stdio

connect.zip                              w4 [ fail ]  Found warnings/errors in server log file!
        Test ended at 2017-04-27 06:09:01
line
==15154== Thread 6:
==15154== Mismatched free() / delete / delete []
==15154==    at 0x4C291ED: free (vg_replace_malloc.c:530)
==15154==    by 0xBFAD156: UNZIPUTL::closeEntry() (filamzip.cpp:664)
==15154==    by 0xBFAC9BA: UNZIPUTL::close() (filamzip.cpp:470)
==15154==    by 0xBF37B7D: PlugCloseFile(_global*, _fblock*, bool) (plgdbutl.cpp:945)
==15154==    by 0xBF08030: MAPFAM::CloseTableFile(_global*, bool) (filamap.cpp:508)
==15154==    by 0xBF431DC: TDBDOS::CloseDB(_global*) (tabdos.cpp:2298)
==15154==    by 0xBEF775A: CntCloseTable(_global*, TDB*, bool, bool) (connect.cc:617)
==15154==    by 0xBEE3D2C: ha_connect::CloseTable(_global*) (ha_connect.cc:1951)
==15154==    by 0xBEEBF73: ha_connect::external_lock(THD*, int) (ha_connect.cc:4634)
==15154==    by 0x876541: handler::ha_external_lock(THD*, int) (handler.cc:5828)
==15154==    by 0x9599FD: unlock_external(THD*, TABLE**, unsigned int) (lock.cc:686)
==15154==    by 0x95915D: mysql_unlock_read_tables(THD*, st_mysql_lock*) (lock.cc:447)
==15154==  Address 0x1201dcc0 is 0 bytes inside a block of size 80 alloc'd
==15154==    at 0x4C28DB8: operator new[](unsigned long) (vg_replace_malloc.c:423)
==15154==    by 0xBFACFD6: UNZIPUTL::openEntry(_global*) (filamzip.cpp:634)
==15154==    by 0xBFACD37: UNZIPUTL::OpenTable(_global*, MODE, char*) (filamzip.cpp:581)
==15154==    by 0xBFAD45E: UNZFAM::OpenTableFile(_global*) (filamzip.cpp:734)
==15154==    by 0xBF42B0D: TDBDOS::OpenDB(_global*) (tabdos.cpp:2148)
==15154==    by 0xBEF6C88: CntOpenTable(_global*, TDB*, MODE, char*, char*, bool, ha_connect*) (connect.cc:359)
==15154==    by 0xBEE39AA: ha_connect::OpenTable(_global*, bool) (ha_connect.cc:1870)
==15154==    by 0xBEEA106: ha_connect::rnd_init(bool) (ha_connect.cc:3822)
==15154==    by 0x5AB419: handler::ha_rnd_init(bool) (handler.h:2782)
==15154==    by 0x86FEBA: handler::ha_rnd_init_with_error(bool) (handler.cc:2754)
==15154==    by 0x9B004B: init_read_record(READ_RECORD*, THD*, TABLE*, SQL_SELECT*, int, bool, bool) (records.cc:281)
==15154==    by 0x689A7C: join_init_read_record(st_join_table*) (sql_select.cc:19220)
==15154== Mismatched free() / delete / delete []
==15154==    at 0x4C291ED: free (vg_replace_malloc.c:530)
==15154==    by 0xBFAD156: UNZIPUTL::closeEntry() (filamzip.cpp:664)
==15154==    by 0xBFACB47: UNZIPUTL::nextEntry(_global*) (filamzip.cpp:528)
==15154==    by 0xBFAD599: UNZFAM::GetNext(_global*) (filamzip.cpp:750)
==15154==    by 0xBF07A6D: MAPFAM::ReadBuffer(_global*) (filamap.cpp:327)
==15154==    by 0xBF45F11: TDBDOS::ReadBuffer(_global*) (tabdos.h:177)
==15154==    by 0xBF42F5C: TDBDOS::ReadDB(_global*) (tabdos.cpp:2235)
==15154==    by 0xBEF7088: CntReadNext(_global*, TDB*) (connect.cc:464)
==15154==    by 0xBEEA2DB: ha_connect::rnd_next(unsigned char*) (ha_connect.cc:3885)
==15154==    by 0x86EB66: handler::ha_rnd_next(unsigned char*) (handler.cc:2578)
==15154==    by 0x9B0606: rr_sequential(READ_RECORD*) (records.cc:470)
==15154==    by 0x687ABD: sub_select(JOIN*, st_join_table*, bool) (sql_select.cc:18332)
==15154==  Address 0xe292950 is 0 bytes inside a block of size 80 alloc'd
==15154==    at 0x4C28DB8: operator new[](unsigned long) (vg_replace_malloc.c:423)
==15154==    by 0xBFACFD6: UNZIPUTL::openEntry(_global*) (filamzip.cpp:634)
==15154==    by 0xBFACD37: UNZIPUTL::OpenTable(_global*, MODE, char*) (filamzip.cpp:581)
==15154==    by 0xBFAD45E: UNZFAM::OpenTableFile(_global*) (filamzip.cpp:734)
==15154==    by 0xBF42B0D: TDBDOS::OpenDB(_global*) (tabdos.cpp:2148)
==15154==    by 0xBEF6C88: CntOpenTable(_global*, TDB*, MODE, char*, char*, bool, ha_connect*) (connect.cc:359)
==15154==    by 0xBEE39AA: ha_connect::OpenTable(_global*, bool) (ha_connect.cc:1870)
==15154==    by 0xBEEA106: ha_connect::rnd_init(bool) (ha_connect.cc:3822)
==15154==    by 0x5AB419: handler::ha_rnd_init(bool) (handler.h:2782)
==15154==    by 0x86FEBA: handler::ha_rnd_init_with_error(bool) (handler.cc:2754)
==15154==    by 0x9B004B: init_read_record(READ_RECORD*, THD*, TABLE*, SQL_SELECT*, int, bool, bool) (records.cc:281)
==15154==    by 0x689A7C: join_init_read_record(st_join_table*) (sql_select.cc:19220)

Also reproducible locally.



 Comments   
Comment by Olivier Bertrand [ 2017-04-29 ]

Wrongly used free instead of delete.

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