1. 03 Jan, 2021 2 commits
    • Oran Agra's avatar
      Fix rare assertion as a result of: active defrag while loading (#8281) · 7896debe
      Oran Agra authored
      In #7726 (part of 6.2), we added a mechanism for whileBlockedCron, this
      mechanism has an assertion to make sure the timestamp in
      whileBlockedCron was always set correctly before the blocking operation
      starts.
      
      I now found (thanks to our CI) two bugs in that area:
      1) CONFIG RESETSTAT (if it was allowed during loading) would have
         cleared this var
      2) the call stopLoading (which calls whileBlockedCron) was made too
         early, while the rio is still in use, in which case the update_cksum
         (rdbLoadProgressCallback) may still be called and whileBlockedCron
         can assert.
      7896debe
    • Oran Agra's avatar
      fix crash in redis-cli after making cluster backup (#8267) · 41b2ed2b
      Oran Agra authored
      getRDB is "designed" to work in two modes: one for redis-cli --rdb and
      one for redis-cli --cluster backup.
      in the later case it uses the hiredis connection from the cluster nodes
      and it used to free it without nullifying the context, so a later
      attempt to free the context would crash.
      
      I suppose the reason it seems to want to free the hiredis context ASAP
      is that it wants to disconnect the replica link, so that replication
      buffers will not be accumulated.
      41b2ed2b
  2. 02 Jan, 2021 1 commit
  3. 01 Jan, 2021 1 commit
  4. 31 Dec, 2020 1 commit
    • filipe oliveira's avatar
      Add errorstats info section, Add failed_calls and rejected_calls to commandstats (#8217) · 90b9f08e
      filipe oliveira authored
      This Commit pushes forward the observability on overall error statistics and command statistics within redis-server:
      
      It extends INFO COMMANDSTATS to have
      - failed_calls in - so we can keep track of errors that happen from the command itself, broken by command.
      - rejected_calls - so we can keep track of errors that were triggered outside the commmand processing per se
      
      Adds a new section to INFO, named ERRORSTATS that enables keeping track of the different errors that
      occur within redis ( within processCommand and call ) based on the reply Error Prefix ( The first word
      after the "-", up to the first space ).
      
      This commit also fixes RM_ReplyWithError so that it can be correctly identified as an error reply.
      90b9f08e
  5. 30 Dec, 2020 1 commit
  6. 27 Dec, 2020 3 commits
  7. 25 Dec, 2020 3 commits
    • Itamar Haber's avatar
      Adds count to L/RPOP (#8179) · f44186e5
      Itamar Haber authored
      Adds: `L/RPOP <key> [count]`
      
      Implements no. 2 of the following strategies:
      
      1. Loop on listTypePop - this would result in multiple calls for memory freeing and allocating (see https://github.com/redis/redis/pull/8179/commits/769167a079b0e110d28e4a8099dce1ecd45682b5)
      2. Iterate the range to build the reply, then call quickListDelRange - this requires two iterations and **is the current choice**
      3. Refactor quicklist to have a pop variant of quickListDelRange - probably optimal but more complex
      
      Also:
      * There's a historical check for NULL after calling listTypePop that was converted to an assert.
      * This refactors common logic shared between LRANGE and the new form of LPOP/RPOP into addListRangeReply (adds test for b/w compat)
      * Consequently, it may have made sense to have `LRANGE l -1 -2` and `LRANGE l 9 0` be legit and return a reverse reply. Due to historical reasons that would be, however, a breaking change.
      * Added minimal comments to existing commands to adhere to the style, make core dev life easier and get commit karma, naturally.
      f44186e5
    • Itamar Haber's avatar
      e18068d9
    • xhe's avatar
      fix the format · e6c1aeaf
      xhe authored
      
      Signed-off-by: default avatarxhe <xw897002528@gmail.com>
      e6c1aeaf
  8. 24 Dec, 2020 22 commits
  9. 23 Dec, 2020 6 commits