• George Prekas's avatar
    Add check for the MADV_FREE/fork arm64 Linux kernel bug (#8224) · b02780c4
    George Prekas authored
    
    
    Older arm64 Linux kernels have a bug that could lead to data corruption during
    background save under the following scenario:
    
    1) jemalloc uses MADV_FREE on a page,
    2) jemalloc reuses and writes the page,
    3) Redis forks the background save process, and
    4) Linux performs page reclamation.
    
    Under these conditions, Linux will reclaim the page wrongfully and the
    background save process will read zeros when it tries to read the page.
    
    The bug has been fixed in Linux with commit:
    ff1712f953e27f0b0718762ec17d0adb15c9fd0b ("arm64: pgtable: Ensure dirty bit is
    preserved across pte_wrprotect()")
    
    This Commit adds an ignore-warnings config, when not found, redis will
    print a warning and exit on startup (default behavior).
    Co-authored-by: default avatarOran Agra <oran@redislabs.com>
    b02780c4
server.c 213 KB