summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Speedup: unblock clients on keys in O(1).o1-bpop-5.0antirez2020-04-084-21/+50
| | | | See #7071.
* Redis 5.0.8.5.0.8antirez2020-03-122-1/+99
|
* Merge pull request #6975 from dustinmm80/add-arm-latomic-linkingSalvatore Sanfilippo2020-03-121-0/+9
|\ | | | | Fix Pi building needing -latomic, 5.0 branch backport
| * Fix Pi building needing -latomic, backportDustin Collins2020-03-111-0/+9
|/
* fix impl of aof-child whitelist SIGUSR1 feature.srzhao2020-03-051-4/+5
|
* fix ThreadSafeContext lock/unlock function namesAriel2020-03-051-2/+2
|
* XREADGROUP should propagate XCALIM/SETID in MULTI/EXECGuy Benoish2020-03-051-2/+2
| | | | | Use built-in alsoPropagate mechanism that wraps commands in MULTI/EXEC before sending them to replica/AOF
* Fix client flags to be int64 in module.cOran Agra2020-03-051-3/+3
| | | | | | currently there's no bug since the flags these functions handle are always lower than 32bit, but still better fix the type to prevent future bugs.
* Fix small bugs related to replica and monitor ambiguityGuy Benoish2020-03-052-6/+8
| | | | | | 1. server.repl_no_slaves_since can be set when a MONITOR client disconnects 2. c->repl_ack_time can be set by a newline from a MONITOR client 3. Improved comments
* Fix lua related memory leak.WuYunlong2020-03-051-0/+1
|
* Simplify #6379 changes.antirez2020-03-052-9/+4
|
* Free allocated sds in pfdebugCommand() to avoid memory leak.WuYunlong2020-03-051-0/+1
|
* Jump to right label on AOF parsing error.antirez2020-03-051-4/+6
| | | | Related to #6054.
* Free fakeclient argv on AOF error.antirez2020-03-051-3/+11
| | | | | | We exit later, so no bug fixed, but it is more correct. See #6054, thanks to @ShooterIT for finding the issue.
* Fix potential memory leak of rioWriteBulkStreamID().WuYunlong2020-03-051-1/+4
|
* Fix potential memory leak of clusterLoadConfig().WuYunlong2020-03-051-5/+20
|
* Fix bug on KEYS command where pattern starts with * followed by \x00 (null ↵Leo Murillo2020-03-051-1/+1
| | | | char).
* Blocking XREAD[GROUP] should always reply with valid data (or timeout)Guy Benoish2020-03-053-10/+44
| | | | | | | | | | | | | | | | | | | | | | | This commit solves the following bug: 127.0.0.1:6379> XGROUP CREATE x grp $ MKSTREAM OK 127.0.0.1:6379> XADD x 666 f v "666-0" 127.0.0.1:6379> XREADGROUP GROUP grp Alice BLOCK 0 STREAMS x > 1) 1) "x" 2) 1) 1) "666-0" 2) 1) "f" 2) "v" 127.0.0.1:6379> XADD x 667 f v "667-0" 127.0.0.1:6379> XDEL x 667 (integer) 1 127.0.0.1:6379> XREADGROUP GROUP grp Alice BLOCK 0 STREAMS x > 1) 1) "x" 2) (empty array) The root cause is that we use s->last_id in streamCompareID while we should use the last *valid* ID
* XCLAIM: Create the consumer only on successful claims.antirez2020-03-051-2/+4
| | | | Fixes #6744.
* Stream: Handle streamID-related edge casesGuy Benoish2020-03-054-4/+54
| | | | | | | | | | | This commit solves several edge cases that are related to exhausting the streamID limits: We should correctly calculate the succeeding streamID instead of blindly incrementing 'seq' This affects both XREAD and XADD. Other (unrelated) changes: Reply with a better error message when trying to add an entry to a stream that has exhausted last_id
* Fix ip and missing mode in RM_GetClusterNodeInfo().antirez2020-03-051-2/+5
|
* Inline protocol: handle empty strings well.antirez2020-03-051-6/+2
| | | | | | | | | | | | | This bug is from the first version of Redis. Probably the problem here is that before we used an SDS split function that created empty strings for additional spaces, like in "SET foo bar". AFAIK later we replaced it with the curretn sdssplitarg() API that has no such a problem. As a result, we introduced a bug, where it is no longer possible to do something like: SET foo "" Using the inline protocol. Now it is fixed.
* Mark extern definition of SDS_NOINIT in sds.hKhem Raj2020-02-121-1/+1
| | | | | | | This helps in avoiding multiple definition of this variable, its also defined globally in sds.c Signed-off-by: Khem Raj <raj.khem@gmail.com>
* [FIX] revisit CVE-2015-8080 vulnerabilitySeunghoon Woo2020-02-101-4/+6
|
* avoid sentinel changes promoted_slave to be its own replica.yz15092020-01-081-1/+1
|
* Redis 5.0.7.5.0.7antirez2019-11-192-1/+129
|
* Test: fix implementation-dependent test after code change.antirez2019-11-191-2/+2
|
* RED-31295 - redis: avoid race between dlopen and thread creationOran Agra2019-11-192-0/+17
| | | | | | | | | | | | | | 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
* Cluster: fix memory leak of cached master.antirez2019-11-192-4/+9
| | | | | | | | | | | | | | | | | | | | 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.
* Fix usage of server.stream_node_max_*Guy Benoish2019-11-191-3/+3
|
* Update mkreleasehdr.sh喜欢兰花山丘2019-11-191-1/+1
| | | fix date +%s errata
* Remove additional space from comment.antirez2019-11-191-1/+1
|
* Fix stream test after addition of 0-0 ID test.antirez2019-11-191-3/+3
|
* aof: fix assignment for aof_fsync_offsetYuan Zhou2019-11-191-1/+1
| | | | Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
* Merge branch '5.0' of github.com:/antirez/redis into 5.0antirez2019-11-193-0/+11
|\
| * Merge pull request #6600 from oranagra/5_module_flagsSalvatore Sanfilippo2019-11-193-0/+11
| |\ | | | | | | module documentation mismatches: loading and fork child for 5.0 branch
| | * module documentation mismatches: loading and fork child for 5.0 branchOran Agra2019-11-193-0/+11
| |/ | | | | | | | | | | loading flag was missing from docs, and fork chidl indicator was removed from the code but left int he doc and header, re-adding it to the doc together with the missing function that was needed for it to work.
* | Rename var to fixed_time_expire now that is more general.antirez2019-11-194-8/+7
| |
* | Fix patch provided in #6554.antirez2019-11-191-1/+8
| |
* | expires & blocking: handle ready keys as call()zhaozhao.zz2019-11-191-0/+5
| |
* | XADD with ID 0-0 stores an empty keyGuy Benoish2019-11-192-0/+14
| | | | | | | | | | | | | | | | Calling XADD with 0-0 or 0 would result in creating an empty key and storing it in the database. Even worse, because XADD will reply with error the action will not be replicated, creating a master-replica inconsistency
* | fix unreported overflow in autogerenared stream IDsLoris Cro2019-11-192-10/+19
|/
* Modules: RM_GetContextFlags(): remove non Redis 5 features.antirez2019-11-141-3/+0
|
* Modules: fix moduleCreateArgvFromUserFormat() casting bug.antirez2019-11-141-1/+1
| | | | In 32 bit systems casting to "long" will cut the result to 32 bit.
* module: fix propagation API bug.antirez2019-11-141-2/+2
|
* Modules: add new flags to context, replica state + more.antirez2019-11-142-1/+48
|
* Modules: RM_Call(): give pointer to documentation.antirez2019-11-141-1/+4
|
* Modules: RM_Call/Replicate() ability to exclude AOF/replicas.antirez2019-11-141-9/+28
|
* Modules: RM_Replicate() in thread safe contexts.antirez2019-11-141-4/+26
|
* Modules: implement RM_Replicate() from async callbacks.antirez2019-11-142-2/+33
|