9527 Commits

Author SHA1 Message Date
Oran Agra
e41c1824d6 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
f7bb301644 Memory leak when bind config is provided twice 2020-02-06 09:17:39 +02:00
Oran Agra
ddc1845286 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
Yossi Gottlieb
bc5e0a456b TLS: Update documentation. 2020-02-05 21:19:03 +02:00
Oran Agra
467090e45f Add handling of short read of module id in rdb 2020-02-05 19:47:09 +02:00
Salvatore Sanfilippo
9d016c0084 Merge pull request #6839 from yossigo/fix/redis-conf-tls-clarifications
TLS: Some redis.conf clarifications.
2020-02-05 17:33:21 +01:00
Yossi Gottlieb
f4c7f1ac27 TLS: Some redis.conf clarifications. 2020-02-05 18:30:12 +02:00
Oran Agra
13a7379024 update RM_SignalModifiedKey doc comment 2020-02-05 18:15:38 +02:00
Oran Agra
7d12ef55ca 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
ec92713d1e 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
Salvatore Sanfilippo
823d8e6a8b Merge pull request #6829 from oranagra/memory_get_keys
memoryGetKeys helper function so that ACL can limit access to keys for MEMORY command
2020-02-05 13:33:18 +01:00
Oran Agra
097a0a52d6 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
f7067d371b memoryGetKeys helper function so that ACL can limit access to keys for MEMORY command 2020-02-05 09:42:49 +02:00
Guy Benoish
a0d45826a3 Add RM_CreateStringFromDouble 2020-02-04 19:28:09 +05:30
antirez
f1518f63b1 ACL LOG: make max log entries configurable. 2020-02-04 13:19:40 +01:00
antirez
da054f14f0 ACL LOG: test for AUTH reason. 2020-02-04 12:58:48 +01:00
antirez
debc5d4ef9 ACL LOG: log failed auth attempts. 2020-02-04 12:55:26 +01:00
lifubang
54199c93be fix ssl flag check for redis-cli
Signed-off-by: lifubang <lifubang@acmcoder.com>
2020-02-04 17:32:30 +08:00
Salvatore Sanfilippo
32e2e7770a Merge pull request #6818 from leomurillo/zskiplistLevels
Set ZSKIPLIST_MAXLEVEL to 32
2020-02-04 10:20:56 +01:00
Salvatore Sanfilippo
2659773a0b Merge pull request #6825 from trevor211/fixMemoryLeakAboutLuaScript
Fix memory leak about lua script
2020-02-04 10:19:16 +01:00
WuYunlong
85bc26f8da Fix lua related memory leak. 2020-02-04 16:38:46 +08:00
WuYunlong
c0c29adce9 Add tcl regression test in scripting.tcl to reproduce memory leak. 2020-02-04 16:34:11 +08:00
Salvatore Sanfilippo
a0781a2ce8 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
Salvatore Sanfilippo
bac311851e Merge pull request #6824 from oranagra/fix_module_c_uninit_var
fix uninitialized info_cb var in module.c
2020-02-03 15:46:13 +01:00
Oran Agra
f5d37082ca fix uninitialized info_cb var in module.c 2020-02-03 16:35:39 +02:00
Guy Benoish
2492bdc90b Exclude "keymiss" notification from NOTIFY_ALL
Because "keymiss" is "special" compared to the rest of
the notifications (Trying not to break existing apps
using the 'A' format for notifications)

Also updated redis.conf and module.c docs
2020-02-03 15:43:44 +05:30
Leo Murillo
0ab1604c0c Set ZSKIPLIST_MAXLEVEL to optimal value given 2^64 elements and p=0.25 2020-02-02 02:48:00 -06:00
Salvatore Sanfilippo
541a667c77 Merge pull request #6812 from guybe7/str_convert_fix
ld2string should fail if string contains \0 in the middle
2020-01-30 17:51:04 +01:00
Guy Benoish
add0229c31 DEBUG OBJECT should pass keyname to module when loading 2020-01-30 19:15:12 +05:30
Guy Benoish
3fd717daee ld2string should fail if string contains \0 in the middle
This bug affected RM_StringToLongDouble and HINCRBYFLOAT.
I added tests for both cases.

Main changes:
1. Fixed string2ld to fail if string contains \0 in the middle
2. Use string2ld in getLongDoubleFromObject - No point of
   having duplicated code here

The two changes above broke RM_SaveLongDouble/RM_LoadLongDouble
because the long double string was saved with length+1 (An innocent
mistake, but it's actually a bug - The length passed to
RM_SaveLongDouble should not include the last \0).
2020-01-30 18:15:17 +05:30
antirez
8185f2b6ce ACL LOG: implement a few basic tests. 2020-01-30 11:14:13 +01:00
antirez
bc168c91ec ACL LOG: also log ACL errors in the scripting/MULTI ctx. 2020-01-30 10:50:32 +01:00
Yossi Gottlieb
a7420b2478 TLS: Fix missing initialization in redis-cli. 2020-01-29 21:40:02 +02:00
antirez
eef1489240 ACL LOG: implement LOG RESET. 2020-01-29 18:51:04 +01:00
antirez
5bcb4e6905 ACL LOG: group similar entries in a given time delta. 2020-01-29 18:40:32 +01:00
antirez
2ed300b786 Add more info in the unblockClientFromModule() function. 2020-01-29 12:47:50 +01:00
Salvatore Sanfilippo
d0bb1e572f Merge pull request #6699 from guybe7/module_blocked_on_key_timeout_memleak
Modules: Fix blocked-client-related memory leak
2020-01-29 12:06:14 +01:00
antirez
f550dfca47 ACL LOG: actually emit entries. 2020-01-28 18:04:20 +01:00
antirez
99a5b98bf0 ACL LOG: implement ACL LOG subcommadn skeleton. 2020-01-28 17:30:50 +01:00
antirez
800425a319 ACL LOG: data structures and initial functions. 2020-01-27 18:37:52 +01:00
qetu3790
72ed0b2b03 Merge pull request #1 from qetu3790/qetu3790-patch-1
Fix not used constant in lru_test_mode.
2020-01-23 17:30:35 +08:00
qetu3790
7bd9afe780 Fix not used constant in lru_test_mode.
LRU_CYCLE_PERIOD is defined,but not used.
2020-01-23 17:18:07 +08:00
srzhao
f6621280c9 Check OOM at script start to get stable lua OOM state.
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.
2020-01-20 21:34:05 +08:00
srzhao
90589504cc fix impl of aof-child whitelist SIGUSR1 feature. 2020-01-17 11:50:51 +08:00
hwware
65cffe587c format fix 2020-01-16 17:35:26 -05:00
hwware
89f5aaa4d7 fix potentical memory leaks 2020-01-16 17:33:23 -05:00
antirez
c0bdf0eb73 Change error message for #6775. 2020-01-15 17:55:24 +01:00
Salvatore Sanfilippo
b2ccea5f3c Merge pull request #6775 from SqREL/make-error-of-invalid-command-withing-context-explicit
Make error when submitting command in incorrect context more explicit
2020-01-15 17:53:51 +01:00
Ponnuvel Palaniyappan
9df0a501ee Fix a potential overflow with strncpy 2020-01-14 08:10:39 +00:00
antirez
4b1de05757 Document I/O threads in redis.conf. 2020-01-13 19:10:42 +01:00