Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/redis/redis
Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
https://github.com/redis/redis
This change to the Makefile makes it possible to opt out of
`-fno-omit-frame-pointer` added in ...
Currently (following #11695, and #12822), keys kvstore and expires
kvstore both flag with ON_DE...
In some cases, users will abuse lua eval. Each EVAL call generates
a new lua script, which is a...
Allow using `+` as a special ID for last item in stream on XREAD
command.
This would allow t...
a8e745117f3648cc813d18f5a8cf1218ec83cb5d authored 9 months ago by Ronen Kalish <[email protected]>Sometimes it's useful to compute a key's cluster slot in a module.
This API function is just ...
9efc6ad6a63198e6f6af3c5e9fabc3a7ffc6fe4b authored 9 months ago by Viktor Söderqvist <[email protected]>
Redis enabled `accept4` on Linux after #9177, reducing extra system
calls for sockets.
`acce...
9c065c417d5cd7a1b35310d8c7760eeb119be1c0 authored 9 months ago by Andy Pan <[email protected]>
The check in fileIsManifest misjudged the manifest file. For example,
if resp aof contains "fil...
Distribute operations via `redis-benchmark` on different slots owned by
node.
`current_slot_...
3c8d15f8c3e3aca887555e3509e9c6fe4205ae1e authored 9 months ago by Harkrishn Patro <[email protected]>
Since lua_Number is not explicitly an integer or a double, we need to
make an effort
to conver...
Update the crc16 hash lookup table to use fixed size character arrays instead of pointers
to s...
`CONFIG SET oom-score-adj handles configuration failures` test failed in
some CI jobs today.
F...
This commit updates the processing of PONG gossip messages in the
cluster. When a node (B) beco...
After #13013
### This PR make effort to defrag the pubsub kvstore in the following
ways:
...
ad127303338f21a29ba7f11b51f076edc29655d3 authored 10 months ago by debing.sun <[email protected]>
Supplement to #6189, we also need to call finalizerProc.
This is a minor cleanup, no one curren...
The new regular expression break the validator:
```
In file included from commands.c:10:
comm...
- In removeUnsupportedArgs, trying to access the next item after the
last one and causing an ou...
Sometimes we need to make fast judgement about why Redis is suddenly
taking more memory. One of...
In XREADGROUP ACK, because streamPropagateXCLAIM does not propagate
entries-read, entries-read ...
just like `kvstoreDictDelete`, we need check `freeDictIfNeeded` when
`kvstoreEmpty`.
Even if we have SCRIPT FLUSH ASYNC now, when there are a lot of
lua scripts, SCRIPT FLUSH ASYNC...
The --count option for redis-cli has been released in redis 7.2.
https://github.com/redis/redis...
If we call `DEL` on expired keys, keys may be deleted in
`expireIfNeeded` and we don't need to ...
In #8554, we added a MALLOC_MIN_SIZE to use a minimum allocation
size when using malloc(0). How...
It seems to be a leak caused by code refactoring in #11290.
it's a small leak, that only happen...
Implement #12699
This PR exposing Lua os.clock() api for getting the elapsed time of Lua
cod...
Following #12568
In issue #9357, when inserting an element larger than 1GB, we currently
sto...
Now it matches the information in xinfo-stream.json
820a4e45f1c46d8acbd07043b8992d5f69a872ec authored 10 months ago by guybe7 <[email protected]>
This field was added in #12996 but forgot to add it in json file.
This also causes reply-schema...
Implement #12963
## Changes
1. large bins don't have external fragmentation or are at least
...
Recently I saw in CI that reply-schemas-validator fails here:
```
Failed validating 'minimum' ...
There is a timing issue in the test, close may arrive late, or in
freeClientAsync we will free ...
We can see that the past time here happens to be busy_time_limit,
causing the test to fail:
``...
Currently redis uses O3 level optimization would remove the frame pointer
in the target bin.
...
fc3a68d8fb6c8f87485dd670f7af81feadd66635 authored 10 months ago by judeng <[email protected]>
Add readme about the command json folder, what it does, and who should
(not) use it.
see discu...
In the `databasesCron()`, the time consumed by
`kvstoreIncrementallyRehash()` is used to calcul...
Currently aof_last_fsync is using a low resolution unixtime is really
bad,
it checks if the ab...
From CodeQL: The result of scanf is only checked against 0, but
it can also return EOF.
Repo...
dd92dd8fb5c2cc5c9815b720128b3015382b8da4 authored 10 months ago by Binbin <[email protected]>
Redis has some special commands that mark the client's state, such as
`subscribe` and `blpop`, ...
Usually, the probability that a dict exists is much greater than the
probability that it does n...
In low memory situations, sending a big number of arguments (sets)
may cause OOM panic. Use ztr...
These tests have all failed in daily CI:
```
*** [err]: Blocking XREADGROUP for stream key tha...
The receiver does not update any of its cluster state based on gossip
about itself. This commit...
Following the changes introduced by 8cd62f82c, the dbExpandExpires used
the db_size instead of ...
Following the changes introduced by 8cd62f82c, the kvstoreDictExpand for
the expires kvstore us...
This test fails occasionally:
```
*** [err]: CLIENT KILL maxAGE will kill old clients in tests...
Fail CI:
https://github.com/redis/redis/actions/runs/7837608438/job/21387609715
## Why defra...
676f27acb0e2a61e96778bccfa1116e3f7eedaaf authored 10 months ago by debing.sun <[email protected]>
The test fails here and there:
```
*** [err]: expire scan should skip dictionaries with lot's ...
We forgot to call quicklistSetOptions after createQuicklistObject,
in the sort store scenario, ...
Fix two crash introducted by #12955
When a quicklist node can't be inserted and split, we eve...
1e8dc1da0de0add40d56fcbab9b64a3c5e61b6dd authored 11 months ago by debing.sun <[email protected]>
After fix for #13033, address sanitizer reports this heap-use-after-free
error. When the pubsub...
The reason is the same as #13016. The reason is that in #12819,
in cron, in addition to trying ...
Fix #12864
The main reason for this crash is that when replacing a element of a
quicklist pa...
This commit addresses a problem in connSocketBlockingConnect where
different types of connectio...
After #12822, when pubsubshard_channels became empty, kvstoreDictDelete
will delete the dict (w...
Currently, once active defrag starts, we can not adjust
active_defrag_running
downwards. This ...
Since now a DB in cluster mode is divided into 16384 dicts, here
we directly check kvstoreDictS...
When the dict is NULL, we also need to push resize_cursor, otherwise it
will keep doing useless...
# Description
Gather most of the scattered `redisDb`-related code from the per-slot
dict PR (#...
When db->expires_cursor==0, it means the DB is done the scanning,
we should exit the loop to av...
The JSON file lacks the following structural API changes:
- GEORADIUSBYMEMBER: add the ANY op...
02a87885e64c4f911aaefc04b2099cfb780ef720 authored 11 months ago by Daz <[email protected]>
Currently, We compute `db->avg_ttl` after each short `dbScan` sweep (a
few buckets without chec...
In Redis, rdb is produced in three scenarios mainly.
- backup, such as `bgsave` and `save` co...
62153b3b2fdd96086c0eaa1735793b2ef8bb311c authored 11 months ago by Yanqi Lv <[email protected]>
Ci report this failure:
```
*** [err]: Don't rehash if used memory exceeds maxmemory after reh...
When we use a timer to unblock a client in module, if the timer
period and the block timeout ar...
The block timeout is passed in the test case, but we do not pass
in the timeout_callback, and i...
Add a way to HSCAN a hash key, and get only the filed names.
Command syntax is now:
```
HSCAN...
Adds an ability to kill clients older than a specified age.
Also, fixed the age calculation i...
24f6d08b3f2d9de06fabdab980a06d62229a2b2f authored 11 months ago by Slava Koyfman <[email protected]>
tests consistently fail on timeout (sleep that's too short).
it now takes more time because in ...
This was introduced in #13004, missing this assignment.
It causes timeout to be a random value ...
This allows specifying the timeout value for opening the TCP
connection to a server. The timeou...
In #11012, we will reprocess command when client is unblocked on keys,
in some blocking command...
The function `tryResizeHashTables` only attempts to shrink the dicts
that has keys (change from...
Modules may want to handle allocation failures gracefully. Adding
RM_TryCalloc() and RM_TryReal...
We have not limited the value of maxmemory-samples in the past, it can
be set very large. If it...
#### Problem Statement:
For any read/update operation during rehashing, we're doing ~10+ random...
The question is introduced in #12799 , the script cannot find the
correct src and deps director...
Code incorrectly set the limit value to 1024MB.
Introduced in #12961.
Fix #9926 , and introduce an alternative method to prevent abuse of
transactions:
1. revert ...
85a834bfa2a31cd7c5754fe1611cf059657c0fb4 authored 11 months ago by zhaozhao.zz <[email protected]>
In the following case sender may be unknown, so we need to set up a
NULL check for sender:
```...
We have test cases for incr related commands with no key exist and
spaces in key and wrong type...
In #11568 we removed the NOSCRIPT flag from commands, e.g. removing
NOSCRIPT flag from WAIT. Ai...
This PR did some cleanups around function:
- drop the comment about Libraries Ctx, since we do ...
seems that we forgot to update the array in redis-check rdb.
f9a0eb60f7bde2c2ef561afa36c1004bf7f41b93 authored 11 months ago by Oran Agra <[email protected]>
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
<details>
<summary>Releas...
Currently slowlog gets disabled if slowlog-log-slower-than is set to less than zero. I think we ...
2bce71b5ff98766a3dd64c36af8f3c1bdb54670b authored 11 months ago by Harkrishn Patro <[email protected]>There have been occasional instances of memory corruption (though code bugs or bit flips) leadin...
e12f2decc1cf7742878d516d89d38af178119b17 authored 11 months ago by Brennan <[email protected]>
background: some modules need to know the `dbid` information, such as
the function used during ...
In #12838, we misuse the safe iterator of the client dict, so we can't
catch the synchronous re...
Before this change (most recently modified in
https://github.com/redis/redis/pull/12850#discuss...
Fix #12785 and other race condition issues.
See the following isolated comments.
The followi...
d0640029dcf8d9157b9ac78ca0b99fb48f97e380 authored 11 months ago by debing.sun <[email protected]>
When doing dict resizing, dictTypeResizeAllowed is used to judge whether
the new allocated memo...
Introduced in #12952, reported by valgrind.
1c7eb0ad373a21a0610ba484cc0d5054e1f1aab0 authored 11 months ago by Binbin <[email protected]>
We doing this in diskless on-empty-db mode, when diskless
loading fails, we will call emptyData...
Before #12850, we will only try to shrink the dict in serverCron,
which we can control by using...
In the past we used integers to compare ratios, let us assume that
we have the following data i...
The test have a race:
```
*** [err]: Redis can rewind and trigger smaller slot resizing in tes...
The new shrink was added in #12850.
Also updated outdated comments, see #11692.
When we insert entries into dict, it may autonomously expand if needed.
However, when we delete...
Regarding how to obtain the hash slot of a key, there is an optimization
in `getKeySlot()`, it ...
The open function returns a fd on success or -1 on failure,
here we should check fd != -1, othe...