mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-30936 clang 15.0.7 -fsanitize=memory fails massively
handle_slave_io(), handle_slave_sql(), os_thread_exit(): Remove a redundant pthread_exit(nullptr) call, because it would cause SIGSEGV. mysql_print_status(): Add MEM_MAKE_DEFINED() to work around some missing instrumentation around mallinfo2(). que_graph_free_stat_list(): Invoke que_node_get_next(node) before que_graph_free_recursive(node). That is the logical and MSAN_OPTIONS=poison_in_dtor=1 compatible way of freeing memory. ins_node_t::~ins_node_t(): Invoke mem_heap_free(entry_sys_heap). que_graph_free_recursive(): Rely on ins_node_t::~ins_node_t(). fts_t::~fts_t(): Invoke mem_heap_free(fts_heap). fts_free(): Replace with direct calls to fts_t::~fts_t(). The failures in free_root() due to MSAN_OPTIONS=poison_in_dtor=1 will be covered in MDEV-30942.
This commit is contained in:
@ -623,6 +623,10 @@ Next alarm time: %lu\n",
|
||||
#elif defined(HAVE_MALLINFO)
|
||||
struct mallinfo info= mallinfo();
|
||||
#endif
|
||||
#if __has_feature(memory_sanitizer)
|
||||
/* Work around missing MSAN instrumentation */
|
||||
MEM_MAKE_DEFINED(&info, sizeof info);
|
||||
#endif
|
||||
#if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2)
|
||||
char llbuff[10][22];
|
||||
printf("\nMemory status:\n\
|
||||
|
Reference in New Issue
Block a user