antirez
30adc62232
RDB: load files faster avoiding useless free+realloc.
...
Reloading of the RDB generated by
DEBUG POPULATE 5000000
SAVE
is now 25% faster.
This commit also prepares the ability to have more flexibility when
loading stuff from the RDB, since we no longer use dbAdd() but can
control exactly how things are added in the database.
2020-04-09 10:24:46 +02:00
antirez
96a54866ab
Speedup: unblock clients on keys in O(1).
...
See #7071 .
2020-04-08 12:55:57 +02:00
hayleeliu
51b9de037d
fix spelling mistake in bitops.c
2020-04-08 18:20:32 +08:00
antirez
96688aa646
Fix ACL HELP table missing comma.
2020-04-08 10:56:47 +02:00
antirez
a6350f717d
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-04-07 14:10:43 +02:00
antirez
f69876280c
Speedup INFO by counting client memory incrementally.
...
Related to #5145 .
Design note: clients may change type when they turn into replicas or are
moved into the Pub/Sub category and so forth. Moreover the recomputation
of the bytes used is problematic for obvious reasons: it changes
continuously, so as a conservative way to avoid accumulating errors,
each client remembers the contribution it gave to the sum, and removes
it when it is freed or before updating it with the new memory usage.
2020-04-07 12:07:54 +02:00
Salvatore Sanfilippo
e93dcba46e
Merge pull request #7064 from mymilkbottles/unstable
...
Optimize lua log level judgment
2020-04-06 17:34:14 +02:00
Salvatore Sanfilippo
9a9109431b
Merge pull request #7065 from qetu3790/unstable
...
fix comments about RESIZE DB opcode in rdb.c
2020-04-06 17:32:44 +02:00
Salvatore Sanfilippo
094b47391d
Merge pull request #6243 from soloestoy/expand-lazy-free-server-del
...
lazyfree: add a new configuration lazyfree-lazy-user-del
2020-04-06 17:27:39 +02:00
qetu3790
2c42f6a8b8
fix comments about RESIZE DB opcode in rdb.c
...
fix comments about RESIZE DB opcode in rdb.c
2020-04-06 20:52:32 +08:00
antirez
121c51f4f3
Merge branch 'lcs' into unstable
2020-04-06 13:51:55 +02:00
antirez
ca8d6f1072
LCS: allow KEYS / STRINGS to be anywhere.
...
Initially they needed to be at the end so that we could extend to N
strings in the future, but after further consideration I no longer
believe it's worth it.
2020-04-06 13:48:31 +02:00
antirez
7261a5550f
LCS: get rid of STOREIDX option. Fix get keys helper.
2020-04-06 13:32:15 +02:00
mymilkbottles
25063f75d7
Judge the log level in advance
2020-04-06 19:27:06 +08:00
Salvatore Sanfilippo
af5c11874c
Merge pull request #6797 from patpatbear/issue_#6565_memory_borderline
...
Check OOM at script start to get stable lua OOM state.
2020-04-06 11:59:01 +02:00
Guy Benoish
a76a961cdd
Use __attribute__ only if __GNUC__ is defined
2020-04-03 14:49:40 +03:00
Salvatore Sanfilippo
f80b946bea
Merge pull request #6855 from guybe7/var_funcs_format_check
...
Modules: Perform printf-like format checks in variadic API
2020-04-03 13:46:27 +02:00
Guy Benoish
a8857320a5
Modules: Perform printf-like format checks in variadic API
2020-04-03 14:39:55 +03:00
Salvatore Sanfilippo
cbf212f981
Merge pull request #7030 from valentinogeron/xread-in-lua
...
XREAD and XREADGROUP should not be allowed from scripts when BLOCK op…
2020-04-03 11:14:13 +02:00
Salvatore Sanfilippo
4158664d2b
Merge pull request #6933 from guybe7/multi_exec_allow_stale
...
Stale replica should allow MULTI/EXEC
2020-04-03 11:12:58 +02:00
Salvatore Sanfilippo
4e8e7fb067
Merge pull request #7055 from zxdvd/patch-1
...
fix integer overflow
2020-04-03 11:10:26 +02:00
antirez
ef610802c7
LCS: fix stale comment.
2020-04-02 21:17:31 +02:00
Salvatore Sanfilippo
eb9ca33414
Merge pull request #6694 from oranagra/signal_modified_key
...
modules don't signalModifiedKey in setKey() since that's done (optionally) in RM_CloseKey
2020-04-02 19:00:20 +02:00
Xudong Zhang
78df016584
fix integer overflow
2020-04-02 23:43:47 +08:00
Guy Benoish
85a0d29d04
Stale replica should allow MULTI/EXEC
...
Example: Client uses a pipe to send the following to a
stale replica:
MULTI
.. do something ...
DISCARD
The replica will reply the MUTLI with -MASTERDOWN and
execute the rest of the commands... A client using a
pipe might not be aware that MULTI failed until it's
too late.
I can't think of a reason why MULTI/EXEC/DISCARD should
not be executed on stale replicas...
Also, enable MULTI/EXEC/DISCARD during loading
2020-04-02 18:23:59 +03:00
Salvatore Sanfilippo
0062194d74
Merge pull request #6654 from oranagra/fix_module_info_warning
...
fix possible warning on incomplete struct init
2020-04-02 16:32:20 +02:00
Salvatore Sanfilippo
10b626b3d5
Merge pull request #6546 from guybe7/fix_neg_zero
...
Make sure Redis does not reply with negative zero
2020-04-02 16:26:57 +02:00
Salvatore Sanfilippo
2f53ad30ee
Merge pull request #6813 from guybe7/debug_object_pass_keyname
...
DEBUG OBJECT should pass keyname to module when loading
2020-04-02 16:20:48 +02:00
antirez
5a3d85745a
LCS: output LCS len as well in IDX mode.
2020-04-02 16:15:17 +02:00
antirez
3f96e1623d
LCS: MINMATCHLEN and WITHMATCHLEN options.
2020-04-02 13:37:35 +02:00
Salvatore Sanfilippo
88351275fe
Merge pull request #6960 from devnexen/debug_arm_linux
...
debug, dump registers on arm too.
2020-04-02 11:26:08 +02:00
Salvatore Sanfilippo
fa4f50739a
Merge pull request #7006 from hwware/fixspelling
...
fix spelling in cluster.c clusterDelNode
2020-04-02 11:23:53 +02:00
Salvatore Sanfilippo
dfef407499
Merge pull request #7029 from valentinogeron/fix-xack
...
XACK should be executed in a "all or nothing" fashion.
2020-04-02 11:23:23 +02:00
Salvatore Sanfilippo
8d6dc136e1
Merge pull request #7041 from hwware/trackingfix
...
CLIENT TRACKING Command Fix: Add More Checking for OPTIN/OPTOUT mode
2020-04-02 11:22:30 +02:00
Salvatore Sanfilippo
b73d87f5e5
Merge pull request #7039 from guybe7/persist_ksn
...
PERSIST should notify a keyspace event
2020-04-02 11:21:20 +02:00
Salvatore Sanfilippo
babada8b5f
Merge pull request #7042 from guybe7/stream_cg_last_id_fix
...
streamReplyWithRange: Redundant XSETIDs to replica
2020-04-02 11:20:54 +02:00
antirez
80ec0431e8
Simplify comment in moduleTryServeClientBlockedOnKey().
2020-04-02 11:20:09 +02:00
antirez
545a5046f5
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-04-02 11:18:33 +02:00
antirez
88e66ecf94
LCS: 7x speedup by accessing the array with better locality.
2020-04-01 23:45:07 +02:00
antirez
8cdc15c309
LCS: implement KEYS option.
2020-04-01 22:11:59 +02:00
antirez
4cbf3f5ddd
LCS: other fixes to range emission.
2020-04-01 17:36:32 +02:00
antirez
c9c03c3ee6
LCS: fix emission of last range starting at index 0.
2020-04-01 17:14:40 +02:00
antirez
b3400559be
LCS: implement range indexes option.
2020-04-01 17:11:31 +02:00
antirez
1010c1b43e
LCS: initial functionality implemented.
2020-04-01 16:13:18 +02:00
Guy Benoish
c4dc5b80b2
Fix memory corruption in moduleHandleBlockedClients
...
By using a "circular BRPOPLPUSH"-like scenario it was
possible the get the same client on db->blocking_keys
twice (See comment in moduleTryServeClientBlockedOnKey)
The fix was actually already implememnted in
moduleTryServeClientBlockedOnKey but it had a bug:
the funxction should return 0 or 1 (not OK or ERR)
Other changes:
1. Added two commands to blockonkeys.c test module (To
reproduce the case described above)
2. Simplify blockonkeys.c in order to make testing easier
3. cast raxSize() to avoid warning with format spec
2020-04-01 12:53:26 +03:00
antirez
38076fd6ba
cast raxSize() to avoid warning with format spec.
2020-03-31 17:41:46 +02:00
antirez
1d13ff0b39
Minor changes to #7037 .
2020-03-31 17:10:09 +02:00
Salvatore Sanfilippo
0c52ce6c8e
Merge pull request #7037 from guybe7/fix_module_replicate_multi
...
Modules: Test MULTI/EXEC replication of RM_Replicate
2020-03-31 17:00:57 +02:00
Salvatore Sanfilippo
a20c206de7
Merge pull request #7048 from guybe7/rename_unblock_stream
...
RENAME can unblock XREADGROUP
2020-03-31 16:55:29 +02:00
Guy Benoish
6c8221580c
RENAME can unblock XREADGROUP
...
Other changes:
Support stream in serverLogObjectDebugInfo
2020-03-31 17:41:10 +03:00
Guy Benoish
d6eb3afd13
Modules: Test MULTI/EXEC replication of RM_Replicate
...
Makse sure call() doesn't wrap replicated commands with
a redundant MULTI/EXEC
Other, unrelated changes:
1. Formatting compiler warning in INFO CLIENTS
2. Use CLIENT_ID_AOF instead of UINT64_MAX
2020-03-31 13:55:51 +03:00
antirez
1b4bc60999
Merge branch 'pubsub_patterns_boost' of https://github.com/leeyiw/redis into leeyiw-pubsub_patterns_boost
2020-03-31 12:40:08 +02:00
antirez
9dcf878f1b
Fix module commands propagation double MULTI bug.
...
37a10cef
introduced automatic wrapping of MULTI/EXEC for the
alsoPropagate API. However this collides with the built-in mechanism
already present in module.c. To avoid complex changes near Redis 6 GA
this commit introduces the ability to exclude call() MUTLI/EXEC wrapping
for also propagate in order to continue to use the old code paths in
module.c.
2020-03-31 11:00:45 +02:00
antirez
7698316fda
Fix RM_Call() stale comment due to cut&paste.
2020-03-31 10:27:47 +02:00
antirez
f6d5996ead
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-03-30 17:29:04 +02:00
antirez
3ef59b50c4
Precise timeouts: reference client pointer directly.
2020-03-30 15:22:59 +02:00
Guy Benoish
12d7479144
streamReplyWithRange: Redundant XSETIDs to replica
...
propagate_last_id is declared outside of the loop but used
only from within the loop. Once it's '1' it will never go
back to '0' and will replicate XSETID even for IDs that
don't actually change the last_id.
While not a serious bug (XSETID always used group->last_id
so there's no risk), it does causes redundant traffic
between master and its replicas
2020-03-30 10:53:03 +03:00
hwware
86c76cad74
add check for not switching between optin optout mode directly
2020-03-29 23:20:54 -04:00
hwware
1ef44f8243
add check for not providing both optin optout flag
2020-03-29 23:06:50 -04:00
Guy Benoish
3f0afab301
PERSIST should notify a keyspace event
2020-03-29 17:50:42 +03:00
Salvatore Sanfilippo
aca7f36b57
Merge pull request #7033 from OMG-By/unstable
...
fix: dict.c->dictResize()->minimal type
2020-03-29 16:17:52 +02:00
OMG-By
6d2f1188ac
fix: dict.c->dictResize()->minimal type
2020-03-29 00:04:59 +08:00
zhaozhao.zz
36ee294e83
PSYNC2: reset backlog_idx and master_repl_offset correctly
2020-03-28 20:59:01 +08:00
antirez
dd7e61d77f
timeout.c created: move client timeouts code there.
2020-03-27 16:35:03 +01:00
antirez
0e22cb2680
Precise timeouts: cleaup the table on unblock.
...
Now that this mechanism is the sole one used for blocked clients
timeouts, it is more wise to cleanup the table when the client unblocks
for any reason. We use a flag: CLIENT_IN_TO_TABLE, in order to avoid a
radix tree lookup when the client was already removed from the table
because we processed it by scanning the radix tree.
2020-03-27 16:35:03 +01:00
antirez
13e4c2a9b1
Precise timeouts: fix comments after functional change.
2020-03-27 16:35:03 +01:00
antirez
aa9d92d94a
Precise timeouts: use only radix tree for timeouts.
2020-03-27 16:35:03 +01:00
antirez
077f965426
Precise timeouts: fast exit for clientsHandleShortTimeout().
2020-03-27 16:35:03 +01:00
antirez
8d11e0df7a
Precise timeouts: fix bugs in initial implementation.
2020-03-27 16:35:03 +01:00
antirez
324a8c91d0
Precise timeouts: working initial implementation.
2020-03-27 16:35:03 +01:00
antirez
8d116cc8a2
Precise timeouts: refactor unblocking on timeout.
2020-03-27 16:35:02 +01:00
antirez
97f1c808ce
PSYNC2: fix backlog_idx when adjusting for meaningful offset
...
See #7002 .
2020-03-27 16:20:02 +01:00
Valentino Geron
9a1843ef2d
XREAD and XREADGROUP should not be allowed from scripts when BLOCK option is being used
2020-03-26 15:46:31 +02:00
Valentino Geron
1547d72cf3
XACK should be executed in a "all or nothing" fashion.
...
First, we must parse the IDs, so that we abort ASAP.
The return value of this command cannot be an error if
the client successfully acknowledged some messages,
so it should be executed in a "all or nothing" fashion.
2020-03-26 15:40:23 +02:00
Salvatore Sanfilippo
2ea7f0ecad
Merge pull request #6644 from oranagra/stream_aofrw
...
AOFRW on an empty stream created with MKSTREAM loads badkly
2020-03-26 11:12:44 +01:00
Oran Agra
3b29556a0c
AOFRW on an empty stream created with MKSTREAM loads badkly
...
the AOF will be loaded successfully, but the stream will be missing,
i.e inconsistencies with the original db.
this was because XADD with id of 0-0 would error.
add a test to reproduce.
2020-03-25 21:47:57 +02:00
antirez
57fa355e56
PSYNC2: meaningful offset implemented.
...
A very commonly signaled operational problem with Redis master-replicas
sets is that, once the master becomes unavailable for some reason,
especially because of network problems, many times it wont be able to
perform a partial resynchronization with the new master, once it rejoins
the partition, for the following reason:
1. The master becomes isolated, however it keeps sending PINGs to the
replicas. Such PINGs will never be received since the link connection is
actually already severed.
2. On the other side, one of the replicas will turn into the new master,
setting its secondary replication ID offset to the one of the last
command received from the old master: this offset will not include the
PINGs sent by the master once the link was already disconnected.
3. When the master rejoins the partion and is turned into a replica, its
offset will be too advanced because of the PINGs, so a PSYNC will fail,
and a full synchronization will be required.
Related to issue #7002 and other discussion we had in the past around
this problem.
2020-03-25 15:26:37 +01:00
antirez
f15042dbf0
Explain why we allow transactions in -BUSY state.
...
Related to #7022 .
2020-03-25 12:46:59 +01:00
Oran Agra
ec007559ff
MULTI/EXEC during LUA script timeout are messed up
...
Redis refusing to run MULTI or EXEC during script timeout may cause partial
transactions to run.
1) if the client sends MULTI+commands+EXEC in pipeline without waiting for
response, but these arrive to the shards partially while there's a busy script,
and partially after it eventually finishes: we'll end up running only part of
the transaction (since multi was ignored, and exec would fail).
2) similar to the above if EXEC arrives during busy script, it'll be ignored and
the client state remains in a transaction.
the 3rd test which i added for a case where MULTI and EXEC are ok, and
only the body arrives during busy script was already handled correctly
since processCommand calls flagTransaction
2020-03-23 20:45:32 +02:00
antirez
c80d81c80a
Improve comments of replicationCacheMasterUsingMyself().
2020-03-23 16:17:35 +01:00
antirez
61de1c1146
Fix BITFIELD_RO test.
2020-03-23 12:02:12 +01:00
antirez
918086e253
Abort transactions after -READONLY error. Fix #7014 .
2020-03-23 11:47:49 +01:00
antirez
38514e3c8d
Minor changes to BITFIELD_RO PR #6951 .
2020-03-23 11:28:09 +01:00
Salvatore Sanfilippo
493a7f9823
Merge pull request #6951 from yangbodong22011/feature-bitfield-ro
...
Added BITFIELD_RO variants for read-only operations.
2020-03-23 11:23:21 +01:00
antirez
19f5be231d
Modules: updated function doc after #7003 .
2020-03-23 11:17:50 +01:00
Salvatore Sanfilippo
7c5dc07016
Merge pull request #7003 from guybe7/rm_context_flags_handle_null
...
Allow RM_GetContextFlags to work with ctx==NULL
2020-03-23 11:15:42 +01:00
Salvatore Sanfilippo
b9e5be5f56
Merge pull request #7005 from hwware/memoryleakfix-redis-cli
...
fix potential memory leak in redis-cli lua debug mode
2020-03-23 11:14:46 +01:00
Salvatore Sanfilippo
89f46f0fa1
Merge pull request #7018 from yossigo/fix-accept-issues
...
Fix issues with failed/rejected accepts.
2020-03-23 11:10:59 +01:00
Salvatore Sanfilippo
d1788a5ddb
Merge pull request #7019 from hwware/cscfix
...
Fix Bug for Client Side Caching: Unexpected Behaviour when Switching between OPTIN/OPTOUT Mode
2020-03-23 11:09:55 +01:00
hwware
34d5982bd5
remove redundant Semicolon
2020-03-23 01:07:46 -04:00
hwware
a2732291cd
clean CLIENT_TRACKING_CACHING flag when disabled caching
2020-03-23 01:04:49 -04:00
Yossi Gottlieb
2dab5015b7
Fix crashes related to failed/rejected accepts.
2020-03-22 14:47:44 +02:00
Yossi Gottlieb
4c08ae3ff6
Cluster: fix misleading accept errors.
2020-03-22 14:46:16 +02:00
Yossi Gottlieb
fa9aa90813
Conns: Fix connClose() / connAccept() behavior.
...
We assume accept handlers may choose to reject a connection and close
it, but connAccept() callers can't distinguish between this state and
other error states requiring connClose().
This makes it safe (and mandatory!) to always call connClose() if
connAccept() fails, and safe for accept handlers to close connections
(which will defer).
2020-03-22 14:42:03 +02:00
Salvatore Sanfilippo
5634ee973c
Merge pull request #7013 from hwware/clusterhelpfix
...
add missing commands description in cluster help
2020-03-20 16:33:10 +01:00
hwware
93bb42a0b5
add missing commands in cluster help
2020-03-20 09:01:12 -04:00
antirez
1e16b9384d
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-03-20 13:21:28 +01:00
antirez
f9c56dbb09
ACL: default user off should not allow automatic authentication.
...
This fixes issue #7011 .
2020-03-20 12:45:48 +01:00
hwware
262262fbb2
fix spelling in cluster.c
2020-03-18 09:48:03 -04:00
hwware
86691ccff5
fix potentical memory leak in redis-cli
2020-03-18 09:33:52 -04:00
Guy Benoish
f16eaadd4f
Allow RM_GetContextFlags to work with ctx==NULL
2020-03-18 18:34:27 +05:30
Salvatore Sanfilippo
c1295bb9f1
Merge pull request #6996 from artix75/redis_cli_proxy_info
...
Support Redis Cluster Proxy PROXY INFO command
2020-03-18 11:06:49 +01:00
WuYunlong
f6029fb925
Fix master replica inconsistency for upgrading scenario.
...
Before this commit, when upgrading a replica, expired keys will not
be loaded, thus causing replica having less keys in db. To this point,
master and replica's keys is logically consistent. However, before
the keys in master and replica are physically consistent, that is,
they have the same dbsize, if master got a problem and the replica
got promoted and becomes new master of that partition, and master
updates a key which does not exist on master, but physically exists
on the old master(new replica), the old master would refuse to update
the key, thus causing master and replica data inconsistent.
How could this happen?
That's all because of the wrong judgement of roles while starting up
the server. We can not use server.masterhost to judge if the server
is master or replica, since it fails in cluster mode.
When we start the server, we load rdb and do want to load expired keys,
and do not want to have the ability to active expire keys, if it is
a replica.
2020-03-18 16:22:07 +08:00
antirez
29b9d0a245
ACL: Make Redis 6 more backward compatible with requirepass.
...
Note that this as a side effect fixes Sentinel "requirepass" mode.
2020-03-16 16:57:12 +01:00
artix
771df8a436
Support Redis Cluster Proxy PROXY INFO command
2020-03-16 16:15:02 +01:00
antirez
9321c7871f
Sentinel: implement auth-user directive for ACLs.
2020-03-16 15:59:34 +01:00
Salvatore Sanfilippo
15338ab694
Merge pull request #6991 from soloestoy/io-threads-bugfix
...
Threaded IO: bugfix client kill may crash redis
2020-03-16 10:53:54 +01:00
Salvatore Sanfilippo
f1e4af2c29
Merge pull request #6993 from soloestoy/optimize-threaded-io
...
Threaded IO: handle pending reads clients ASAP after event loop
2020-03-16 10:48:23 +01:00
zhaozhao.zz
c46c76a399
Threaded IO: handle pending reads clients ASAP after event loop
2020-03-16 11:20:48 +08:00
zhaozhao.zz
a6a0e05a1a
Threaded IO: bugfix client kill may crash redis
2020-03-15 23:30:25 +08:00
antirez
573c4673ee
Aesthetic changes in PR #6989 .
2020-03-15 16:10:37 +01:00
zhaozhao.zz
606a01df70
Threaded IO: bugfix #6988 process events while blocked
2020-03-15 22:07:36 +08:00
antirez
453e01a091
Restore newline at the end of redis-cli.c
2020-03-13 16:21:55 +01:00
Salvatore Sanfilippo
ebf1acd33c
Merge pull request #6918 from chendq8/fixModuleUnregisterUsedApi
...
Fix module unregister used api
2020-03-13 12:46:27 +01:00
Salvatore Sanfilippo
0628030bf4
Merge pull request #6961 from guodongxiaren/pr
...
string literal should be const char*
2020-03-13 12:37:08 +01:00
Salvatore Sanfilippo
cf6cbbb881
Merge pull request #6976 from itamarhaber/ksn-patch
...
Adds keyspace notifications to migrate and restore
2020-03-13 12:35:00 +01:00
Salvatore Sanfilippo
3c95c92b0f
Merge pull request #6977 from yangbodong22011/fix-makefile-duplicate-obj
...
Remove duplicate obj files in Makefile
2020-03-13 12:32:03 +01:00
Salvatore Sanfilippo
b1db7acf72
Merge pull request #6980 from fengpf/fix_latency_comments
...
fix comments in latency.c
2020-03-13 12:26:18 +01:00
fengpf
a5f5091041
fix comments in latency.c
2020-03-12 20:44:32 +08:00
antirez
2091d73ef5
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-03-12 13:25:01 +01:00
antirez
513931dfea
ae.c: fix crash when resizing the event loop.
...
See #6964 . The root cause is that the event loop may be resized from an
event callback itself, causing the event pointer to be invalid.
2020-03-12 13:24:30 +01:00
bodong.ybd
63c4697b46
Remove duplicate obj files in Makefile
2020-03-12 11:12:37 +08:00
Itamar Haber
7d703de7e9
Adds keyspace notifications to migrate and restore
2020-03-11 18:43:03 +02:00
Salvatore Sanfilippo
bd28dbee0e
Merge pull request #6834 from lifubang/askpassword
...
add askpass mode
2020-03-10 16:51:36 +01:00
guodongxiaren
106a57c5ae
string literal should be const char*
2020-03-07 19:38:27 +08:00
David Carlier
6548157293
debug, dump registers on arm too.
2020-03-07 10:43:41 +00:00
Salvatore Sanfilippo
13707f988b
Merge pull request #6687 from jtru/systemd-integration-fixes
...
Signal systemd readiness atfer Partial Resync
2020-03-06 13:15:10 +01:00
lifubang
1b72f4b749
add askpass mode
...
Signed-off-by: lifubang <lifubang@acmcoder.com>
2020-03-05 18:17:32 +08:00
antirez
45ee620e9c
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-03-05 10:54:51 +01:00
antirez
3bab69e921
Make sync RDB deletion configurable. Default to no.
2020-03-04 17:44:21 +01:00
bodong.ybd
94376f46ad
Added BITFIELD_RO variants for read-only operations.
2020-03-04 20:51:45 +08:00
antirez
d16bb64fa4
Check that the file exists in removeRDBUsedToSyncReplicas().
2020-03-04 12:55:49 +01:00
antirez
ff024e3064
Log RDB deletion in persistence-less instances.
2020-03-04 11:19:55 +01:00
antirez
f0acdee4c5
Introduce bg_unlink().
2020-03-04 11:10:54 +01:00
antirez
5e2319c326
Remove RDB files used for replication in persistence-less instances.
2020-03-03 14:58:15 +01:00
Salvatore Sanfilippo
f88f8661ac
Merge pull request #6804 from qetu3790/unstable
...
Fix not used constant in lru_test_mode.
2020-03-02 17:43:36 +01:00
Salvatore Sanfilippo
d3e8f3fb62
Merge pull request #6923 from hwware/marcofix
...
add missing marco in sdsalloc.h
2020-03-02 17:07:41 +01:00
Salvatore Sanfilippo
bd07f121b9
Merge pull request #6944 from ShooterIT/acl-compiler-warning
...
To avoid compiler warnings
2020-03-02 16:53:17 +01:00
antirez
6dd8de1774
Use a smaller getkeys global buffer.
...
The idea is that very few commands have a lot of keys, and when this
happens the allocation time becomes neglegible.
2020-03-02 16:49:11 +01:00
Salvatore Sanfilippo
7ca81170c7
Merge pull request #6836 from oranagra/opt_get_keys_malloc
...
Optimize temporary memory allocations for getKeysFromCommand mechanism
2020-03-02 16:48:05 +01:00
ShooterIT
98b23cce29
Avoid compiler warnings
2020-02-29 18:28:41 +08:00
antirez
c8ae90fef6
Modules: reformat RM_Scan() top comment a bit.
2020-02-28 18:09:46 +01:00
antirez
8a3e9a6d44
Modules: more details in RM_Scan API top comment.
2020-02-28 18:06:30 +01:00
Salvatore Sanfilippo
86cbddc475
Merge pull request #6838 from oranagra/rm_scan_dict_rehash
...
RM_Scan disable dict rehashing
2020-02-28 17:47:52 +01:00
Salvatore Sanfilippo
4ccb56d0e6
Merge pull request #6828 from guybe7/module_string_from_double
...
Add RM_CreateStringFromDouble
2020-02-28 11:06:02 +01:00
Salvatore Sanfilippo
d7f18f5019
Merge pull request #6862 from oranagra/command_info_no_auth
...
add no_auth to COMMAND INFO
2020-02-28 11:05:31 +01:00
Salvatore Sanfilippo
f0d9a4e1a4
Merge pull request #6893 from oranagra/api_doc_aux_save
...
module api docs for aux_save and aux_load
2020-02-28 10:22:53 +01:00
antirez
d4e375fc1e
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-02-27 18:22:22 +01:00
antirez
45f318d2ff
Show Redis version when not understanding a config directive.
...
This makes simpler to give people help when posting such kind of errors
in the mailing list or other help forums, because sometimes the
directive looks well spelled, but the version of Redis they are using is
not able to support it.
2020-02-27 18:21:12 +01:00
Salvatore Sanfilippo
cf31602bce
Merge pull request #6677 from guybe7/deocde_id_once
...
streamReplyWithRangeFromConsumerPEL: Redundant streamDecodeID
2020-02-27 18:09:48 +01:00
Salvatore Sanfilippo
7e64aa80d8
Merge pull request #6690 from yangbodong22011/fix-spop-return-nil
...
Fix spop return nil #4709
2020-02-27 17:58:49 +01:00
antirez
9abdc089f8
Fix SDS misuse in enumConfigSet(). Related to #6778 .
2020-02-27 17:51:30 +01:00
antirez
43f39f2e37
Remove useless comment from enumConfigSet().
2020-02-27 17:45:56 +01:00
Salvatore Sanfilippo
ec73881a4d
Merge pull request #6778 from pponnuvel/fix_possible_overflow
...
Fix a potential overflow with strncpy
2020-02-27 17:45:02 +01:00
antirez
d8ab7e8012
Improve aeDeleteEventLoop() top comment grammar.
2020-02-27 17:41:48 +01:00
Salvatore Sanfilippo
e77db59660
Merge pull request #6189 from ShooterIT/del-event-loop
...
Del event loop
2020-02-27 17:40:51 +01:00
Salvatore Sanfilippo
652c532292
Merge pull request #6785 from patpatbear/issue_#6696_fix_aof_child_whitelist_SIGUSR1
...
fix impl of aof-child whitelist SIGUSR1 feature.
2020-02-27 17:39:33 +01:00
Salvatore Sanfilippo
ca825701dc
Merge pull request #6876 from MeirShpilraien/changed_log_level_of_module_fork_api
...
Changed log level for module fork api from 'notice' to 'verbos'.
2020-02-27 10:26:55 +01:00
Salvatore Sanfilippo
f7e05dc755
Merge pull request #6783 from hwware/memoryleakfix
...
Fix Memory Leaks in debug.c
2020-02-27 10:12:07 +01:00
Salvatore Sanfilippo
4f29753726
Merge pull request #6931 from t00350320/unstable
...
modify the read buf size according to the write buf size PROTO_IOBUF_LEN
2020-02-27 10:02:24 +01:00
Salvatore Sanfilippo
37612118c8
Merge pull request #6919 from ashtul/Fix-ThreadSafeContext-functions-names
...
fix ThreadSafeContext lock/unlock function names
2020-02-27 10:01:48 +01:00
Salvatore Sanfilippo
049969971e
Merge pull request #6921 from guybe7/fix_xclaim_propagate
...
XREADGROUP should propagate XCALIM/SETID in MULTI/EXEC
2020-02-27 09:59:51 +01:00
Salvatore Sanfilippo
79de8f3c25
Merge pull request #6922 from guybe7/refix_blocked_module_memleak
...
Modules: Do not auto-unblock clients if not blocked on keys
2020-02-27 09:53:52 +01:00
Hengjian Tang
1ab5508324
modify the read buf size according to the write buf size PROTO_IOBUF_LEN defined before
2020-02-25 15:55:28 +08:00
antirez
b6378edcd6
Tracking: optin/out implemented.
2020-02-24 19:09:45 +01:00
Guy Benoish
376a806bfb
Modules: Do not auto-unblock clients if not blocked on keys
2020-02-23 19:36:46 +05:30
Guy Benoish
a6c7e61e61
XREADGROUP should propagate XCALIM/SETID in MULTI/EXEC
...
Use built-in alsoPropagate mechanism that wraps commands
in MULTI/EXEC before sending them to replica/AOF
2020-02-23 19:13:15 +05:30
Ariel
28bde89172
fix ThreadSafeContext lock/unlock function names
2020-02-22 23:49:23 +02:00
hwware
743cfc0ad6
add missing file marco
2020-02-22 11:38:51 -05:00
chendianqiang
9947956d7b
use correct list for moduleUnregisterUsedAPI
2020-02-22 15:03:01 +08:00
Salvatore Sanfilippo
ab8c383082
Merge pull request #6901 from hwware/debughelp
...
add missing subcommand description for DEBUG OOM in HELP
2020-02-20 17:42:24 +01:00
Salvatore Sanfilippo
155526a44e
Merge pull request #6894 from madolson/csc-fixes
...
Client side caching fixes
2020-02-20 13:03:31 +01:00
Salvatore Sanfilippo
e741b0c257
Merge pull request #6903 from oranagra/defrag_lists
...
Defrag big lists in portions to avoid latency and freeze
2020-02-20 13:00:39 +01:00
Salvatore Sanfilippo
9fe02ce1cd
Merge pull request #6905 from guybe7/xgroup_destroy_unblock
...
XGROUP DESTROY should unblock XREADGROUP with -NOGROUP
2020-02-20 12:54:14 +01:00
Salvatore Sanfilippo
42c4d6aec7
Merge pull request #6911 from hayashier/fix-typo-fss
...
fix typo from fss to rss
2020-02-20 12:02:05 +01:00
antirez
c8c78bd4b9
Tracking: fix max-keys configuration directive.
2020-02-19 19:00:29 +01:00
Guy Benoish
770cb0ba97
XGROUP DESTROY should unblock XREADGROUP with -NOGROUP
2020-02-19 08:25:31 +05:30
Oran Agra
485425cec7
Defrag big lists in portions to avoid latency and freeze
...
When active defrag kicks in and finds a big list, it will create a bookmark to
a node so that it is able to resume iteration from that node later.
The quicklist manages that bookmark, and updates it in case that node is deleted.
This will increase memory usage only on lists of over 1000 (see
active-defrag-max-scan-fields) quicklist nodes (1000 ziplists, not 1000 items)
by 16 bytes.
In 32 bit build, this change reduces the maximum effective config of
list-compress-depth and list-max-ziplist-size (from 32767 to 8191)
2020-02-18 17:22:32 +02:00
hwware
7d4ebe114f
add missing subcommand description for debug oom
2020-02-17 23:40:24 -05:00
Oran Agra
6fff2cf9b6
module api docs for aux_save and aux_load
2020-02-16 15:43:19 +02:00
Madelyn Olson
c1b5220ee7
Give an error message if you specify redirect twice
2020-02-16 05:41:39 -08:00
Madelyn Olson
d63a435362
Minor CSC fixes and fixed documentation
2020-02-16 05:28:29 -08:00
antirez
df45fed050
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-02-14 18:23:13 +01:00
antirez
20eeddfb8a
Signal key as modified when expired on-access.
...
This fixes WATCH and client side caching with keys expiring because of
a synchronous access and not because of background expiring.
2020-02-14 18:22:25 +01:00
Itamar Haber
8a44b2cc7e
Fixes segfault on calling trackingGetTotalKeys
...
... with CSC disabled
2020-02-14 17:13:58 +02:00
antirez
090bc0c1a3
Merge branch 'csc2' into unstable
2020-02-14 14:29:18 +01:00
antirez
47177c9edc
Tracking: fix operators precedence error in bcast check.
2020-02-14 14:27:45 +01:00
antirez
f6e32a832f
Tracking: fix behavior when switchinig from normal to BCAST.
2020-02-14 14:27:43 +01:00
Salvatore Sanfilippo
c21c23bbba
Merge pull request #6863 from oranagra/module_commands_no_slowlog
...
add no-slowlog option to RM_CreateCommand
2020-02-13 17:02:19 +01:00
antirez
6922ccc0b9
Tracking: fix sending messages bug + tracking off bug.
2020-02-13 16:58:07 +01:00
antirez
40194a2a68
Tracking: BCAST: basic feature now works.
2020-02-12 19:22:04 +01:00
Salvatore Sanfilippo
8aa0b19d83
Merge pull request #6691 from kraj/fno-common
...
Mark extern definition of SDS_NOINIT in sds.h
2020-02-12 14:04:53 +01:00
lifubang
dc8f947d7c
correct help info for --user and --pass
...
Signed-off-by: lifubang <lifubang@acmcoder.com>
2020-02-12 16:34:22 +08:00
antirez
71f3f3f1af
Tracking: BCAST: broadcasting of keys in prefixes implemented.
2020-02-11 18:11:59 +01:00
antirez
3f7ba86255
Tracking: BCAST: registration in the prefix table.
2020-02-11 17:26:29 +01:00
antirez
dfe126f3e9
Tracking: BCAST: parsing of the options + skeleton.
2020-02-10 17:18:11 +01:00
antirez
f53cc00c09
Tracking: always reply with an array of keys.
2020-02-10 13:42:18 +01:00
meir@redislabs.com
67dbc5f365
Changed log level for module fork api from 'notice' to 'verbos'.
2020-02-10 12:10:32 +02:00
antirez
85e4777d5c
Tracking: minor change of names and new INFO field.
2020-02-07 18:12:45 +01:00
antirez
1ea6672430
Rax.c: populate data field after random walk.
2020-02-07 18:12:10 +01:00
antirez
d933d6f2a4
Tracking: rename INFO field with total items.
2020-02-07 17:19:17 +01:00
antirez
92357b2d61
Tracking: first conversion from hashing to key names.
2020-02-07 14:03:43 +01:00
Oran Agra
46216b0e83
add no-slowlog option to RM_CreateCommand
2020-02-06 15:06:33 +02:00
Oran Agra
c8c3281f06
add no_auth to COMMAND INFO
2020-02-06 14:53:54 +02:00
Salvatore Sanfilippo
9c00bdd86e
Merge pull request #6822 from guybe7/diskless_load_module_hook_fix
...
Diskless-load emptyDb-related fixes
2020-02-06 13:10:00 +01:00
Guy Benoish
92dc5e1fa4
Diskless-load emptyDb-related fixes
...
1. Call emptyDb even in case of diskless-load: We want modules
to get the same FLUSHDB event as disk-based replication.
2. Do not fire any module events when flushing the backups array.
3. Delete redundant call to signalFlushedDb (Called from emptyDb).
2020-02-06 16:48:02 +05:30
antirez
50d4326e3b
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2020-02-06 11:24:22 +01:00
antirez
d5c6a833c8
Merge branch 'acl-log' into unstable
2020-02-06 11:24:16 +01:00
Salvatore Sanfilippo
1012514e0f
Merge pull request #6826 from lifubang/opensslcli
...
fix ssl args check for redis-cli
2020-02-06 11:22:20 +01:00
Oran Agra
28ef18a894
RM_Scan disable dict rehashing
...
The callback approach we took is very efficient, the module can do any
filtering of keys without building any list and cloning strings, it can
also read data from the key's value. but if the user tries to re-open
the key, or any other key, this can cause dict re-hashing (dictFind does
that), and that's very bad to do from inside dictScan.
this commit protects the dict from doing any rehashing during scan, but
also warns the user not to attempt any writes or command calls from
within the callback, for fear of unexpected side effects and crashes.
2020-02-06 11:48:12 +02:00
Salvatore Sanfilippo
5bfba06a3b
Merge pull request #6821 from guybe7/key_miss_notify
...
Exclude "keymiss" notification from NOTIFY_ALL
2020-02-06 10:43:05 +01:00
Salvatore Sanfilippo
2e1dd00c80
Merge pull request #6837 from oranagra/signal_modified_key_doc
...
update RM_SignalModifiedKey doc comment
2020-02-06 10:38:36 +01:00
Salvatore Sanfilippo
730cacf672
Merge pull request #6840 from oranagra/short_read_moduleid
...
Add handling of short read of module id in rdb
2020-02-06 10:35:42 +01:00
Salvatore Sanfilippo
33f613bf87
Merge pull request #6843 from oranagra/command_flags
...
A few non-data commands that should be allowed while loading or stale
2020-02-06 10:34:26 +01:00
Salvatore Sanfilippo
4aafdb185a
Merge pull request #6844 from oranagra/bind_config_leak
...
Memory leak when bind config is provided twice
2020-02-06 10:33:40 +01:00
Salvatore Sanfilippo
be520829b8
Merge pull request #6845 from oranagra/maxmemory_warning
...
fix maxmemory config warning
2020-02-06 10:33:15 +01:00
Salvatore Sanfilippo
13741fb99d
Merge pull request #6846 from oranagra/module_client_flags
...
Fix client flags to be int64 in module.c
2020-02-06 10:32:35 +01:00
Salvatore Sanfilippo
08b218bfa5
Merge pull request #6847 from oranagra/module_read_err_panic
...
moduleRDBLoadError, add key name, and use panic rather than exit
2020-02-06 10:31:29 +01:00
Salvatore Sanfilippo
5558c0e4cf
Merge pull request #6848 from oranagra/opt_use_diskless_load_calls
...
reduce repeated calls to use_diskless_load
2020-02-06 10:30:39 +01:00
Salvatore Sanfilippo
7cf53252ee
Merge pull request #6849 from oranagra/free_client_mutex
...
freeClientAsync don't lock mutex if there's just one thread
2020-02-06 10:29:46 +01:00
Salvatore Sanfilippo
44266d6d92
Merge pull request #6850 from oranagra/restart_aof_unset_master
...
move restartAOFAfterSYNC from replicaofCommand to replicationUnsetMaster
2020-02-06 10:27:05 +01:00
Salvatore Sanfilippo
58a3a3fa68
Merge pull request #6851 from oranagra/aof_rewrite_scheduled
...
stopAppendOnly resets aof_rewrite_scheduled
2020-02-06 10:23:11 +01:00
Salvatore Sanfilippo
711b13801e
Merge pull request #6852 from oranagra/acl_help
...
add SAVE subcommand to ACL HELP and top comment
2020-02-06 10:22:16 +01:00
Salvatore Sanfilippo
f25962337d
Merge pull request #6853 from oranagra/debug_help
...
DEBUG HELP - add PROTOCOL
2020-02-06 10:21:55 +01:00
Guy Benoish
91c41b6dde
Some refactroing using getClientType instead of CLIENT_SLAVE
2020-02-06 14:12:08 +05:30
Oran Agra
31ffbf1133
DEBUG HELP - add PROTOCOL
2020-02-06 10:40:29 +02:00
Guy Benoish
e33fffbde1
Fix small bugs related to replica and monitor ambiguity
...
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
2020-02-06 14:10:02 +05:30
Oran Agra
6d29c34da7
add SAVE subcommand to ACL HELP and top comment
2020-02-06 10:31:43 +02:00
Oran Agra
69e8ea7143
stopAppendOnly resets aof_rewrite_scheduled
...
althouh in theory, users can do BGREWRITEAOF even if aof is disabled, i
suppose it is more common that the scheduled flag is set by either
startAppendOnly, of a failed initial AOFRW fork (AOF_WAIT_REWRITE)
2020-02-06 10:17:34 +02:00
Oran Agra
aac6a4cf13
move restartAOFAfterSYNC from replicaofCommand to replicationUnsetMaster
...
replicationUnsetMaster can be called from other places, not just
replicaofCOmmand, and all of these need to restart AOF
2020-02-06 10:14:32 +02:00
Oran Agra
86e302f5f3
freeClientAsync don't lock mutex if there's just one thread
2020-02-06 10:07:17 +02:00
Oran Agra
485d5d4a18
reduce repeated calls to use_diskless_load
...
this function possibly iterates on the module list
2020-02-06 09:41:45 +02:00
Oran Agra
85cc696f50
moduleRDBLoadError, add key name, and use panic rather than exit
...
using panic rather than exit means you get s stack trace of the code
path that experianced the error, and possibly other info.
2020-02-06 09:37:04 +02:00
Oran Agra
d454d5a4f5
Fix client flags to be int64 in module.c
...
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.
2020-02-06 09:33:20 +02:00
Oran Agra
a17bddf2a1
fix maxmemory config warning
...
the warning condition was if usage > limit (saying it'll cause eviction
or oom), but in fact the eviction and oom depends on used minus slave
buffers.
other than fixing the condition, i add info about the current usage and
limit, which may be useful when looking at the log.
2020-02-06 09:23:22 +02:00
Oran Agra
7e1d5954e5
Memory leak when bind config is provided twice
2020-02-06 09:17:39 +02:00
Oran Agra
ac2c96f5b1
A few non-data commands that should be allowed while loading or stale
...
SELECT, and HELLO are commands that may be executed by the client
as soon as it connects, there's no reason to block them, preventing the
client from doing the rest of his sequence (which might just be INFO or
CONFIG, etc).
MONITOR, DEBUG, SLOWLOG, TIME, LASTSAVE are all non-data accessing
commands, which there's no reason to block.
2020-02-06 08:53:23 +02:00
Oran Agra
fe7e8dc955
Add handling of short read of module id in rdb
2020-02-05 19:47:09 +02:00
Oran Agra
3795aaf42a
update RM_SignalModifiedKey doc comment
2020-02-05 18:15:38 +02:00
Oran Agra
774d8cd721
Optimize temporary memory allocations for getKeysFromCommand mechanism
...
now that we may use it more often (ACL), these excessive calls to malloc
and free can become an overhead.
2020-02-05 18:06:33 +02:00
Salvatore Sanfilippo
44ac202fbf
Merge pull request #6831 from oranagra/config_c_refactor_3
...
config.c verbose error replies for CONFIG SET, like config file parsing
2020-02-05 13:41:15 +01:00
Oran Agra
ffdd0620d0
config.c verbose error replies for CONFIG SET, like config file parsing
...
We noticed that the error replies for the generic mechanism for enums
are very verbose for config file parsing, but not for config set
command.
instead of replicating this code, i did a small refactoring to share
code between CONFIG SET and config file parsing.
and also renamed the enum group functions to be consistent with the
naming of other types.
2020-02-05 11:41:24 +02:00
Oran Agra
9ac6cb9ce4
memoryGetKeys helper function so that ACL can limit access to keys for MEMORY command
2020-02-05 09:42:49 +02:00
Guy Benoish
1c7a2269d6
Add RM_CreateStringFromDouble
2020-02-04 19:28:09 +05:30
antirez
90fae58b49
ACL LOG: make max log entries configurable.
2020-02-04 13:19:40 +01:00
antirez
0c1a4b5576
ACL LOG: log failed auth attempts.
2020-02-04 12:55:26 +01:00
lifubang
540b917a26
fix ssl flag check for redis-cli
...
Signed-off-by: lifubang <lifubang@acmcoder.com>
2020-02-04 17:32:30 +08:00
Salvatore Sanfilippo
cfe39b7859
Merge pull request #6818 from leomurillo/zskiplistLevels
...
Set ZSKIPLIST_MAXLEVEL to 32
2020-02-04 10:20:56 +01:00
WuYunlong
eb2196f5ce
Fix lua related memory leak.
2020-02-04 16:38:46 +08:00
Salvatore Sanfilippo
2400f5782e
Merge pull request #6808 from yossigo/fix/redis-cli-openssl-1.0.x
...
TLS: Fix missing initialization in redis-cli.
2020-02-03 16:43:56 +01:00