• srzhao's avatar
    Check OOM at script start to get stable lua OOM state. · 38f6207f
    srzhao authored
    Checking OOM by `getMaxMemoryState` inside script might get different result
    with `freeMemoryIfNeededAndSafe` at script start, because lua stack and
    arguments also consume memory.
    
    This leads to memory `borderline` when memory grows near server.maxmemory:
    
    - `freeMemoryIfNeededAndSafe` at script start detects no OOM, no memory freed
    - `getMaxMemoryState` inside script detects OOM, script aborted
    
    We solve this 'borderline' issue by saving OOM state at script start to get
    stable lua OOM state.
    
    related to issue #6565 and #5250.
    38f6207f
server.c 182 KB