mariadb/storage/innobase/buf
Thirunarayanan Balathandayuthapani 4be442ec35 MDEV-36962 innodb.log_file_overwrite fails with ASAN
Problem:
=======
- InnoDB unpoisons the freed page memory to make sure that
no other thread uses this freed page. In buf_pool_t::close(),
InnoDB unmap() the buffer pool memory during shutdown or it
encountered during startup. Later at some point, server
re-uses the same virtual address using mmap() and writes into
memory region. This leads to use_after_poison error.

This issue doesn't happen in latest clang and gcc version.
Older version of clang and gcc can still fail with this error.
ASAN should unpoison the memory while reusing the same virtual
address. This issue was already raised in
https://github.com/google/sanitizers/issues/1705

Fix:
===
In order to avoid this failure, let's unpoison the buffer
pool memory explictly during buf_pool_t::close() for
lesser than gcc-14 and clang-18 version.
2025-06-18 15:31:28 +10:00
..
buf0buddy.cc MDEV-36781: Assertion i < BUF_BUDDY_SIZES failed in buf_buddy_shrink() 2025-05-13 12:27:46 +03:00
buf0buf.cc MDEV-36962 innodb.log_file_overwrite fails with ASAN 2025-06-18 15:31:28 +10:00
buf0checksum.cc Cleanup: Replace ut_crc32c(x,y) with my_crc32c(0,x,y) 2022-01-21 16:13:04 +02:00
buf0dblwr.cc MDEV-21923: LSN allocation is a bottleneck 2025-04-10 13:02:17 +03:00
buf0dump.cc MDEV-29445: Reimplement SET GLOBAL innodb_buffer_pool_size 2025-03-26 17:05:44 +02:00
buf0flu.cc MDEV-36886 log_t::get_lsn_approx() isn't lower bound 2025-05-28 14:44:43 +03:00
buf0lru.cc MDEV-36781: Assertion i < BUF_BUDDY_SIZES failed in buf_buddy_shrink() 2025-05-13 12:27:46 +03:00
buf0rea.cc MDEV-29445: Reimplement SET GLOBAL innodb_buffer_pool_size 2025-03-26 17:05:44 +02:00