• Daniel Black's avatar
    MDEV-10814: Innodb large allocations - madvise - Don't dump · b600f307
    Daniel Black authored
    Note: Linux only
    
    Core dumps of large buffer pool pages take time and space
    and pose potential data expose in scenarios where data-at-rest
    encryption is deployed.
    
    Here we use madvise(MADV_DONT_DUMP) on large memory allocations
    used by the innodb buffer pool, log_sys and recv_sys. The effect
    of this system call is that these memory areas will not appear in
    a core dump. Data from these buffers is rarely useful in fault
    diagnosis.
    
    log_sys and recv_sys structures now use large memory allocations
    for their large buffer.
    
    Debug builds don't include the madvise syscall and as such will
    include full core dumps.
    
    A function, buf_madvise_do_dump, is added but never called. It
    is there to be called from a debugger to re-enable the core
    dumping of all of these pages if for some reason the entire
    contents of these buffers are needed.
    
    Idea thanks to Hartmut Holzgraefe
    b600f307
log0log.cc 61.3 KB