1. 27 Oct, 2020 3 commits
    • Oran Agra's avatar
      RESTORE ABSTTL won't store expired keys into the db (#7472) · e9c9e4c2
      Oran Agra authored
      Similarly to EXPIREAT with TTL in the past, which implicitly deletes the
      key and return success, RESTORE should not store key that are already
      expired into the db.
      When used together with REPLACE it should emit a DEL to keyspace
      notification and replication stream.
      
      (cherry picked from commit 5977a948)
      (cherry picked from commit 95ba01b5)
      e9c9e4c2
    • Liu Zhen's avatar
      fix clusters mixing accidentally by gossip · ee4696b1
      Liu Zhen authored
      `clusterStartHandshake` will start hand handshake
      and eventually send CLUSTER MEET message, which is strictly prohibited
      in the REDIS CLUSTER SPEC.
      Only system administrator can initiate CLUSTER MEET message.
      Futher, according to the SPEC, rather than IP/PORT pairs, only nodeid
      can be trusted.
      
      (cherry picked from commit 84a7a905)
      ee4696b1
    • Guy Benoish's avatar
      XPENDING should not update consumer's seen-time · c9e370c6
      Guy Benoish authored
      Same goes for XGROUP DELCONSUMER (But in this case, it doesn't
      have any visible effect)
      
      (cherry picked from commit 3a441c7d)
      c9e370c6
  2. 24 Apr, 2020 1 commit
  3. 23 Apr, 2020 2 commits
    • yanhui13's avatar
      optimize the output of cluster slots · 7a62eb96
      yanhui13 authored
      7a62eb96
    • srzhao's avatar
      Check OOM at script start to get stable lua OOM state. · 0efb93d0
      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.
      0efb93d0
  4. 17 Apr, 2020 2 commits
  5. 08 Apr, 2020 1 commit
  6. 12 Mar, 2020 2 commits
  7. 11 Mar, 2020 1 commit
  8. 05 Mar, 2020 18 commits
  9. 12 Feb, 2020 1 commit
  10. 10 Feb, 2020 1 commit
  11. 08 Jan, 2020 1 commit
  12. 19 Nov, 2019 7 commits
    • antirez's avatar
      Redis 5.0.7. · 4891612b
      antirez authored
      4891612b
    • antirez's avatar
      4d2a31ae
    • Oran Agra's avatar
      RED-31295 - redis: avoid race between dlopen and thread creation · 9f63fc98
      Oran Agra authored
      It seeems that since I added the creation of the jemalloc thread redis
      sometimes fails to start with the following error:
      
      Inconsistency detected by ld.so: dl-tls.c: 493: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
      
      This seems to be due to a race bug in ld.so, in which TLS creation on the
      thread, collide with dlopen.
      
      Move the creation of BIO and jemalloc threads to after modules are loaded.
      
      plus small bugfix when trying to disable the jemalloc thread at runtime
      9f63fc98
    • antirez's avatar
      Cluster: fix memory leak of cached master. · 1a9e70c1
      antirez authored
      This is what happened:
      
      1. Instance starts, is a slave in the cluster configuration, but
      actually server.masterhost is not set, so technically the instance
      is acting like a master.
      
      2. loadDataFromDisk() calls replicationCacheMasterUsingMyself() even if
      the instance is a master, in the case it is logically a slave and the
      cluster is enabled. So now we have a cached master even if the instance
      is practically configured as a master (from the POV of
      server.masterhost value and so forth).
      
      3. clusterCron() sees that the instance requires to replicate from its
      master, because logically it is a slave, so it calls
      replicationSetMaster() that will in turn call
      replicationCacheMasterUsingMyself(): before this commit, this call would
      overwrite the old cached master, creating a memory leak.
      1a9e70c1
    • Guy Benoish's avatar
      Fix usage of server.stream_node_max_* · 69b1b5be
      Guy Benoish authored
      69b1b5be
    • 喜欢兰花山丘's avatar
      Update mkreleasehdr.sh · 1fd97ee7
      喜欢兰花山丘 authored
      fix date +%s errata
      1fd97ee7
    • antirez's avatar
      Remove additional space from comment. · 1a9855d7
      antirez authored
      1a9855d7