• Oran Agra's avatar
    Fixes around clients that must be obeyed. Replica report disk errors in PING. (#10603) · ee220599
    Oran Agra authored
    This PR unifies all the places that test if the current client is the
    master client or AOF client, and uses a method to test that on all of
    these.
    
    Other than some refactoring, these are the actual implications:
    - Replicas **don't** ignore disk error when processing commands not
      coming from their master.
      **This is important for PING to be used for health check of replicas**
    - SETRANGE, APPEND, SETBIT, BITFIELD don't do proto_max_bulk_len check for AOF
    - RM_Call in SCRIPT_MODE ignores disk error when coming from master /
      AOF
    - RM_Call in cluster mode ignores slot check when processing AOF
    - Scripts ignore disk error when processing AOF
    - Scripts **don't** ignore disk error on a replica, if the command comes
      from clients other than the master
    - SCRIPT KILL won't kill script coming from AOF
    - Scripts **don't** skip OOM check on replica if the command comes from
      clients other than the master
    
    Note that Script, AOF, and module clients don't reach processCommand,
    which is why some of the changes don't actually have any implications.
    
    Note, reverting the change done to processCommand in 2f4240b9
    should be dead code due to the above mentioned fact.
    ee220599
t_stream.c 156 KB