[MDEV-23904] Failed tests (Valgrind warings) - gcol.gcol_keys_innodb, main.alter_table, innodb.autoinc_persist, parts.partition_alter_instant etc Created: 2020-10-07  Updated: 2022-03-13  Resolved: 2022-03-13

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB, Tests
Affects Version/s: 10.5
Fix Version/s: N/A

Type: Bug Priority: Critical
Reporter: Timofey Turenko Assignee: Timofey Turenko
Resolution: Cannot Reproduce Votes: 0
Labels: affects-tests

Attachments: File mtr.log    

 Description   

List of tests:

gcol.gcol_keys_innodb
innodb.autoinc_persist
innodb.binlog_consistent
innodb.innodb-index
innodb.instant_alter
innodb.instant_alter_bugs
innodb_gis.alter_spatial_index
main.alter_table
main.column_compression
main.implicit_commit
main.update
parts.partition_alter_instant
parts.partition_engine_innodb

Test log example:

main.update 'innodb'                     w4 [ fail ]  Found warnings/errors in server log file!
        Test ended at 2020-10-02 15:20:16
line
==23216== Thread 9:
==23216== Invalid read of size 4
==23216==    at 0xDEA7C5: mach_read_from_1 (mach0data.ic:72)
==23216==    by 0xDEA7C5: mach_read_next_compressed (mach0data.ic:299)
==23216==    by 0xDEA7C5: trx_undo_rec_get_col_val(unsigned char const*, unsigned char const**, unsigned int*, unsigned int*) (trx0rec.cc:497)
==23216==    by 0xDED271: trx_undo_update_rec_get_update(unsigned char const*, dict_index_t*, unsigned long, unsigned long, unsigned long, unsigned char, mem_block_info_t*, upd_t**) (trx0rec.cc:1592)
==23216==    by 0xDA4589: row_purge_parse_undo_rec (row0purge.cc:1001)
==23216==    by 0xDA4589: row_purge (row0purge.cc:1105)
==23216==    by 0xDA4589: row_purge_step(que_thr_t*) (row0purge.cc:1157)
==23216==    by 0xD59B3E: que_thr_step (que0que.cc:947)
==23216==    by 0xD59B3E: que_run_threads_low (que0que.cc:1009)
==23216==    by 0xD59B3E: que_run_threads(que_thr_t*) (que0que.cc:1049)
==23216==    by 0xDCA6E6: srv_task_execute (srv0srv.cc:1981)
==23216==    by 0xDCA6E6: purge_worker_callback(void*) (srv0srv.cc:2144)
==23216==    by 0xF3AB69: tpool::task_group::execute(tpool::task*) (task_group.cc:55)
==23216==    by 0xF397DE: tpool::thread_pool_generic::worker_main(tpool::worker_data*) (tpool_generic.cc:518)
==23216==    by 0x68B8C7F: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==23216==    by 0x63E66B9: start_thread (pthread_create.c:333)
==23216==    by 0x71A84DC: clone (clone.S:109)
==23216==  Address 0xc648361 is 177 bytes inside a block of size 4,224 alloc'd
==23216==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==23216==    by 0xD27E48: allocate (ut0new.h:377)
==23216==    by 0xD27E48: mem_heap_create_block_func(mem_block_info_t*, unsigned long, unsigned long) (mem0mem.cc:277)
==23216==    by 0xDDEBA3: mem_heap_create_func (mem0mem.ic:375)
==23216==    by 0xDDEBA3: purge_sys_t::create() (trx0purge.cc:179)
==23216==    by 0xE0CC40: trx_lists_init_at_db_start() (trx0trx.cc:738)
==23216==    by 0xDCF853: srv_start(bool) (srv0start.cc:1558)
==23216==    by 0xCC7954: innodb_init(void*) (ha_innodb.cc:3899)
==23216==    by 0xA18913: ha_initialize_handlerton(st_plugin_int*) (handler.cc:645)
==23216==    by 0x82C64D: plugin_initialize(st_mem_root*, st_plugin_int*, int*, char**, bool) (sql_plugin.cc:1459)
==23216==    by 0x82D24E: plugin_init(int*, char**, int) (sql_plugin.cc:1751)
==23216==    by 0x75703C: init_server_components() (mysqld.cc:4913)
==23216==    by 0x75D207: mysqld_main(int, char**) (mysqld.cc:5496)
==23216==    by 0x70C183F: (below main) (libc-start.c:291)
^ Found warnings in /var/tmp/mtr/4/log/mysqld.1.err



 Comments   
Comment by Marko Mäkelä [ 2020-10-07 ]

"Invalid read" should be caught by AddressSanitizer as well. But I do not remember seeing any such failures, and kvm-asan passes (although it unfortunately uses a non-debug build since some time) on 10.2 and later branches. Furthermore, when I ran a debug ASAN big-test locally last week, I did not see any errors.

Comment by Timofey Turenko [ 2020-10-07 ]

[^logs.tar.gz] mtr.log

Comment by Marko Mäkelä [ 2020-10-07 ]

Where are the server error logs for the 2 "mysqltest failed but provided no output" messages that occur in mtr.log?

tturenko, can you repeat the "Invalid read" or "Invalid write" failures by running the tests individually? How did you compile it? Does an ASAN build of the same source code fail in the same way?

Comment by Elena Stepanova [ 2022-03-13 ]

Closing for now. Xenial is long gone, but if the failure starts happening again, either with Valgrind or with ASAN, we can always re-open or create a new one, this time with build options and everything.

Generated at Thu Feb 08 09:25:56 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.