Jamison Judge
3ef6b79c80
stream.h: fix typo
2019-10-07 11:01:01 -07:00
antirez
c65347ab17
LOLWUT: version 6: change text message & credits.
2019-10-07 19:19:38 +02:00
antirez
c448f6fe55
LOLWUT: version 6: give credits.
2019-10-07 18:57:25 +02:00
antirez
58cdc054e3
LOLWUT: version 6: improve rithm of the image.
2019-10-07 18:41:29 +02:00
antirez
c10889150e
LOLWUT: version 6 initial output. May change a bit.
2019-10-07 18:24:34 +02:00
charsyam
bea0384f5d
fix type salves to slaves
2019-10-07 23:48:11 +09:00
antirez
f019f28e7b
LOLWUT: version 6 initial concept.
2019-10-07 12:35:17 +02:00
Oran Agra
d1a005ab39
fix issues found by a static analyzer
...
cluster.c - stack buffer memory alignment
The pointer 'buf' is cast to a more strictly aligned pointer type
evict.c - lazyfree_lazy_eviction, lazyfree_lazy_eviction always called
defrag.c - bug in dead code
server.c - casting was missing parenthesis
rax.c - indentation / newline suggested an 'else if' was intended
2019-10-07 09:09:32 +03:00
antirez
bd60447066
LOLWUT: ability to specify VERSION <ver> option.
2019-10-04 19:19:54 +02:00
antirez
9073d56eec
LOLWUT: refactoring + skeleton of LOLWUT 6.
2019-10-04 19:19:48 +02:00
Oran Agra
0f1969f16f
trim the double implementation of jemalloc purge
2019-10-04 14:22:13 +03:00
Oran Agra
bf759cc9c3
Merge remote-tracking branch 'antirez/unstable' into jemalloc_purge_bg
2019-10-04 13:53:40 +03:00
antirez
ee1cef189f
Minor aesthetic changes to #6419 .
2019-10-04 12:00:41 +02:00
Salvatore Sanfilippo
264778af0a
Merge pull request #6419 from oranagra/lua_timeout_sha
...
On LUA script timeout, print the script SHA to the log
2019-10-04 11:58:05 +02:00
Salvatore Sanfilippo
c326f28833
Merge pull request #6308 from oranagra/repl-diskless-load-config
...
fix error handling on config parsing of repl-diskless-load
2019-10-04 11:56:08 +02:00
antirez
3eaff2941e
Modules: RM_Call(): give pointer to documentation.
2019-10-04 11:46:53 +02:00
antirez
2a81e49dde
Modules: RM_Call/Replicate() ability to exclude AOF/replicas.
2019-10-04 11:44:53 +02:00
antirez
1bca62c4b7
Modules: RM_Replicate() in thread safe contexts.
2019-10-03 11:03:46 +02:00
antirez
e938bbc543
Modules: implement RM_Replicate() from async callbacks.
2019-10-03 10:56:37 +02:00
antirez
c549513acd
Modules: handle propagation when ctx is freed. Flag modules commands ctx.
2019-10-02 18:33:40 +02:00
Oran Agra
2e19b94113
RED-31295 - redis: avoid race between dlopen and thread creation
...
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
2019-10-02 15:39:44 +03:00
antirez
758b39be99
Speedup INFO server section.
2019-10-02 11:30:20 +02:00
antirez
f49f0a6f72
SDS: make sdscatfmt() faster by pre-allocating a bit.
2019-10-02 11:30:20 +02:00
Oran Agra
98426e9886
On LUA script timeout, print the script SHA to the log
...
since the slowlog and other means that can help you detect the bad script
are only exposed after the script is done. it might be a good idea to at least
print the script name (sha) to the log when it timeouts.
2019-10-02 08:40:35 +03:00
antirez
40acb4412d
GEORADIUS reply: fix of the previous fix about #6417 .
2019-10-01 19:18:55 +02:00
Salvatore Sanfilippo
2e2fe98f9c
Merge pull request #6270 from oranagra/modules_info
...
Extend modules API to allow modules report to redis INFO
2019-10-01 18:02:33 +02:00
antirez
3281ebb495
Fix GEORADIUS replies broken after RESP3 introduction.
...
This commit fixes #6417 .
2019-10-01 10:38:56 +02:00
antirez
beebb3c013
Merge branch 'hashed-pass-opcode' into unstable
2019-10-01 10:33:04 +02:00
Oran Agra
1b4f888109
Use sdscatfmt instead of sdscatprintf in module info
...
sdscatfmt is faster
2019-09-30 21:13:13 +03:00
Oran Agra
d5c14c70b7
Merge remote-tracking branch 'antirez/unstable' into modules_info
2019-09-30 20:47:35 +03:00
antirez
a9628142fd
Clarify a comment about memory total_frag field.
2019-09-30 18:37:59 +02:00
antirez
09041b9359
ACLs: change hashed passwords opcode to also remove them.
...
Related to PR #6405
2019-09-30 18:28:45 +02:00
Madelyn Olson
ea7c3fe7fd
Allowed passing in of password hash and fixed config rewrite
2019-09-30 17:57:49 +02:00
Salvatore Sanfilippo
2478b47b89
Merge pull request #6304 from dbenders/fix-issue-6141
...
Fix issue #6141 : cluster rebalance does not support binary key
2019-09-30 17:43:58 +02:00
antirez
6a2831c24a
Fix comments aesthetics.
2019-09-30 17:17:36 +02:00
antirez
23f5cb4233
Change a bit the style of #6385 .
2019-09-30 10:58:15 +02:00
Salvatore Sanfilippo
ad45d7e407
Merge pull request #6385 from filipecosta90/perf-reply-ss-error
...
Improve performance of RM_ReplyWithSimpleString and RM_ReplyWi…
2019-09-30 10:57:05 +02:00
antirez
916c4e5d86
moduleRDBLoadError(): io->ctx may be NULL.
...
The correct way to access the module about a given IO context is to
deference io->type->module, since io->ctx is only populated if the user
requests an explicit context from an IO object.
2019-09-27 18:42:38 +02:00
antirez
8b5848a4f5
Fix memory leak in moduleLoadFromQueue().
2019-09-27 18:33:21 +02:00
antirez
b394817754
Fix memory leak in RM_UnregisterCommandFilter().
2019-09-27 18:33:05 +02:00
antirez
0a07f8ffee
TerminateModuleForkChild(): fix function prototype.
2019-09-27 12:23:07 +02:00
antirez
721d3c9e0c
TerminateModuleForkChild(): move safety checks there.
...
We don't want that the API could be used directly in an unsafe way,
without checking if there is an active child. Now the safety checks are
moved directly in the function performing the operations.
2019-09-27 12:17:47 +02:00
antirez
de1f82aa33
Function renamed hasForkChild() -> hasActiveChildProcess().
2019-09-27 12:03:09 +02:00
antirez
82845f8d04
TerminateModuleForkChild(): use wait4 for safety.
...
In theory currently there is only one active child, but the API may
change or for bugs in the implementation we may have several (it was
like that for years because of a bug). Better to wait for a specific
pid and avoid consuing other pending children information.
2019-09-27 11:59:58 +02:00
antirez
beb1356b5b
Improve error message in BGSAVE.
2019-09-27 11:59:37 +02:00
antirez
ae3ef964c1
Modules fork: improve SIGUSR1 handling, fix include.
...
We can't expect SIGUSR1 to have any specific value range, so let's
define an exit code that we can handle in a special way.
This also fixes an #include <wait.h> that is not standard.
2019-09-27 11:39:45 +02:00
Salvatore Sanfilippo
6129758558
Merge branch 'unstable' into modules_fork
2019-09-27 11:24:06 +02:00
antirez
fddc4757c8
BGREWRITEAOF: improve the generic error message.
2019-09-26 16:14:21 +02:00
Oran Agra
83e87bac76
Fix lastbgsave_status, when new child signal handler get intended kill
...
And add a test for that.
2019-09-26 15:16:34 +03:00
antirez
b7b23bdfb8
INFO: more info about loaded modules.
...
Related to #6024 .
2019-09-26 12:18:55 +02:00
Salvatore Sanfilippo
c1ea6175c5
Merge pull request #6024 from itamarhaber/info_modules
...
Adds a "Modules" section to `INFO`
2019-09-26 11:58:52 +02:00
Salvatore Sanfilippo
959fb5cf68
Merge pull request #6235 from oranagra/module_rdb_load_errors
...
Allow modules to handle RDB loading errors.
2019-09-26 11:52:42 +02:00
Salvatore Sanfilippo
b0a90d8fa8
Merge pull request #4980 from yossigo/rm-assert
...
Add RedisModule_Assert() API call.
2019-09-26 11:39:29 +02:00
filipecosta90
af15b285fa
[fix] fixed the un-refactor bug.
2019-09-25 17:28:42 +01:00
Salvatore Sanfilippo
388bc55344
Merge pull request #6354 from jaredzhu/aarch64-devel
...
Add aarch64 uc_mcontext debug dump info
2019-09-25 18:14:24 +02:00
antirez
b3d6cb268a
Modify #6401 changes to fit 80 cols.
2019-09-25 18:08:11 +02:00
Salvatore Sanfilippo
f3aaf2b4d8
Merge pull request #6401 from valentinogeron/fix-discard-during-oom
...
DISCARD should not fail during OOM
2019-09-25 18:07:25 +02:00
Salvatore Sanfilippo
f6cf08e582
Merge pull request #6402 from mieko/unstable
...
Seed SipHash with 128-bit key
2019-09-25 18:03:39 +02:00
antirez
8a531cedb0
ACL: fix ##6408, default user state affecting all the connections.
2019-09-25 17:45:05 +02:00
Mike A. Owens
0a4d2bbd9c
Seed SipHash with 128-bit key
...
SipHash expects a 128-bit key, and we were indeed generating 128-bits,
but restricting them to hex characters 0-9a-f, effectively giving us
only 4 bits-per-byte of key material, and 64 bits overall.
Now, we skip the hex conversion and supply 128 bits of unfiltered
random data.
2019-09-23 19:24:09 -04:00
filipecosta90
733280d9cb
[fix] un-refactor the code. [perf] replyWithStatus now makes usage of addReplyProto
2019-09-23 23:45:31 +01:00
antirez
eda703ab28
redis-cli: support for ACL style user/pass AUTH.
2019-09-23 19:57:13 +02:00
antirez
b21dd082c3
redis-cli: CSV and RAW target for more RESP3 types.
2019-09-23 19:36:06 +02:00
antirez
cc108057ff
redis-cli: ability to start a session in RESP3 mode.
2019-09-23 17:55:05 +02:00
antirez
8ea185ea30
redis-cli: AUTH can now have 3 arguments as well.
2019-09-23 17:47:36 +02:00
antirez
bb7546c913
RESP3: varbatim handling for other redis-cli outputs.
2019-09-23 17:42:57 +02:00
antirez
264708427b
RESP3: implementation of verbatim output with TTY target.
2019-09-23 17:39:42 +02:00
valentino
7a73b7f168
DISCARD should not fail during OOM
...
discard command should not fail during OOM, otherwise client MULTI state
will not be cleared.
2019-09-22 09:22:53 +03:00
David Carlier
5a8a005026
Adding AnonHugePages case + comments
2019-09-20 11:01:36 +01:00
antirez
2e4fa7bb48
Make config.c always_replicate_commands more uniform.
...
Better if it resembles the other similar code paths.
2019-09-20 11:46:35 +02:00
antirez
1dd36347ed
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-09-20 11:45:02 +02:00
antirez
630638dcde
Remove redundant statement in config.c.
...
Thanks to @guybe7 for spotting the error in the original PR I merged.
2019-09-20 11:44:32 +02:00
Salvatore Sanfilippo
f135d6295b
Merge pull request #6367 from Dolondro/unstable
...
Spelling: Typo fixes for API documentation
2019-09-20 11:33:58 +02:00
Salvatore Sanfilippo
3976f4c88e
Merge pull request #6368 from suntw2015/unstable
...
fix rdb function rdbLoadIntegerObject comment
2019-09-20 11:33:27 +02:00
Salvatore Sanfilippo
d0050db236
Merge pull request #6389 from ocadaruma/patch-1
...
Fix typos in hyperloglog.c
2019-09-20 11:24:07 +02:00
Salvatore Sanfilippo
975eb73145
Merge pull request #6400 from mors741/unstable
...
Fix compilation error
2019-09-20 11:19:56 +02:00
antirez
0a146a8be4
Add useless break for uniformity / future protection.
2019-09-20 11:19:07 +02:00
Salvatore Sanfilippo
bd90c99f83
Merge pull request #6398 from trevor211/fixRESP3ToLuaBool
...
RESP3: Fix function redisProtocolToLuaType about RESP3->Lua bools.
2019-09-20 11:15:20 +02:00
Evgeny
a1a65d238c
Fix compilation error
2019-09-20 01:11:20 -07:00
WuYunlong
30a3644e64
RESP3: Fix function redisProtocolToLuaType about RESP3->Lua bools.
2019-09-20 08:37:23 +08:00
WuYunlong
74e3a622a2
Fix bad handling of unexpected option while loading config "lua-replicate-commands".
2019-09-20 08:14:36 +08:00
antirez
474a923160
RESP3: Use verbatim in LATENCY subcommands.
2019-09-18 18:53:22 +02:00
antirez
cb384127d1
RESP3: Use verbatim in CLIENT LIST.
2019-09-18 18:52:13 +02:00
antirez
dd2f695d7e
RESP3: Use verbatim in CLUSTER subcommands.
2019-09-18 18:51:15 +02:00
antirez
1b3cb3b0de
RESP3: Use verbatim in MEMORY subcommands.
2019-09-18 18:48:14 +02:00
antirez
ff9a5d231b
RESP3: Use verbatim in DEBUG HTSTATS / HTSTATS-KEY.
2019-09-18 18:46:11 +02:00
antirez
aca5482fbf
RESP3: Use verbatim in INFO output.
2019-09-18 18:33:13 +02:00
antirez
68519b7034
RESP3: Verbatim conversion test in the LOLWUT command.
...
redis-cli is currently not able to handle it after going in RESP3 mode,
because of hiredis limitations.
2019-09-18 18:28:51 +02:00
antirez
8ea4bdd91d
RESP3: Lua double -> RESP3 conversion.
2019-09-17 19:26:46 +02:00
antirez
89f929b12a
RESP3: RESP3 double -> Lua conversion.
2019-09-17 19:20:30 +02:00
antirez
19aba4ac78
RESP3: double -> human readable conversion.
2019-09-17 19:08:33 +02:00
antirez
e8e30bc402
RESP3: bool and null values in RESP -> human readable conversion.
2019-09-17 18:57:24 +02:00
Okada Haruki
c1cc5ca767
Fix typo
2019-09-17 06:18:01 +09:00
antirez
f01f0c02d1
RESP3: convert RESP3 null as Lua nil. Implement RESP3->Lua bools.
2019-09-16 18:36:16 +02:00
antirez
6931004969
RESP3: change behavior of Lua returning true/false for RESP3.
...
Here we introduce a change in the way we convert values from Lua to
Redis when RESP3 is selected: this is possible without breaking the fact
we can return directly what a command returned, because there is no
Redis command in RESP2 that returns true or false to Lua, so the
conversion in the case of RESP2 is totally arbitrary. When a script is
written selecting RESP3 from Lua, it totally makes sense to change such
behavior and return RESP3 true/false when Lua true/false is returned.
2019-09-16 18:18:17 +02:00
antirez
2cc4d0286c
RESP3: implement new NULL representation parsing in Lua.
2019-09-16 17:49:47 +02:00
antirez
ca81d49006
RESP3: handle set Lua -> Redis conversion.
2019-09-16 12:19:19 +02:00
antirez
c792504fab
RESP3: handle map Lua -> Redis conversion.
2019-09-16 12:15:39 +02:00
antirez
dad38c19c8
RESP3: report set/map as nested tables to Lua.
2019-09-16 11:49:42 +02:00
filipecosta90
4a30a26f8f
[add] improved performance of RM_ReplyWithSimpleString and RM_ReplyWithError by making usage addReplyProto instead of addReplySds
2019-09-15 21:16:30 +01:00
David Carlier
819a661be5
Getting region date per process in Darwin
2019-09-15 14:05:00 +01:00
antirez
888efc1b36
RESP3: Lua parsing should depend on lua client, not lua caller.
...
We want all the scripts to run in RESP2 mode by default. It's up to the
caller to switch to V3 using redis.setresp() if it is really needed.
This way most scripts written for past Redis versions will continue to
work with Redis >= 6 even if the client is in RESP3 mode.
2019-09-13 19:38:39 +02:00
antirez
26b6c697d3
RESP3: Lua debugger support for printing sets and maps.
2019-09-13 19:19:10 +02:00
antirez
93c52ff5ff
RESP3: implement lua.setresp().
2019-09-13 19:01:39 +02:00
antirez
b170a01fa7
ACL: store hashed passwords in memory.
...
Note that this breaks API compatibility with Redis < 6:
CONFIG GET requirepass
Will no longer return a cleartext password as well, but the SHA256 hash
of the password set.
2019-09-12 12:54:57 +02:00
antirez
ae5054b476
ACL: SHA256 based password hashing function implemented.
2019-09-12 12:33:22 +02:00
antirez
9d2ecf6be3
ACL: add slightly modified version of sha256.c for password hashing.
...
memory.h include removed, types substituted with stdint types.
2019-09-12 12:21:37 +02:00
antirez
f4d37173fe
ACL: protect MULTI/EXEC transactions after rules change.
2019-09-11 19:42:10 +02:00
antirez
ae8cab3296
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-09-06 12:24:40 +02:00
antirez
a092f20d87
handleClientsBlockedOnKeys() refactoring.
2019-09-06 12:24:26 +02:00
suntiawnen
781f3fd8be
fix rdb function rdbLoadIntegerObject comment
2019-09-06 12:01:44 +08:00
Doug Nelson
cc8f06ece9
Typo fixes in API documentation
2019-09-05 16:25:06 +01:00
Salvatore Sanfilippo
86aade9a02
Merge pull request #6364 from oranagra/fix_module_aux_when
...
Fix to module aux data rdb format for backwards compatibility with old check-rdb
2019-09-05 13:30:26 +02:00
Oran Agra
3bfcae247a
Fix to module aux data rdb format for backwards compatibility with old check-rdb
...
When implementing the code that saves and loads these aux fields we used rdb
format that was added for that in redis 5.0, but then we added the 'when' field
which meant that the old redis-check-rdb won't be able to skip these.
this fix adds an opcode as if that 'when' is part of the module data.
2019-09-05 14:11:37 +03:00
antirez
89ad0ca566
Fix handleClientsBlockedOnKeys() names in comments.
2019-09-05 13:05:57 +02:00
antirez
12c56a8e75
redis-cli: always report server errors on read errors.
...
Before this commit we may have not consumer buffers when a read error is
encountered. Such buffers may contain errors that are important clues
for the user: for instance a protocol error in the payload we send in
pipe mode will cause the server to abort the connection. If the user
does not get the protocol error, debugging what is happening can be a
nightmare.
This commit fixes issue #3756 .
2019-09-04 17:55:46 +02:00
antirez
f7090f43ad
AOF: be future-proof and close the file pointer.
...
Currently useless but we release the fake client, so better to do a full
cleanup. Thanks to @TomMD reporting this in #6353 .
2019-09-04 17:20:37 +02:00
zhudacai 00228490
66a5c1cd7e
The aarch64 architecture is support normal memory unaligned accesses,
...
so add the UNALIGNED_LE_CPU to the aarch64 .
2019-09-04 12:14:25 +00:00
antirez
b2e10131c0
Rio: fix flag name, function is never used btw.
...
Thanks to @tnclong for reporting the problem.
2019-09-04 13:01:07 +02:00
antirez
06d490342f
RESP3: fix cases of NULL reported instead of empty aggregate.
2019-09-02 12:50:47 +02:00
antirez
b12ccc840e
Cluster: abort loading nodes data if vars arguments are unbalanced.
...
See for reference PR #6337 . Thanks to @git-hulk for spotting this.
2019-09-02 11:41:20 +02:00
antirez
e57067b677
More strict checks and better comments in flushSlaveOutputBuffers().
...
Related to #6296 .
2019-08-31 14:46:24 +02:00
antirez
2303ba1441
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-08-31 14:41:28 +02:00
antirez
ca5ccc58c5
Improve comment in flushSlavesOutputBuffers().
2019-08-31 14:40:09 +02:00
Salvatore Sanfilippo
16435e02bf
Merge pull request #6296 from soloestoy/flushSlavesOutputBuffers-bugfix
...
networking: flushSlavesOutputBuffers bugfix
2019-08-31 14:39:33 +02:00
zhudacai 00228490
d7c25806c0
src/debug.c do not support aarch64 dump utcontext, so add the context
...
of aarch64.
The content comes from the definition of the sigcontext and tested on
my aarch64 server.
sigcontext defined at the linux kernel code:
arch/arm64/include/uapi/asm/sigcontext.h
2019-08-31 07:47:11 +00:00
Oran Agra
78bbb9b58d
Modlue fork is killed when the parent exists
2019-08-25 10:11:48 +03:00
Oran Agra
61853ad8de
Module INFO, support default section for simple modules
2019-08-18 10:01:57 +03:00
Oran Agra
1d6e5dc4dc
Module INFO, add support for dict fields, rename API to have common prefix
2019-08-18 09:41:45 +03:00
Oran Agra
1026d2caf8
fix error handling on config parsing of repl-diskless-load
2019-08-08 14:53:36 +03:00
Oran Agra
0a97149dec
RM_ReplyWithCString was missing registration
2019-08-07 13:06:11 +03:00
Diego Bendersky
b27f388344
pass len to alloc in clusterManagerMigrateKeysInReply
2019-08-05 17:35:50 -03:00
antirez
0e9b5adbd3
Replication: clarify why repl_put_online_on_ack exists at all.
2019-08-05 17:38:15 +02:00
zhaozhao.zz
d3f7eb0c87
networking: flushSlavesOutputBuffers bugfix
2019-08-02 17:17:19 +08:00
antirez
583933e2d6
Fix regression causing EXEC to appear in the slow log.
...
This was recently introduced with PR #6266 .
2019-07-31 19:05:20 +02:00
antirez
2a8a63af44
Make EMBSTR case of #6261 more obvious.
2019-07-31 12:03:10 +02:00
Salvatore Sanfilippo
f899c31fbc
Merge pull request #6261 from chendq8/robj
...
make memory usage consistent of robj with OBJ_ENCODING_INT
2019-07-31 11:54:11 +02:00
Salvatore Sanfilippo
fc5c2052b5
Merge pull request #6266 from madolson/dev-unstable-hide-auth-and-hello
...
Hide HELLO and AUTH from slowlog and monitor
2019-07-31 11:12:46 +02:00
antirez
e1b13b4d39
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-31 10:37:17 +02:00
antirez
b2079cb508
HyperLogLog: fix the fix of a corruption bug.
2019-07-31 10:36:23 +02:00
Salvatore Sanfilippo
f0c10d4360
Merge pull request #6277 from devnexen/fbsd_get_rss
...
Updating resident memory request impl on FreeBSD.
2019-07-30 18:24:38 +02:00
Oran Agra
40c4183196
Log message when modules prevent diskless-load
2019-07-30 16:32:58 +03:00
Oran Agra
e5187ad2ae
Merge remote-tracking branch 'oss/unstable' into module_rdb_load_errors
2019-07-30 15:14:08 +03:00
Oran Agra
4339706e07
Avoid diskelss-load if modules did not declare they handle read errors
2019-07-30 15:11:57 +03:00
Salvatore Sanfilippo
f42846e8c7
Merge pull request #6264 from oranagra/modules_api_aux_rdb
...
Implement module api for aux data in rdb
2019-07-30 11:50:44 +02:00
Salvatore Sanfilippo
ce72cac0f8
Merge pull request #6269 from wubostc/patch-1
...
Reduce the calling stack
2019-07-30 11:41:48 +02:00
antirez
e4b3c8bbc3
emptyDbGeneric(): call signalFlushDb() before deleting the keys.
...
This was broken since a refactoring performed recently by myself.
2019-07-30 11:20:54 +02:00
John Sully
d659654f53
Fix HLL corruption bug
2019-07-29 18:11:52 -04:00
David Carlier
f1c6c658ac
Updating resident memory request impl on FreeBSD.
2019-07-28 14:33:57 +01:00
Salvatore Sanfilippo
5591a14c0a
Merge pull request #6248 from oranagra/module-log
...
RM_Log - add support for logging without a context or context without module
2019-07-25 18:48:46 +02:00
Oran Agra
e91d9a6fff
Extend modules API to allow modules report to redis INFO
...
this implements #6012
2019-07-24 12:58:15 +03:00
antirez
fde5e737dc
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-24 11:45:19 +02:00
antirez
32efd9adf8
Client side caching: config option for table fill rate.
2019-07-24 11:35:01 +02:00
wubostc
48f4cfb601
Reduce the calling stack
2019-07-24 16:22:26 +08:00
Salvatore Sanfilippo
dbee7ca007
Merge pull request #6265 from madolson/dev-unstable-remove-create-object
...
Removed unnecessary creation of Redis objects
2019-07-23 17:05:10 +02:00
antirez
c98e7717bb
Client side caching: show tracking slots usage in INFO.
2019-07-23 11:02:14 +02:00
antirez
9268493e8d
Client side caching: implement full slot limit function.
2019-07-23 10:57:22 +02:00
zhaozhao.zz
9012e587ca
Client side caching: do not reclaim tracking table if it's empty
2019-07-23 15:25:00 +08:00
Madelyn Olson
7d21754710
Hide HELLO and AUTH from slowlog and monitor
2019-07-22 22:53:15 -07:00
Madelyn Olson
8fe173452a
Removed unecessary creation of Redis objects
2019-07-22 22:52:16 -07:00
Oran Agra
3b6aeea44c
Implement module api for aux data in rdb
...
Other changes:
* fix memory leak in error handling of rdb loading of type OBJ_MODULE
2019-07-22 21:15:33 +03:00
antirez
c41f94d2a3
Client side caching: split invalidation into key / slot.
2019-07-22 18:59:53 +02:00
antirez
09c06698e9
Client side caching: redis-cli ability to enable tracking.
...
This is extremely useful in order to simulate an high load of requests
about different keys, and force Redis to track a lot of informations
about several clients, to simulate real world workloads.
2019-07-22 18:45:47 +02:00
antirez
436d02dd7b
Move signalFlushedDb() into a better place.
...
Now that the call also invalidates client side caching slots, it is
important that after an internal flush operation we both send the
notifications to the clients and, at the same time, are able to reclaim
the memory of the tracking table. This may even fix a few edge cases
related to MULTI/EXEC + WATCH during resync, not sure, but in general
looks more correct.
2019-07-22 12:37:47 +02:00
antirez
7d3992a80a
Client side caching: reclaim the tracking table on FLUSHALL.
2019-07-22 12:33:49 +02:00
antirez
842b44dc46
Client side caching: call the invalidation functions always.
...
Otherwise what happens is that the tracking table will never get garbage
collected if there are no longer clients with tracking enabled.
Now the invalidation function immediately checks if there is any table
allocated, otherwise it returns ASAP, so the overhead when the feature
is not used should be near zero.
2019-07-22 12:29:54 +02:00
antirez
f850201c64
Client side caching: don't hash the key if not needed.
2019-07-22 12:10:51 +02:00
antirez
e00442eb13
Clinet side caching: take count of used caching slots.
2019-07-22 11:47:44 +02:00
chendianqiang
004c26ec28
make memory usage consistent of robj with OBJ_ENCODING_INT
2019-07-22 17:45:30 +08:00
Oran Agra
d7d028a7a7
Allow modules to handle RDB loading errors.
...
This is especially needed in diskless loading, were a short read could have
caused redis to exit. now the module can handle the error and return to the
caller gracefully.
this fixes #5326
2019-07-21 18:19:32 +03:00
John Sully
ff682d7902
Modules must have execute permissions to load
2019-07-19 15:28:31 -04:00
antirez
bc5cb168f5
RDB: fix MODULE_AUX loading by continuing to next opcode.
...
Thanks to @JohnSully for noticing this problem.
2019-07-19 11:12:46 +02:00
John Sully
70534846d1
Modules must have execute permissions to load
2019-07-19 01:37:34 -04:00
antirez
5f450e4928
RDB: make sure to abort on LZF encoding error.
2019-07-18 18:59:38 +02:00
antirez
bd0f06c18c
RDB: handle encoding errors with rdbExitReportCorruptRDB().
...
Without such change, the diskless replicas, when loading RDB files from
the socket will not abort when a broken RDB file gets loaded. This is
potentially unsafe, because right now Redis is not able to guarantee
that encoding errors are safe from the POV of memory corruptions (for
instance the LZF library may not be safe against untrusted data?) so
better to abort when the RDB file we are going to load is corrupted.
Instead I/O errors are still returned to the caller without aborting,
so that in case of short read the diskless replica can try again.
2019-07-18 18:51:45 +02:00
Salvatore Sanfilippo
41ed85bd26
Merge pull request #6252 from soloestoy/tracking-flushdb
...
Tracking flushdb
2019-07-18 16:41:37 +02:00
antirez
947319cadd
RDB: update rdbLoadRio comment about EOF condition.
2019-07-18 12:37:55 +02:00
zhaozhao.zz
f59119aad6
Client side caching: filter clients untracking
2019-07-18 16:46:19 +08:00
antirez
42b6305964
RDB: try to make error handling code more readable.
2019-07-17 17:30:02 +02:00
antirez
6b72b04a37
Rio: when in error condition avoid doing the operation.
2019-07-17 16:46:22 +02:00
antirez
5189db3d81
RDB: modify rdbReportError() var name for clarity.
2019-07-17 16:46:22 +02:00
antirez
48d91cf4cc
Rio: remember read/write error conditions.
2019-07-17 16:46:22 +02:00
Oran Agra
c56b4ddc6f
prevent diskless replica from terminating on short read
...
now that replica can read rdb directly from the socket, it should avoid exiting
on short read and instead try to re-sync.
this commit tries to have minimal effects on non-diskless rdb reading.
and includes a test that tries to trigger this scenario on various read cases.
2019-07-17 16:46:22 +02:00
Oran Agra
56258c6b7d
Module API for Forking
...
* create module API for forking child processes.
* refactor duplicate code around creating and tracking forks by AOF and RDB.
* child processes listen to SIGUSR1 and dies exitFromChild in order to
eliminate a valgrind warning of unhandled signal.
* note that BGSAVE error reply has changed.
valgrind error is:
Process terminating with default action of signal 10 (SIGUSR1)
2019-07-17 16:40:24 +03:00
zhaozhao.zz
6191ea90a1
Client side caching: implement trackingInvalidateKeysOnFlush()
2019-07-17 20:33:52 +08:00
Oran Agra
6e07fac405
RM_Log - add support for logging without a context or context without module
...
for instance detached thread safe contexts, or various callbacks that don't
provide a context.
2019-07-17 15:08:18 +03:00
antirez
241d18d954
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-17 12:26:38 +02:00
Salvatore Sanfilippo
3f1c84751a
Merge pull request #6196 from AngusP/resp3
...
[RESP3, Minor] in networking.c double representation for -infiinity leaves out comma
2019-07-12 13:08:46 +02:00
Salvatore Sanfilippo
6100a82a3a
Merge pull request #5738 from bmerry/fix-swapdb-int-overflow
...
Make dbSwapDatabases take args as long
2019-07-12 12:36:33 +02:00
antirez
54c4e7f86c
Vertically compact code in aofWrite().
2019-07-12 12:18:33 +02:00
antirez
2a99f199bc
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-10 19:48:44 +02:00
antirez
dad0e916ff
Client side caching: filter clients no longer there.
2019-07-10 19:46:46 +02:00
Salvatore Sanfilippo
7567323071
Merge pull request #6198 from oranagra/skiplist-mem-usage
...
missing per-skiplist overheads in MEMORY USAGE
2019-07-10 19:43:24 +02:00
antirez
c7aaf8db4d
Client side caching: implement CLIENT GETREDIR.
...
This subcommand may simplify the writing of Redis client libraries
using the tracking feature and/or improve observability and debugging
capabilities.
2019-07-10 18:17:10 +02:00
antirez
923e4fb312
Client side caching: add tracking clients in INFO.
2019-07-10 18:08:31 +02:00
antirez
7c9f6ebc8f
Diskless replica: fix disklessLoadRestoreBackups() bug.
2019-07-10 12:36:26 +02:00
antirez
3bbb9a1413
Diskless replica: refactoring of DBs backups.
2019-07-10 11:42:26 +02:00
antirez
3300e98ff0
Diskless replica: fix mispelled var name.
2019-07-10 09:34:21 +02:00
antirez
dfcbeaf115
Diskless replica: a few aesthetic changes to rio.c
2019-07-08 18:39:59 +02:00
antirez
81b18fa3a0
Diskless replica: a few aesthetic changes to replication.c.
2019-07-08 18:32:47 +02:00
Oran Agra
2de544cfcc
diskless replication on slave side (don't store rdb to file), plus some other related fixes
...
The implementation of the diskless replication was currently diskless only on the master side.
The slave side was still storing the received rdb file to the disk before loading it back in and parsing it.
This commit adds two modes to load rdb directly from socket:
1) when-empty
2) using "swapdb"
the third mode of using diskless slave by flushdb is risky and currently not included.
other changes:
--------------
distinguish between aof configuration and state so that we can re-enable aof only when sync eventually
succeeds (and not when exiting from readSyncBulkPayload after a failed attempt)
also a CONFIG GET and INFO during rdb loading would have lied
When loading rdb from the network, don't kill the server on short read (that can be a network error)
Fix rdb check when performed on preamble AOF
tests:
run replication tests for diskless slave too
make replication test a bit more aggressive
Add test for diskless load swapdb
2019-07-08 15:37:48 +03:00
Salvatore Sanfilippo
722446510f
Merge pull request #6116 from AngusP/scan-types
...
SCAN: New Feature `SCAN cursor [TYPE type]` modifier suggested in issue #6107
2019-07-08 12:53:34 +02:00
Angus Pearson
6eb52e200c
Change typeNameCanonicalize -> getObjectTypeName, and other style changes
2019-07-08 11:04:37 +01:00
Guy Korland
2d07883cab
fix build tracking.c should be tracking.o
...
thanks to @rafie
2019-07-07 18:28:15 +03:00
Salvatore Sanfilippo
e8ae07aabf
Merge pull request #6162 from madolson/dev-unstable-config-refactor
...
Refactored yesno configs so there is less duplication
2019-07-07 17:13:11 +02:00
Salvatore Sanfilippo
677e95e2f5
Merge pull request #6161 from swilly22/redismodule-loading-ctx-flag
...
Extend REDISMODULE_CTX_FLAGS to indicate if redis is loading
2019-07-07 17:01:29 +02:00
Salvatore Sanfilippo
a714004738
Merge pull request #6022 from itamarhaber/RedisModule_ReplyWithCString
...
Adds RedisModule_ReplyWithCString
2019-07-05 20:25:18 +02:00
antirez
6b29f2d83d
Client side caching: RESP2 support.
2019-07-05 12:24:28 +02:00
antirez
f099def733
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-07-04 18:34:53 +02:00
Oran Agra
41c5ebcab6
missing per-skiplist overheads in MEMORY USAGE
...
these had severe impact for small zsets, for instance ones with just one
element that is longer than 64 (causing it not to be ziplist encoded)
2019-07-04 15:20:49 +03:00
antirez
3e43aed1ac
Client side caching: fix invalidate message len and content.
2019-07-04 14:07:23 +02:00
antirez
46edb55de9
Client side caching: implement trackingInvalidateKey().
2019-07-03 19:16:20 +02:00
antirez
506764b3f8
Client side caching: hook inside call() for tracking.
2019-07-03 12:42:16 +02:00
antirez
db16a861a1
Client side caching: CLIENT TRACKING subcommand.
2019-07-03 11:58:20 +02:00
Angus Pearson
593f6656c1
RESP3 double representation for -infinity is ,-inf\r\n
, not -inf\r\n
2019-07-02 14:28:48 +01:00
antirez
c29f3bcf2e
Client side caching: enable tracking mode.
2019-06-30 06:19:08 -04:00
antirez
45d64f229e
Client side caching: fields and flags for tracking mode.
2019-06-29 20:08:41 -04:00
antirez
a28d7918d7
Client side caching: add new file and description.
2019-06-29 09:09:38 -04:00
Madelyn Olson
dd51fc5a4a
Refactored yesno configs so there was less duplication
2019-06-13 12:18:25 -07:00
Angus Pearson
38cd5fd9f6
Spelling cannonical -> canonical
2019-06-13 17:49:33 +01:00
swilly22
f54d95e803
Extend REDISMODULE_CTX_FLAGS to indicate if redis is currently loading from either RDB or AOF
2019-06-12 15:37:19 +03:00
Angus Pearson
e2adea2188
Add char* typeNameCanonicalize(robj*) to remove duplicate code between SCAN and TYPE commands,
...
and to keep OBJ_* enum to string canonicalization in one place.
2019-06-10 17:41:44 +01:00
Salvatore Sanfilippo
0cabe0cfa7
Merge pull request #6149 from madolson/acl-spelling
...
Fixed some spelling issues in ACL codepath including a user facing error
2019-06-07 22:54:52 +02:00
Madelyn Olson
dd5f437871
Fixed some spelling issues in ACL codepath including user facing error
2019-06-07 13:25:22 -07:00
artix
d3ed53f11b
Redis Benchmark: prevent CONFIG failure from exiting program
2019-06-05 16:34:55 +02:00
Oran Agra
09f99c2a92
make redis purge jemalloc after flush, and enable background purging thread
...
jemalloc 5 doesn't immediately release memory back to the OS, instead there's a decaying
mechanism, which doesn't work when there's no traffic (no allocations).
this is most evident if there's no traffic after flushdb, the RSS will remain high.
1) enable jemalloc background purging
2) explicitly purge in flushdb
2019-06-02 15:33:14 +03:00
Yuan Zhou
412eb67d21
aof: fix assignment for aof_fsync_offset
...
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
2019-05-29 14:48:46 +08:00
Angus Pearson
bf963253ec
Implement SCAN cursor [TYPE type]
modifier suggested in issue #6107 .
...
Add tests to check basic functionality of this optional keyword, and also tested with
a module (redisgraph). Checked quickly with valgrind, no issues.
Copies name the type name canonicalisation code from `typeCommand`, perhaps this would
be better factored out to prevent the two diverging and both needing to be edited to
add new `OBJ_*` types, but this is a little fiddly with C strings.
The [redis-doc](https://github.com/antirez/redis-doc/blob/master/commands.json ) repo
will need to be updated with this new arg if accepted.
A quirk to be aware of here is that the GEO commands are backed by zsets not their own
type, so they're not distinguishable from other zsets.
Additionally, for sparse types this has the same behaviour as `MATCH` in that it may
return many empty results before giving something, even for large `COUNT`s.
2019-05-22 16:39:04 +01:00
zhaozhao.zz
1398fac3f1
Threaded IO: use main thread to handle read work
2019-05-21 11:42:10 +08:00
zhaozhao.zz
8b33975944
Threaded IO: use main thread to handle write work
2019-05-21 11:37:13 +08:00
antirez
074d24df1e
Narrow the effects of PR #6029 to the exact state.
...
CLIENT PAUSE may be used, in other contexts, for a long time making all
the slaves time out. Better for now to be more specific about what
should disable senidng PINGs.
An alternative to that would be to virtually refresh the slave
interactions when clients are paused, however for now I went for this
more conservative solution.
2019-05-15 12:16:43 +02:00
Salvatore Sanfilippo
caf74e507e
Merge pull request #6029 from chendq8/clientpause
...
fix cluster failover time out
2019-05-15 12:03:19 +02:00
antirez
9724ca4e22
Make comment in getClientOutputBufferMemoryUsage() describing the present.
2019-05-13 17:30:06 +02:00
Salvatore Sanfilippo
e633254ccf
Merge pull request #6053 from soloestoy/enhance-aof-fsync-everysec
...
aof: enhance AOF_FSYNC_EVERYSEC, more details in #5985
2019-05-10 18:06:40 +02:00
Salvatore Sanfilippo
34f6d94701
Merge pull request #6074 from trevor211/fixActiveExpire
...
Do not active expire keys in the background when the switch is off.
2019-05-10 12:39:35 +02:00
Salvatore Sanfilippo
1e9b8d853d
Merge pull request #6080 from soloestoy/fix-makefile
...
Makefile: 1TD -> STD
2019-05-10 12:37:07 +02:00
Salvatore Sanfilippo
2903c56bda
Merge pull request #6073 from yossigo/fix/blocked-client-id
...
Preserve client->id for blocked clients.
2019-05-10 12:32:47 +02:00
Salvatore Sanfilippo
6b490e33c4
Merge pull request #6081 from Happy4Code/mod_comments
...
change the comments there may have a mis type
2019-05-10 12:28:12 +02:00
Salvatore Sanfilippo
891f4a38f6
Merge pull request #6077 from zltl/patch-7
...
delete sdsTest() from REDIS_TEST in server.c to fix build failed
2019-05-10 12:27:47 +02:00
Salvatore Sanfilippo
433f763814
Merge pull request #6083 from tangquanawj/fix-inappropriate-add-operation-code
...
fix-inappropriate-add-operation-code
2019-05-10 12:25:18 +02:00
Salvatore Sanfilippo
402b0d0bd1
Merge pull request #6086 from yongman/fix-uint64-in-defrag
...
Fix uint64_t hash value in active defrag
2019-05-10 12:23:59 +02:00
Angus Pearson
a1fb0be1d7
Enlarge error buffer in redis-check-aof.c to remove compiler warning of output truncation through snprintf format string
2019-05-08 12:13:45 +01:00
yongman
fb4ee7f0c5
Fix uint64_t hash value in active defrag
2019-05-08 16:29:16 +08:00
唐权
842dd85b26
Update ziplist.c
...
Hi, @antirez
In the code, to get the size of ziplist, "unsigned int bytes = ZIPLIST_HEADER_SIZE+1;" is correct,
but why not make it more readable and easy to understand
2019-05-08 12:53:56 +08:00
zhaozhao.zz
48d591a010
fix memory leak when rewrite config file
2019-05-07 15:59:16 +08:00
stan011
d9d3d3065b
change the comments there may have a mis type
2019-05-07 14:22:40 +08:00
zhaozhao.zz
340a723b87
Makefile: 1TD -> STD
2019-05-07 13:35:27 +08:00
antirez
3d053dbb6d
Threaded IO: handleClientsWithPendingReadsUsingThreads top comment.
2019-05-06 18:02:51 +02:00
antirez
5baeb14cf3
Threaded IO: configuration directive for turning on/off reads.
2019-05-06 18:02:51 +02:00
antirez
1c0c436757
Threaded IO: ability to disable reads from threaded path.
2019-05-06 18:02:51 +02:00
antirez
90d720e7a5
Threaded IO: put fflush() inside tio_debug conditional.
2019-05-06 18:02:51 +02:00
antirez
6ab6a97fe6
Threaded IO: parsing WIP 2: refactoring to parse from thread.
2019-05-06 18:02:51 +02:00
antirez
647a66ebba
Threaded IO: parsing WIP 1: set current_client in a better scoped way.
2019-05-06 18:02:51 +02:00
antirez
463ccf8664
Threaded IO: logging should be safe in I/O threads.
...
Potentially it is possible that we get interleaved writes, even if
serverLog() makes sure to write into a buffer and then use printf(), so
even this should be ok. However in general POSIX guarantees that writing
to the same file pointer object from multiple threads is safe. Anyway
currently we *reopen* the file at each call, but for the standard output
logging.
The logging functions actually also access global configuration while
performing the log (for instance in order to check the log level, the
log filename and so forth), however dunring the I/O threads execution
we cannot alter such shared state in any way.
2019-05-06 18:02:51 +02:00
antirez
8d7d2be24f
Threaded IO: process read queue before stopping threads.
2019-05-06 18:02:51 +02:00
antirez
63a0ffd36a
Threaded IO: read side WIP 3.
2019-05-06 18:02:51 +02:00
antirez
a2245f8ff1
Threaded IO: read side WIP 2.
2019-05-06 18:02:51 +02:00
antirez
dd5b105c73
Threaded IO: read side WIP.
2019-05-06 18:02:51 +02:00
antirez
74591fb5bd
Threaded IO: hide more debugging printfs under conditional.
2019-05-06 18:02:51 +02:00
antirez
9814b2a5f3
Threaded IO: make num of I/O threads configurable.
2019-05-06 18:02:51 +02:00
antirez
30091dc29f
Threaded IO: use main thread if num of threads is 1.
2019-05-06 18:02:51 +02:00
Ubuntu
9bf7f302a7
Threaded IO: stop threads when no longer needed + C11 in Makefile.
...
Now threads are stopped even when the connections drop immediately to
zero, not allowing the networking code to detect the condition and stop
the threads. serverCron() will handle that.
2019-05-06 18:02:51 +02:00
antirez
ea35a81c42
Threaded IO: 3rd version: use the mutex only to stop the thread.
2019-05-06 18:02:51 +02:00
antirez
6f4f36c0fb
Threaded IO: second attempt without signaling conditions.
2019-05-06 18:02:51 +02:00
antirez
a2dbd9bd97
Threaded IO: allow to disable debug printf.
2019-05-06 18:02:51 +02:00
antirez
f468e653b5
Threaded IO: implement handleClientsWithPendingWritesUsingThreads().
...
This is just an experiment for now, there are a couple of race
conditions, mostly harmless for the performance gain experiment that
this commit represents so far.
The general idea here is to take Redis single threaded and instead
fan-out on expansive kernel calls: write(2) in this case, but the same
concept could be easily implemented for read(2) and protcol parsing.
However just threading writes like in this commit, is enough to evaluate
if the approach is sounding.
2019-05-06 18:02:51 +02:00
liaotonglang
b1c7e3393d
delete sdsTest() from REDIS_TEST
...
sdsTest() defined in sds.c dit not match the call in server.c.
remove it from REDIS_TEST, since test-sds defined in Makefile.
2019-05-06 19:24:00 +08:00
WuYunlong
1c0913dc4e
Do not active expire keys in the background when the switch is off.
2019-05-06 11:46:07 +08:00
Yossi Gottlieb
9f3679880a
Preserve client->id for blocked clients.
2019-05-05 20:32:53 +03:00
Salvatore Sanfilippo
0a6090bfd8
Merge pull request #6051 from vattezhang/unstable
...
fix: benchmark auth fails when server have requirepass
2019-05-02 09:48:02 +02:00
zhaozhao.zz
bcac165fab
aof: enhance AOF_FSYNC_EVERYSEC, more details in #5985
2019-04-29 14:38:28 +08:00
Salvatore Sanfilippo
843de8b786
Merge pull request #5971 from devnexen/unstable
...
build fix
2019-04-26 17:32:21 +02:00
Salvatore Sanfilippo
5ba908fa5f
Merge pull request #6002 from yongman/fix-memleak-in-bitfield
...
Fix memleak in bitfieldCommand
2019-04-26 17:31:42 +02:00
Salvatore Sanfilippo
5c5197fe4f
Merge pull request #6013 from rouzier/fix/stream_iterator_init
...
Fix stream interator start and end key initialize
2019-04-26 17:25:20 +02:00
vattezhang
4e38ced488
fix: benchmark auth fails when server have requirepass
2019-04-26 19:47:07 +08:00
vattezhang
bc36404c79
update
2019-04-26 18:50:51 +08:00
vattezhang
d3d96b041a
Merge github.com:antirez/redis into unstable
2019-04-26 18:47:11 +08:00
git-hulk
fa97ef34ca
FIX: core dump in redis-benchmark when the -r
is the last arg
2019-04-24 20:05:35 +08:00
chendianqiang
11f2c6b115
stop ping when client pause
2019-04-17 21:20:10 +08:00
Itamar Haber
52686f4866
Adds a "Modules" section to INFO
...
Fixes #6012 .
As long as "INFO is broken", this should be adequate IMO. Once we rework
`INFO`, perhaps into RESP3, this implementation should be revisited.
2019-04-16 22:16:12 +03:00
Itamar Haber
c184b32d4c
Uses addReplyBulkCString
...
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2019-04-16 17:38:33 +03:00
Itamar Haber
26d9d4ec2c
Adds RedisModule_ReplyWithCString
...
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2019-04-16 17:15:23 +03:00
James Rouzier
3ccdcbc088
Fix start and end key initialize
2019-04-11 12:19:02 -04:00
Salvatore Sanfilippo
d044e33c20
Merge pull request #5961 from yossigo/modules-tests
...
Modules tests
2019-04-11 07:56:23 -07:00
antirez
9e67691ffb
Aesthetic change to #5962 to conform to Redis style.
2019-04-10 18:53:35 +02:00
Salvatore Sanfilippo
6de5d25062
Merge pull request #5962 from oranagra/module_blocked_reply
...
slave corrupts replication stream when module blocked client uses large reply (or POSTPONED_ARRAY)
2019-04-10 09:41:36 -07:00
yongman
d490752d58
Fix memleak in bitfieldCommand
2019-04-09 09:24:22 +08:00
antirez
c24e32041b
ACL: Fix memory leak in ACLResetSubcommandsForCommand().
...
This commit fixes bug reported at #5998 . Thanks to @tomcat1102.
2019-04-08 18:08:37 +02:00
antirez
75648f99a5
Fix assert comparison in fetchClusterSlotsConfiguration().
2019-04-08 17:39:26 +02:00
David Carlier
4de88828d9
build fix
2019-03-28 06:38:16 +00:00
Oran Agra
acba2fc9b4
slave corrupts replication stream when module blocked client uses large reply (or POSTPONED_ARRAY)
...
when redis appends the blocked client reply list to the real client, it didn't
bother to check if it is in fact the master client. so a slave executing that
module command will send replies to the master, causing the master to send the
slave error responses, which will mess up the replication offset
(slave will advance it's replication offset, and the master does not)
2019-03-24 14:17:37 +02:00
Yossi Gottlieb
ec0b6bd2c3
Add runtest-moduleapi with commandfilter coverage.
2019-03-24 12:03:03 +02:00
Yossi Gottlieb
822a992f91
fix: missing initialization.
2019-03-24 12:00:33 +02:00
Salvatore Sanfilippo
5e8caca036
Merge pull request #5944 from yossigo/command-filtering
...
Command Filtering API
2019-03-22 17:43:49 +01:00
Salvatore Sanfilippo
fcac342955
Merge pull request #3830 from oranagra/diskless_capa_pr
...
several bugfixes to diskless replication
2019-03-22 17:41:40 +01:00
Salvatore Sanfilippo
122f42844a
Merge pull request #5945 from dvirsky/miss_notification
...
Added keyspace miss notifications support
2019-03-22 17:41:00 +01:00
Dvir Volk
040e52c77f
Renamed event name from "miss" to "keymiss"
2019-03-21 20:33:11 +02:00
Oran Agra
29b0a57695
diskless fork kept streaming RDB to a disconnected slave
2019-03-21 20:24:52 +02:00
Yossi Gottlieb
6c0a5fde3d
CommandFilter API: REDISMODULE_CMDFILTER_NOSELF.
...
Add a flag to automatically protect filters from being called
recursively by their own module.
2019-03-21 19:53:12 +02:00
Yossi Gottlieb
4ea3ed896b
CommandFilter API: fix UnregisterCommandFilter.
2019-03-21 19:45:41 +02:00
antirez
b3408e9a9b
More sensible name for function: restartAOFAfterSYNC().
...
Related to #3829 .
2019-03-21 17:21:29 +01:00
antirez
9588fd52ac
Mostly aesthetic changes to restartAOF().
...
See #3829 .
2019-03-21 17:18:24 +01:00
Salvatore Sanfilippo
544373ea66
Merge pull request #3829 from oranagra/restart_aof_pr
...
bugfix to restartAOF, exit will never happen
2019-03-21 17:15:55 +01:00
Yossi Gottlieb
e2626f69ec
CommandFilter API: Add unregister option.
...
A filter handle is returned and can be used to unregister a filter. In
the future it can also be used to further configure or manipulate the
filter.
Filters are now automatically unregistered when a module unloads.
2019-03-21 14:44:49 +02:00
Salvatore Sanfilippo
d75c36ee48
Merge pull request #5390 from oranagra/lookup_key_write
...
change SORT and SPOP to use lookupKeyWrite rather than lookupKeyRead
2019-03-21 13:39:38 +01:00
antirez
9dabbd1ab0
Alter coding style in #4696 to conform to Redis code base.
2019-03-21 12:18:55 +01:00
Salvatore Sanfilippo
5c47e2e964
Merge pull request #4696 from oranagra/zrealloc_fix
...
Fix zrealloc to behave similarly to je_realloc when size is 0
2019-03-21 12:18:04 +01:00
Salvatore Sanfilippo
5c21eca66e
Merge pull request #5243 from oranagra/sigterm_log
...
Add log when server dies of SIGTERM during loading
2019-03-21 11:54:09 +01:00
Salvatore Sanfilippo
ce518cea79
Merge pull request #5391 from oranagra/touch_flags
...
getKeysFromCommand for TOUCH only extracted the first key.
2019-03-21 11:53:27 +01:00
Salvatore Sanfilippo
684b140a13
Merge pull request #3650 from yossigo/key_name_from_module_io
...
Add RedisModule_GetKeyNameFromIO()
2019-03-21 11:49:25 +01:00
Dvir Volk
bc269c85e1
remove extra linebreak
2019-03-21 12:48:37 +02:00
Dvir Volk
4a0ee5c6ac
Added missing REDISMODULE_NOTIFY_KEY_MISS flag to REDISMODULE_NOTIFY_ALL
2019-03-21 12:47:51 +02:00
Dvir Volk
99c2fe0bcf
added special flag for keyspace miss notifications
2019-03-21 11:47:14 +02:00
Oran Agra
b2e03f8329
diskless replication - notify slave when rdb transfer failed
...
in diskless replication - master was not notifing the slave that rdb transfer
terminated on error, and lets slave wait for replication timeout
2019-03-20 17:46:19 +02:00
oranagra
c9e2900efc
bugfix to restartAOF, exit will never happen since retry will get negative.
...
also reduce an excess sleep
2019-03-20 17:20:07 +02:00
Oran Agra
747174388f
change SORT and SPOP to use lookupKeyWrite rather than lookupKeyRead
...
like in SUNIONSTORE etc, commands that perform writes are expected to open
all keys, even input keys, with lookupKeyWrite
2019-03-20 17:06:22 +02:00
Oran Agra
385f6190a3
getKeysFromCommand for TOUCH only extracted the first key.
...
also, airty for COMMAND command was wrong.
2019-03-20 17:00:39 +02:00
Yossi Gottlieb
dd8b4be46b
CommandFilter API: Extend documentation.
2019-03-19 19:48:47 +02:00
Dvir Volk
8620a434a0
Added keyspace miss notifications support
2019-03-19 13:11:37 +02:00
Yossi Gottlieb
a9a6a894e8
CommandFilter API: hellofilter and tests.
2019-03-18 23:07:28 +02:00
Yossi Gottlieb
325fc1cb2e
CommandFilter API: Support Lua and RM_call() flows.
2019-03-18 23:06:38 +02:00
Yossi Gottlieb
2a5aeef79f
CommandFilter API: More cleanup.
2019-03-18 23:05:52 +02:00
Yossi Gottlieb
6711132083
Add command filtering argument handling API.
2019-03-18 18:36:46 +02:00
Yossi Gottlieb
c3e187190b
Initial command filter experiment.
2019-03-18 13:50:34 +02:00
antirez
14b17c3615
replicaofCommand() refactoring: stay into 80 cols.
2019-03-18 11:34:40 +01:00
antirez
b78ac354f4
redis-check-aof: fix potential overflow.
...
Bug signaled by @vattezhang in PR #5940 but fixed differently.
2019-03-18 11:16:23 +01:00
antirez
8ea906a3e8
HyperLogLog: fix comment in hllCount().
2019-03-16 09:15:57 +01:00
antirez
e216ceaf0e
HyperLogLog: handle wrong offset in the base case.
2019-03-15 17:16:06 +01:00
antirez
a4b90be9fc
HyperLogLog: enlarge reghisto variable for safety.
2019-03-15 17:10:16 +01:00
John Sully
9f13b2bd49
Fix hyperloglog corruption
2019-03-15 13:13:01 +01:00
Yossi Gottlieb
a88264d934
Add RedisModule_GetKeyNameFromIO().
2019-03-15 10:23:27 +02:00
antirez
74d6af8f80
Fix ZPOP return type when COUNT=0. Related to #5799 .
2019-03-14 17:51:20 +01:00
antirez
052e03495f
Fix objectSetLRUOrLFU() when LFU underflows.
2019-03-14 17:06:59 +01:00
Yossi Gottlieb
68fd59056b
Add RedisModule_Assert() API call.
2019-03-14 15:00:31 +02:00
antirez
d292a51618
Improve comments after merging #5834 .
2019-03-14 12:47:36 +01:00
Salvatore Sanfilippo
0cce98f2f9
Merge pull request #5834 from guybe7/trim_module_sds
...
Trim SDS free space of retained module strings
2019-03-14 12:41:31 +01:00
Guy Benoish
b2eb48df89
Fix mismatching keyspace notification classes
2019-03-14 12:11:16 +01:00
Salvatore Sanfilippo
d3cd2e9a4a
Merge pull request #4742 from guybe7/zrangebylex_leak
...
Fix zlexrangespec mem-leak in genericZrangebylexCommand
2019-03-14 11:44:56 +01:00
Salvatore Sanfilippo
ec03f2db6b
Merge pull request #4904 from guybe7/memtoll_fix
...
Use memtoll() in 'CONFIG SET client-output-buffer-limit'
2019-03-14 11:43:55 +01:00
Salvatore Sanfilippo
190b63f993
Merge pull request #5812 from guybe7/fix_string2ld
...
Increase string2ld's buffer size (and fix HINCRBYFLOAT)
2019-03-14 11:35:01 +01:00
Salvatore Sanfilippo
01ace0b240
Merge pull request #5694 from guybe7/rm_log_args
...
Check server.verbosity in RM_LogRaw
2019-03-14 11:32:03 +01:00
Salvatore Sanfilippo
ebf7274192
Merge pull request #5799 from guybe7/zpop_zero_count
...
ZPOP should return an empty array if COUNT=0
2019-03-14 11:29:24 +01:00
antirez
6fd4af1f12
Merge branch 'sharedapi' into unstable
2019-03-14 11:24:48 +01:00
Jim Brunner
283d6cfd58
Addition of OnUnload function
2019-03-13 16:31:24 +00:00
vattezhang
ad223e2042
fix: fix benchmark cannot exit when NOAUTH err happens
2019-03-13 20:46:33 +08:00
vattezhang
31110f1caf
Merge branch 'unstable' of github.com:antirez/redis into unstable
2019-03-13 20:26:54 +08:00
Salvatore Sanfilippo
2537b2140f
Merge pull request #5787 from soloestoy/bugfix-xgroup-create-with-mkstream
...
Streams: checkType before XGROUP CREATE
2019-03-13 12:34:29 +01:00
Salvatore Sanfilippo
71499ab1c6
Merge pull request #5893 from itamarhaber/bzpop-arity
...
Fixes BZ[REV]POP's arity
2019-03-13 12:27:35 +01:00
Salvatore Sanfilippo
c49abcb794
Merge pull request #5898 from bsolomon1124/make-uninstall-tgt
...
Provide an uninstall target in Makefile
2019-03-13 12:26:43 +01:00
Salvatore Sanfilippo
372cbc37e7
Merge pull request #5884 from chendq8/cluster_failover
...
Reduce 100ms of cluster failover time on Manual mode
2019-03-13 12:22:23 +01:00
Salvatore Sanfilippo
84d6ce4f56
Merge pull request #5901 from artix75/bm_threads_cluster_dev
...
Redis Benchmark: add multithread idle mode
2019-03-13 12:18:32 +01:00
Salvatore Sanfilippo
53d1dc170c
Merge pull request #5921 from vattezhang/unstable_temp
...
fix: fix the if condition in clusterManagerShowClusterInfo
2019-03-13 12:18:08 +01:00
Salvatore Sanfilippo
3e648907ee
Merge pull request #5907 from spjwebster/xclaim-increment-delivery-count
...
Increment delivery counter on XCLAIM unless RETRYCOUNT specified
2019-03-13 11:55:46 +01:00
Salvatore Sanfilippo
610aff3251
Merge pull request #5924 from swilly22/redismodule-replicated-cmd-ctx-flag
...
document additional flag of RM_GetContextFlags
2019-03-13 11:52:07 +01:00
Salvatore Sanfilippo
02dab20026
Merge pull request #5894 from soloestoy/fix-rdb-warning
...
Fix compile some warnings
2019-03-13 11:47:48 +01:00
zhaozhao.zz
5a3d3d8be4
Fix compile warning in redis-cli.c
2019-03-13 16:54:34 +08:00
swilly22
89bf4db4fa
document additional flag of RM_GetContextFlags
2019-03-13 08:22:40 +02:00
Steve Webster
dfcb227b50
Only increment delivery count if JUSTID option is omitted
2019-03-12 20:27:53 +00:00
Salvatore Sanfilippo
e5acc5ef4f
Merge pull request #2774 from rouzier/blocking-list-commands-support-milliseconds-floating
...
Added millisecond resolution for blpop command && friends
2019-03-12 18:10:28 +01:00
Salvatore Sanfilippo
fba6e26e87
Merge pull request #5913 from wurongxin1987/unstable
...
fix a bufferoverflow bug
2019-03-12 17:25:21 +01:00
Salvatore Sanfilippo
b0bc602bb3
Merge pull request #5900 from artix75/cluster_backup
...
Cluster Manager: add importing/migrating nodes to backup info
2019-03-12 17:21:17 +01:00
Salvatore Sanfilippo
c02b414e9a
Merge pull request #5903 from soloestoy/sunionstore-lazyfree
...
try lazyfree temp set in SUNION & SDIFF
2019-03-12 17:20:52 +01:00
Salvatore Sanfilippo
45645aee7f
Merge pull request #5915 from swilly22/redismodule-replicated-cmd-ctx-flag
...
Extend REDISMODULE_CTX_FLAGS to indicate if command was sent by master
2019-03-12 17:17:19 +01:00
artix
5284d67e37
Redis Benchmark: fix possible usage of freed pointer (getRedisConfig)
...
Fixes issue #5912
2019-03-12 17:07:23 +01:00
Salvatore Sanfilippo
f63bbb4335
Merge pull request #5920 from chendq8/aofrewrite
...
remove temp-rewriteaof-xxx.aof when interrupt aofrewrite
2019-03-12 17:03:02 +01:00
vattezhang
bdc783b472
fix: fix the if condition in clusterManagerShowClusterInfo
2019-03-12 22:01:02 +08:00
vattezhang
270a111433
Merge branch 'unstable' of github.com:antirez/redis into unstable
2019-03-12 21:52:20 +08:00
chendianqiang
3621223fbb
remove temp-rewriteaof-xxx.aof when interrupt aofrewrite
2019-03-12 20:46:40 +08:00
swilly22
468860ae18
Extend REDISMODULE_CTX_FLAGS to indicate if command was sent by master
2019-03-11 10:02:19 +02:00
antirez
8a46d32be2
Make comment in #5911 stay inside 80 cols.
2019-03-10 09:48:06 +01:00
wurongxin
0298d3ad18
fix a bufferoverflow bug
2019-03-10 15:30:32 +08:00
John Sully
5b52bc738b
Replicas aren't allowed to run the replicaof command
2019-03-09 11:04:48 -05:00
Steve Webster
f1e7df4b7c
Increment delivery counter on XCLAIM unless RETRYCOUNT specified
...
The XCLAIM docs state the XCLAIM increments the delivery counter for
messages. This PR makes the code match the documentation - which seems
like the desired behaviour - whilst still allowing RETRYCOUNT to be
specified manually.
My understanding of the way streamPropagateXCLAIM() works is that this
change will safely propagate to replicas since retry count is pulled
directly from the streamNACK struct.
Fixes #5194
2019-03-08 17:09:11 +00:00
artix
8fadebfcca
Redis Benchmark: handle CLUSTERDOWN error
2019-03-08 11:05:02 +01:00
zhaozhao.zz
0137f1a2e3
try lazyfree temp set in SUNION & SDIFF
2019-03-07 22:08:04 +08:00
Yuan Zhou
feb4ebff45
server.h: remove dead code
...
hashTypeTryObjectEncoding() is not used now
2019-03-07 18:38:27 +08:00
artix
c389ad0d52
Redis Benchmark: fix key randomization with zero keyspacelen
2019-03-07 11:30:09 +01:00
artix
0e963e068d
Redis Benchmark: add multithread idle mode
...
Fix issue #5891
2019-03-07 11:14:07 +01:00
Brad Solomon
d5b24d31d7
Provide an uninstall target in Makefile
...
On `make uninstall`, removes:
- /usr/local/bin/redis-benchmark
- /usr/local/bin/redis-check-aof
- /usr/local/bin/redis-check-rdb
- /usr/local/bin/redis-cli
- /usr/local/bin/redis-sentinel
- /usr/local/bin/redis-server
(Only the src/ versions are removed in `make clean`)
2019-03-06 21:24:45 -05:00
artix
93e51239ce
Cluster Manager: add importing/migrating nodes to backup info
2019-03-06 16:38:36 +01:00
antirez
c33cb4938a
ACL: GENPASS subcommand.
2019-03-05 15:51:37 +01:00
zhaozhao.zz
fb81d1b3f8
Fix compile warning when log aux field
2019-03-04 19:43:00 +08:00
Itamar Haber
cd2743c0e6
Fixes BZ[REV]POP's arity
2019-03-03 23:10:45 +02:00
antirez
4edb1d7e10
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-03-02 21:19:21 +01:00
antirez
b9b140e2e2
Use the RDB info fields to provide info to users.
...
Fix #5790 and 5878.
Maybe a better option was to have such fields named with the first
byte '%' as those are info fields for specification, however now to
break it in a backward incompatible way is not an option, so let's use
the fields actively to provide info when sensible, otherwise ignore
when they are not really helpful.
2019-03-02 21:17:42 +01:00
Salvatore Sanfilippo
56cf413844
Merge pull request #5888 from artix75/cluster_backup
...
Cluster Manager (redis-cli): new "backup" command
2019-03-01 18:43:13 +01:00
artix
cb1be1ca81
Redis benchmark: update help with threads/cluster options
2019-03-01 18:15:44 +01:00
artix
a79b84ab7f
Redis benchmark: fix default hset test key
2019-03-01 17:53:14 +01:00
artix
4e78d5cd40
Redis Benchmark: update slots configuration after MOVED/ASK reply
2019-03-01 17:53:14 +01:00
artix
daaff484a6
Redis Benchmark: use atomic var for liveclients in 'createClient'
2019-03-01 17:53:14 +01:00
artix
834809cbb3
Redis Benchmark: display 'save' and 'appendonly' configuration
2019-03-01 17:53:14 +01:00
artix
649c947a0f
Redis benchmark: add {tag} to all default tests
2019-03-01 17:53:14 +01:00
artix
eb8b4feef7
Redis benchmark: fixed issued with config.hostip and code cleanup
2019-03-01 17:53:14 +01:00
artix
f95e01266e
Redis benchmark: configurable thread count in cluster mode and fixes
2019-03-01 17:53:14 +01:00
artix
5fd5799cf9
Various changes to redis-benchmark thread and cluster support
...
- MOVED or ASK replies are now handled in cluster mode.
- Only the first slot per node is used in cluster mode.
- Mutlithreading: reduced usage of mutexes in favor of atomic vars.
2019-03-01 17:53:14 +01:00
artix
434f761304
Redis benchmark: table-based slot hashtag placeholder replacement in cluster mode.
2019-03-01 17:53:14 +01:00
artix
dfd3cc5f78
Added basic support for clusters to redis-benchmark.
2019-03-01 17:53:14 +01:00
artix
563885d6d9
Thread support for redis-benchmark.
2019-03-01 17:53:14 +01:00
artix
e6156a39bd
Cluster Manager backup: remove --cluster-ignore-issue option
...
Always save the backup, even if there are problems in the cluster.
Just display a warn message and save "cluster_errors" property
inside the json.
2019-03-01 17:41:40 +01:00
artix
5e4dfc5c97
Cluster Manager: check cluster before backup
...
- Prevent cluster backup if cluster has issues and needs to be fixed.
This behaviour can be overridden by adding the option
'--cluster-ignore-issues'
2019-03-01 17:41:40 +01:00
artix
fb020ab090
Cluster Manager: 'backup' command
2019-03-01 17:41:40 +01:00
Salvatore Sanfilippo
b19e8b9a2c
Merge pull request #5875 from chendq8/partialsync
...
fix:Slave will do full sync when restart with SHUTDOWN SAVE on cluster mode
2019-03-01 17:29:19 +01:00
Salvatore Sanfilippo
80b8f9febc
Merge pull request #5873 from madolson/dev-unstable-minor-benchmark-precision-fix
...
Updated redis-benchmark so it doesn't show 1 value above 2ms
2019-03-01 16:55:09 +01:00
chendianqiang
a16da79228
optimize cluster failover
2019-03-01 15:28:21 +08:00
artix
6cd64c6a98
Cluster Manager: change join issue message
2019-02-28 16:57:57 +01:00
artix
23ad3faa50
Cluster Manager: change text alert clusterManagerWaitForClusterJoin
2019-02-28 16:57:57 +01:00
artix
2593fb9c0c
Cluster Manager: code cleanup
2019-02-28 16:57:57 +01:00
artix
6e9864fe0d
Cluster Manager: fix bus error in clusterManagerGetLinkStatus
2019-02-28 16:57:57 +01:00
Artix
121adc604b
Cluster Manager: fix memory leaks in clusterManagerGetDisconnectedLinks
2019-02-28 16:57:57 +01:00
artix
b013d2c4db
Cluster Manager: fix memory leak in clusterManagerWaitForClusterJoin
2019-02-28 16:57:57 +01:00
artix
3578aabc05
Cluster Manager: improve join issue checking
2019-02-28 16:57:57 +01:00
artix
2f499304aa
Cluster Manager: check for unreachable nodes during cluster join.
2019-02-28 16:57:57 +01:00
Salvatore Sanfilippo
9b0b0b3942
Merge pull request #3649 from Alkorin/fixTypo
...
Fix typo (unsupproted => unsupported) in error message
2019-02-27 22:33:22 +01:00
antirez
74fdfc3763
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-02-27 22:21:00 +01:00
antirez
68c75f248e
Gopher: reply in gopher mode only if argv[0] starts with slash.
...
As documented but never implemented.
2019-02-27 22:20:31 +01:00
Salvatore Sanfilippo
88b720672c
Merge pull request #5877 from vattezhang/unstable_sentinel_cmd
...
fix: fix sentinel command table and new flags format
2019-02-27 15:45:03 +01:00
vattezhang
9d632230b6
fix: fix sentinel command table and new flags format
2019-02-27 21:35:58 +08:00
vattezhang
0f0f787a37
fix: fix sentinel command table and new flags format
2019-02-27 21:20:00 +08:00
chendianqiang
8f7e97258b
fix replicationid will not change for server.masterhost==NULL in cluster mode when restart slave
2019-02-27 17:43:05 +08:00
antirez
f311a529be
Make PR #5872 more compatible with Redis coding style.
2019-02-27 09:34:50 +01:00
Salvatore Sanfilippo
0dcb003887
Merge pull request #5872 from madolson/dev-unstable-acl-setuser-fix
...
Updated acl setuser to be all or nothing
2019-02-27 09:31:57 +01:00
Madelyn Olson
b79efef5d6
Updated redis-benchmark so it doesn't show 1 value above 2ms at higher precision
2019-02-26 21:12:55 +00:00
Madelyn Olson
075a3b8893
Updated acl setuser to be all or nothing
2019-02-26 02:04:29 +00:00
antirez
a7780f716e
Merge branch 'gopher' into unstable
2019-02-25 18:16:58 +01:00
antirez
21f92e9e34
RESP3: SETNAME option for HELLO.
2019-02-25 16:56:58 +01:00
antirez
d4d15315a8
RESP3: AUTH option for HELLO.
2019-02-25 16:55:16 +01:00
antirez
5748439770
RESP3: refactoring of CLIENT SETNAME to implement SETNAME in HELLO.
2019-02-25 16:51:49 +01:00
antirez
3b420034bb
RESP3: allow HELLO to be used with version = 2.
2019-02-25 16:41:00 +01:00
antirez
36d1588215
ACL: authCommand() refactored into ACLAuthenticateUser().
2019-02-25 16:39:44 +01:00
antirez
87594a7470
ACL: move AUTH implementation in acl.c.
2019-02-25 16:33:38 +01:00
antirez
e247c9ac6a
Gopher: don't add the Lastline.
2019-02-24 21:38:15 +01:00
antirez
07473feaeb
ACL: fix ACLSaveToFile() return value.
2019-02-22 12:45:13 +01:00
antirez
2bea3929d0
ACL: less error prone error handling in ACLSaveToFile().
2019-02-22 12:43:08 +01:00
antirez
8b087dff34
Gopher: TODO list.
2019-02-22 11:17:39 +01:00
Salvatore Sanfilippo
2d3cad684c
Merge pull request #5850 from artix75/dev
...
Cluster Manager: fix replica assignment anti-affinity (create)
2019-02-22 10:28:31 +01:00
Salvatore Sanfilippo
21b8560e95
Merge pull request #5858 from madolson/dev-unstable-acl-deluser
...
Making deleting users better defined and update documentation
2019-02-22 10:27:37 +01:00
Salvatore Sanfilippo
3a7fd48e30
Merge pull request #5859 from madolson/dev-unstable-networking-cleanup
...
Refactored manual computation of object length
2019-02-22 10:25:17 +01:00
antirez
f94d711c83
Gopher: basic serving of string type.
2019-02-22 10:21:24 +01:00
antirez
e00b22e090
Gopher: initial request handling.
2019-02-21 23:13:08 +01:00
Madelyn Olson
9131fc56d6
Refactored manual computation of object length
2019-02-21 21:35:00 +00:00
Madelyn Olson
fdc4003d23
Making deleting users better defined and update documentation
2019-02-21 21:34:14 +00:00
antirez
3de9ccf190
Gopher: config setting to turn support on/off.
2019-02-21 17:28:53 +01:00
antirez
624568ae3f
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-02-21 17:03:19 +01:00
antirez
291e6bccf3
ACL: remove leak in ACLLoadFromFile().
2019-02-21 17:03:06 +01:00
antirez
91aecf0138
ACL: implement ACL SAVE.
2019-02-21 17:01:08 +01:00
antirez
484af7aa7a
ACL: ACLSaveToFile() implemented.
2019-02-21 16:50:28 +01:00
antirez
e4f3a2eecd
ACL: add LOAD subcommand to ACL HELP.
2019-02-21 16:31:33 +01:00
Salvatore Sanfilippo
967a98f570
Merge pull request #4811 from oranagra/cli-diskless-repl
...
Add redis-cli support for diskless replication (CAPA EOF)
2019-02-21 12:54:15 +01:00
Oran Agra
b6de51206e
redis-cli add support for --memkeys, fix --bigkeys for module types
...
* bigkeys used to fail on databases with module type keys
* new code adds more types when it discovers them, but has no way to know element count in modules types yet
* bigkeys was missing XLEN command for streams
* adding --memkeys and --memkeys-samples to make use of the MEMORY USAGE command
see #5167 , #5175
2019-02-21 12:18:20 +02:00
artix
0f28754021
Cluster Manager: fix replica assigment anti-affinity (create)
...
Fix issue #5849
2019-02-20 15:36:15 +01:00
antirez
35ffbead5c
Use dictGetFairRandomKey() for RANDOMKEY as well.
2019-02-19 17:29:51 +01:00
antirez
25b392f90c
Set dictGetFairRandomKey() samples to 20 for final version.
...
Distribution improves dramatically: tests show it clearly. Better to
have a slower implementation than a wrong one, because random member
extraction should be correct or tends to be useless for a number of
tasks.
2019-02-19 17:27:42 +01:00
antirez
1613f7a572
Limit sampling size in dictGetFairRandomKey().
...
This way the implementation is almost as fast as the original one, but
the distribution is not too bad.
2019-02-18 18:38:40 +01:00
antirez
61a01793ed
Better distribution for set get-random-element operations.
2019-02-18 18:27:18 +01:00
vattezhang
4cc43a96f6
benchmark: add auth check in benchmark
...
When we run benchmark but forget to set the right requirepass, benchmark should return error.
2019-02-18 22:48:55 +08:00
antirez
86802d4f26
redis-benchmark: default precision=1, integer ms after 2 milliseconds.
...
Reltaed to discussion and PR #5840 .
2019-02-14 13:19:51 +01:00
Salvatore Sanfilippo
da86481e5b
Merge pull request #5840 from madolson/dev-unstable-benchmark-latency
...
Updated redis benchmark with us precision support
2019-02-14 13:01:26 +01:00
Madelyn Olson
f9bababaa7
Rename variable
2019-02-13 21:03:31 +00:00
Madelyn Olson
93640b0a9d
Updated redis benchmark with us precision support
2019-02-13 19:52:48 +00:00
Salvatore Sanfilippo
fd7484cde2
Merge pull request #5836 from soloestoy/fix-acl-warning
...
ACL: show categories in COMMAND reply
2019-02-13 18:59:59 +01:00
zhaozhao.zz
14507457a0
ACL: show categories in COMMAND reply
...
Adding another new filed categories at the end of
command reply, it's easy to read and distinguish
flags and categories, also compatible with old format.
2019-02-14 00:13:01 +08:00
antirez
e819c2ef5b
ACL: tag LASTSAVE as dangerous.
...
That's not REALLY needed, but... right now with LASTSAVE being the only
command tagged as "admin" but not "dangerous" what happens is that after
rewrites the rewrite engine will produce from the rules:
user default on +@all ~* -@dangerous nopass
The rewrite:
user default on nopass ~* +@all -@admin -@dangerous +lastsave
Which is correct but will have users wondering about why LASTSAVE has
something special.
Since LASTSAVE after all also leaks information about the underlying
server configuration, that may not be great for SAAS vendors, let's tag
it as dangerous as well and forget about this issue :-)
2019-02-13 16:30:44 +01:00
zhaozhao.zz
a65094dae8
ACL: fix cat type format warning
2019-02-13 11:47:10 +08:00
antirez
bfdcfbb3ed
ACL: fix setting of FAST flag.
2019-02-12 17:06:26 +01:00
antirez
b9c97c0b2e
ACL: CAT subcommand implemented.
2019-02-12 17:02:45 +01:00
Guy Benoish
bdd9a8002a
Trim SDS free space of retained module strings
...
In some cases processMultibulkBuffer uses sdsMakeRoomFor to
expand the querybuf, but later in some cases it uses that query
buffer as is for an argv element (see "Optimization"), which means
that the sds in argv may have a lot of wasted space, and then in case
modules keep that argv RedisString inside their data structure, this
space waste will remain for long (until restarted from rdb).
2019-02-12 14:21:21 +01:00
Salvatore Sanfilippo
a22815b4e9
Merge pull request #5833 from soloestoy/masteruser
...
ACL: add masteruser configuration for replication
2019-02-12 10:27:59 +01:00
zhaozhao.zz
ea9d3aefec
ACL: add masteruser configuration for replication
...
In mostly production environment, normal user's behavior should be
limited.
Now in redis ACL mechanism we can do it like that:
user default on +@all ~* -@dangerous nopass
user admin on +@all ~* >someSeriousPassword
Then the default normal user can not execute dangerous commands like
FLUSHALL/KEYS.
But some admin commands are in dangerous category too like PSYNC,
and the configurations above will forbid replica from sync with master.
Finally I think we could add a new configuration for replication,
it is masteruser option, like this:
masteruser admin
masterauth someSeriousPassword
Then replica will try AUTH admin someSeriousPassword and get privilege
to execute PSYNC. If masteruser is NULL, replica would AUTH with only
masterauth like before.
2019-02-12 17:12:37 +08:00
antirez
d5e4a7f439
ACL: when client->user is NULL the client is a superuser.
...
Related to #5832 .
2019-02-12 09:44:30 +01:00
antirez
cc6d05a1f7
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-02-12 09:43:50 +01:00
zhaozhao.zz
0f42447a0e
ACL: show client's user
2019-02-12 16:03:58 +08:00
Chris Lamb
d0089cf208
Don't assume the __x86_64__ pointer size to avoid warnings on x32.
...
__x86_64__ is defined on the on the x32 architecture and the conditionals in
debug.c therefore assume the size of (void*) etc:
debug.c: In function 'getMcontextEip':
debug.c:757:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */
^
debug.c: In function 'logRegisters':
debug.c:920:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
logStackContent((void**)uc->uc_mcontext.gregs[15]);
We can remedy this by checking for __ILP32__ first. See:
https://wiki.debian.org/ArchitectureSpecificsMemo
... for more info.
2019-02-11 17:12:27 +01:00
antirez
f0c7cfa459
ACL: return error when removing a non existing password.
...
Otherwise it's very simple for an human mistake to think a password is
removed because of a typo in the ACL SETUSER myuser <somepass command
line.
2019-02-11 17:01:58 +01:00
antirez
f8a6132f15
ACL: refactor+fix AUTH check in processCommand().
...
The part that is fixed is that now if the default user is off whatever
is its configuration the user is not considered authenticated.
2019-02-11 16:47:02 +01:00
antirez
df346bca39
ACL: ACLFreeUserAndKillClients(): free user later.
...
Soon or later we may have code in freeClient() that may have to deal
with ACLs. Imagine for instance the command proposed multiple times (not
sure if this will ever be accepted but still...):
ONCLOSE DEL mykey
Accumulating commands to run when a client is disconnected. Now the
function is compatible with such use cases.
Related to #5829 .
2019-02-11 16:28:31 +01:00
zhaozhao.zz
2ce96c0fa7
ACL: kill the old users clients after load aclfile
2019-02-11 16:26:00 +01:00
antirez
3df1eb85ca
ACL: add command fingerprint for CAT subcommand.
2019-02-08 12:40:42 +01:00
antirez
d453936b52
ACL: add arity check in ACL command where missing.
2019-02-08 12:38:41 +01:00
antirez
d4890c20c1
ACL: ignore modules commands when adding categories.
...
We can't trust modules commands flagging, so module commands must be
always explicitly added, with the exception of +@all that will include
everything. However something like +@readonly should not include command
from modules that may be potentially dangerous: our categories must be
safe and reliable and modules may not be like that.
2019-02-08 11:50:39 +01:00
antirez
80f987726d
ACL: load ACL file at startup. Prevent silly configurations.
2019-02-07 17:20:03 +01:00
antirez
db30727547
ACL: ACLLoadFromFile(): several errors fixed to make it work.
2019-02-07 17:07:51 +01:00
antirez
d26c9b5307
ACL: ACLLoadFromFile(), restore DefaultUser global.
2019-02-07 17:00:35 +01:00
antirez
6a7545e4d4
ACL: fix fgets wrong buffer size.
2019-02-07 16:53:41 +01:00
antirez
cbed35efd3
ACL: add assertion and fix comment typo.
2019-02-07 16:47:14 +01:00
antirez
7a86ba22e0
ACL: fix a few ACLLoadFromFile() errors and finish ACLFreeUsersSet().
2019-02-07 16:20:49 +01:00
antirez
1790be1496
ACL: WIP: preserve the old config on loading errors.
2019-02-07 12:57:21 +01:00
antirez
0f0240b526
ACL: implement LOAD subcommand plus some minor rafactoring.
2019-02-07 12:20:30 +01:00
antirez
72e8a080c2
ACL: fix and complete ACLLoadFromFile() loading step.
2019-02-07 12:04:25 +01:00
antirez
bbdf02338d
ACL: now ACLLoadFromFile() validates against fake user.
2019-02-06 16:44:55 +01:00
antirez
0d3fb9f7f1
ACL: refactoring creation of unlinked users.
2019-02-06 16:19:17 +01:00
antirez
e1e0f993d8
ACL: initial design for ACLLoadFromFile() function.
2019-02-06 12:39:11 +01:00
antirez
cc116736c1
ACL: ability to configure an external ACL file.
2019-02-05 17:49:52 +01:00
antirez
416c640156
ACL: change behavior of redefined user. Last line counts.
2019-02-05 10:52:05 +01:00
antirez
775bf6193d
ACL: implement rewriting of users in redis.conf.
2019-02-05 10:48:17 +01:00
antirez
2262dd184d
ACL: fix user/rule inverted error message.
2019-02-04 16:58:35 +01:00
antirez
623b17425e
ACL: load the defined users at server startup.
2019-02-04 16:39:07 +01:00
antirez
500b3e128f
ACL: implement ACLLoadConfiguredUsers().
2019-02-04 16:35:15 +01:00
antirez
68fd4a97fa
ACL: better error reporting in users configuration errors.
2019-02-04 13:04:35 +01:00
antirez
b166c41edd
ACL: make ACLAppendUserForLoading() able to report bad argument.
2019-02-04 13:00:58 +01:00
antirez
21e84cdae2
ACL: initial appending of users in user loading list.
2019-02-04 12:55:48 +01:00
antirez
8f16e1ea91
ACL: implement ACLAppendUserForLoading().
2019-02-01 13:02:59 +01:00
antirez
b8323d98e9
ACL: skeleton and first ideas for postponed user loading.
2019-02-01 12:20:09 +01:00
antirez
1769c22248
ACL: set modules help clients to the root user.
...
It does not make much sense to limit what modules can do: the admin
should instead limit what module commnads an user may call. So
RedisModule_Call() and other module operations should be able to execute
everything they want: the limitation should be posed by the API exported
by the module itself.
2019-02-01 11:37:28 +01:00
antirez
b6372f16c4
ACL: assign ACL command ID to modules commands.
2019-02-01 08:17:24 +01:00
antirez
ec1aee031c
ACL: implement DELUSER.
2019-01-31 18:33:14 +01:00
antirez
74b7afdf71
ACL: check arity of LIST / USERS subcommand.
2019-01-31 18:32:49 +01:00
antirez
bc9b118e05
ACL: don't emit useless flags in ACLDescribeUser().
2019-01-31 17:04:42 +01:00
antirez
0f1b06aa40
ACL: implement LIST and USERS subcommands.
2019-01-31 17:01:32 +01:00
antirez
c7cd10dfe9
ACL: flags refactoring, function to describe user.
2019-01-31 16:49:22 +01:00
antirez
479f7f7af4
ACL: add function to return ACLSetUser() string errors.
2019-01-30 16:02:25 +01:00
antirez
0960259835
ACL: don't allow patterns after the * pattern.
2019-01-30 15:59:45 +01:00
antirez
77471dfe86
ACL: implement keys field in ACL GETUSER.
2019-01-30 15:52:36 +01:00
antirez
9db2c84984
ACL: free memory leak when freeing subcommands array.
2019-01-30 11:50:30 +01:00
antirez
36a0168cfd
ACL: return error when adding subcommands of fully added commands.
...
It's almost certainly an error from the user side.
2019-01-30 08:25:12 +01:00
antirez
9c2e64db9c
ACL: remove leak in ACLSetUser().
2019-01-30 08:20:31 +01:00
antirez
efce73a001
ACL: ACLDescribeUserCommandRules(): emit subcommands.
2019-01-30 08:17:33 +01:00
antirez
9ae8e3fefa
ACL: clear the subcommands array when setting category bits.
2019-01-30 08:09:05 +01:00
antirez
feba39d318
ACL: finish/fix ACLDescribeUserCommandRules() first version.
2019-01-29 18:54:21 +01:00
antirez
4db92e5928
ACL: ACLDescribeUserCommandRules(): add final commands.
2019-01-29 18:41:11 +01:00
antirez
11f64c6886
ACL: initial design for ACLDescribeUserCommandRules() and helpers.
2019-01-29 17:25:05 +01:00
antirez
4380423d40
ACL: enforce ACLs in Lua scripts as well.
2019-01-29 10:12:22 +01:00
antirez
acd168a70b
ACL: refactoring and fix of adding subcommands to users.
2019-01-28 18:40:54 +01:00
antirez
7fb9e2b4ce
ACL: reset the subcommands table on +@all / -@all.
...
This also is a bugfix because after -@all the previously enabled
subcommands would remain valid.
2019-01-28 18:27:42 +01:00
antirez
097d57f56e
ACL: fix crash when checking for subcommands.
2019-01-28 18:15:59 +01:00
Guy Benoish
b0c8d6c227
Increase string2ld's buffer size (and fix HINCRBYFLOAT)
...
The string representation of `long double` may take
up to ~5000 chars (see PR #3745 ).
Before this fix HINCRBYFLOAT would never overflow (since
the string could not exceed 256 chars). Now it can.
2019-01-28 17:58:11 +02:00
antirez
6320aa49f3
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-01-28 12:13:25 +01:00
antirez
4b9b128c49
ACL: remove leak when removing passwords/patterns.
2019-01-28 12:11:11 +01:00
Salvatore Sanfilippo
4e6abe2bbb
Merge pull request #5808 from ArkayZheng/ArkayWork
...
Fix the output of serverLog in replication.c
2019-01-27 12:16:14 +01:00
antirez
af72a31490
ACL: fix command bit check.
2019-01-26 12:51:43 +01:00
ArkayZheng
76f20729fc
Fix the output bug in rename exceptions.
2019-01-25 21:48:23 +08:00
antirez
b7750a936f
ACL: remove the ALLCOMMANDS user flag at a safer place.
...
This fixes -@<category> as a side effect.
2019-01-25 13:27:33 +01:00
antirez
eb840f9bc5
ACL: fix command ID assignment off by one error.
2019-01-25 13:07:20 +01:00
antirez
53ba09e08a
ACL: remove useless NULL check.
2019-01-25 13:00:49 +01:00
antirez
d5fe17dc11
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-01-25 13:00:30 +01:00
Salvatore Sanfilippo
1aa9fa37e3
Merge pull request #5806 from soloestoy/bugfix-acl-check-key-pattern
...
Bugfix in ACLCheckCommandPerm
2019-01-25 13:00:17 +01:00
zhaozhao.zz
0de83bcc62
ACL: fix memory leak when key patterns no match
2019-01-25 19:35:18 +08:00
zhaozhao.zz
8fc0079366
ACL: check patterns instead of passwords in ACLCheckCommandPerm
2019-01-25 19:06:18 +08:00
antirez
b82d356883
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-01-25 11:47:50 +01:00
Salvatore Sanfilippo
5cc3b557f6
Merge pull request #5804 from artix75/dev
...
Cluster Manager: remove unused code elements
2019-01-25 11:47:45 +01:00
antirez
510327df0b
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-01-25 11:27:34 +01:00
Salvatore Sanfilippo
e545b30f97
Merge pull request #5801 from soloestoy/fix-getuser-null-pointer
...
ACL: fix null pointer in getuser
2019-01-25 11:27:21 +01:00
antirez
7b4f3cc33a
ACL: + and - opcode for categories implemented.
2019-01-24 18:15:46 +01:00
antirez
e8bf9b03ed
ACL: ACLSetUserCommandBitsForCategory() low level API.
2019-01-24 18:11:09 +01:00
artix
9fb160b130
Cluster Manager: remove unused code elements
2019-01-24 17:29:44 +01:00
antirez
f99e0f59ef
ACL: populate category flags from command table.
2019-01-23 16:59:09 +01:00
zhaozhao.zz
496497f81a
ACL: fix null pointer in getuser
2019-01-23 23:57:18 +08:00
antirez
91ec53ed13
ACL: define category names and flags.
2019-01-23 16:47:29 +01:00
antirez
c5e717c637
ACL: command categories added to the command table.
2019-01-23 12:15:10 +01:00
antirez
b8ff73894a
ACL: improve top comments of the command table.
2019-01-23 11:21:02 +01:00
antirez
932a1196d8
ACL: mark more commands as read-only commands.
2019-01-23 11:14:39 +01:00