447 Commits

Author SHA1 Message Date
antirez
c17fa9ba7b ACL: Fix compilation by adding prototype and c->cmd fix. 2019-01-14 13:22:56 +01:00
antirez
73f73b9198 ACL: Add hook in processCommand() to check the ACLs before call(). 2019-01-14 13:20:45 +01:00
antirez
74f9451799 ACL: modify comment from PR. 2019-01-11 11:30:09 +01:00
charsyam
f627878bbe fix segmentfault when server start 2019-01-11 19:12:06 +09:00
antirez
1d176f0f0e ACL: initialization function. 2019-01-10 16:39:32 +01:00
antirez
6f25143af6 ACL: use a fixed table for command IDs. 2019-01-09 21:31:29 +01:00
antirez
74d77a1b1e ACL: set the command ID while populating the commands table. 2019-01-09 17:23:23 +01:00
antirez
5151f74fe1 ACL: introduce the concept of command ID. 2019-01-09 17:20:47 +01:00
antirez
e9d88bf1ad ACL: fix ACLCheckUserCredentials() usage in AUTH. 2019-01-09 17:09:30 +01:00
antirez
4d33fe81cd ACL: refactoring of the original authentication code. 2019-01-09 17:00:30 +01:00
antirez
7823490732 RESP3: allow HELLO during busy script and not authenticated states. 2019-01-09 17:00:30 +01:00
antirez
63ed8ecd61 RESP3: Allow any command in RESP3 Pub/Sub mode. 2019-01-09 17:00:30 +01:00
antirez
2579267de2 RESP3: PING should reply normally in RESP3 Pub/Sub mode.
Because in RESP3 commands can be sent in the Pub/Sub connection without
problems, so it's better if in such mode there is no exception about
PING.
2019-01-09 17:00:30 +01:00
antirez
bf3d7bbf31 RESP3: initial implementation of the HELLO command. 2019-01-09 17:00:29 +01:00
antirez
83ad63732e RESP3: add shared.nullarray for better RESP2 compat. 2019-01-09 17:00:29 +01:00
antirez
c8304b099d RESP3: most null replies converted. 2019-01-09 17:00:29 +01:00
antirez
29bbe91392 RESP3: addReplyNull() added. 2019-01-09 17:00:29 +01:00
antirez
e30fef5d8a RESP3: remove other pointless shared object. 2019-01-09 17:00:29 +01:00
antirez
5ebe3268ed RESP3: remove certain constants to spot places to fix. 2019-01-09 17:00:29 +01:00
antirez
036e10dcb9 RESP3: Use new deferred len API in server.c. 2019-01-09 17:00:29 +01:00
antirez
421c242dd0 freeMemoryIfNeeded() small refactoring.
Related to issue #5686 and PR #5689.
2018-12-12 11:37:15 +01:00
Salvatore Sanfilippo
c00d3fc6c2 Merge pull request #5633 from oranagra/frag_bytes_signed
fix #5580, display fragmentation and rss overhead bytes as signed
2018-12-07 17:09:10 +01:00
antirez
a89803cff1 Remove no longer relevant comment in processCommand(). 2018-12-07 17:06:55 +01:00
Oran Agra
bad0b20979 fix #5580, display fragmentation and rss overhead bytes as signed
these metrics become negative when RSS is smaller than the used_memory.
This can easily happen when the program allocated a lot of memory and haven't
written to it yet, in which case the kernel doesn't allocate any pages to the process
2018-12-02 15:29:20 +02:00
Salvatore Sanfilippo
707653411e Merge pull request #5597 from lamby/clarify-socket-creation-error-message
Clarify the "Creating Server TCP listening socket" error message
2018-11-28 17:06:51 +01:00
Chris Lamb
74f1abb48c Don't treat unsupported protocols as fatal errors
If we encounter an unsupported protocol in the "bind" list, don't
ipso-facto consider it a fatal error. We continue to abort startup if
there are no listening sockets at all.

This ensures that the lack of IPv6 support does not prevent Redis from
starting on Debian where we try to bind to the ::1 interface by default
(via "bind 127.0.0.1 ::1"). A machine with IPv6 disabled (such as some
container systems) would simply fail to start Redis after the initiall
call to apt(8).

This is similar to the case for where "bind" is not specified:

  https://github.com/antirez/redis/issues/3894

... and was based on the corresponding PR:

  https://github.com/antirez/redis/pull/4108

... but also adds EADDRNOTAVAIL to the list of errors to catch which I
believe is missing from there.

This issue was raised in Debian as both <https://bugs.debian.org/900284>
& <https://bugs.debian.org/914354>.
2018-11-23 18:01:12 +01:00
Chris Lamb
17c26c5e9b Clarify the "Creating Server TCP listening socket" error.
This really helps spot it in the logs, otherwise it does not look like a
warning/error. For example:

  Creating Server TCP listening socket ::1:6379: bind: Cannot assign requested address

... is not nearly as clear as:

  Could not create server TCP listening listening socket ::1:6379: bind: Cannot assign requested address
2018-11-23 17:57:01 +01:00
valentino
1004e2083e fix short period of server.hz being uninitialized
server.hz was uninitialized between initServerConfig and initServer.
this can lead to someone (e.g. queued modules) doing createObject,
and accessing an uninitialized variable, that can potentially be 0,
and lead to a crash.
2018-11-05 12:01:26 +02:00
David Carlier
a2cc07cad4 Fix non Linux build.
timezone global is a linux-ism whereas it is a function under BSD.
Here a helper to get the timezone value in a more portable manner.
2018-10-26 14:02:09 +00:00
zhaozhao.zz
549b9142f6 MULTI: OOM err if cannot free enough memory in MULTI/EXEC context 2018-10-17 16:40:45 +08:00
Salvatore Sanfilippo
9388517487 Merge pull request #5333 from soloestoy/stream-commands-flag
Scripting & Streams: some commands need right flags
2018-10-17 07:50:32 +02:00
antirez
8e399f0e01 Streams: XSTREAM SETID -> XSETID.
Keep vanilla stream commands at toplevel, see #5426.
2018-10-16 13:17:14 +02:00
Salvatore Sanfilippo
ff1b36c825 Merge pull request #5426 from soloestoy/feature-xstream
Bugfix data inconsistency after aof rewrite, and add XSTREAM command.
2018-10-16 13:10:36 +02:00
antirez
b10d99a13b Fix propagation of consumer groups last ID.
Issue #5433.
2018-10-10 12:51:02 +02:00
zhaozhao.zz
7e2c73d79b Streams: add a new command XTREAM
XSTREAM CREATE <key> <id or *> -- Create a new empty stream.
XSTREAM SETID <key> <id or $>  -- Set the current stream ID.
2018-10-09 13:11:04 +08:00
antirez
c58c884484 Fix printf type mismatch in genRedisInfoString(). 2018-10-02 16:26:30 +02:00
Salvatore Sanfilippo
159531c1c9 Merge pull request #5242 from oranagra/script_mem
script cache memory in INFO and MEMORY includes both script code and overheads
2018-10-02 16:03:05 +02:00
Salvatore Sanfilippo
b111d8c5f9 Merge pull request #5398 from bmerry/fix-zrealloc-accounting
Fix incorrect memory usage accounting in zrealloc
2018-10-01 13:28:53 +02:00
Bruce Merry
84f851719b Fix incorrect memory usage accounting in zrealloc
When HAVE_MALLOC_SIZE is false, each call to zrealloc causes used_memory
to increase by PREFIX_SIZE more than it should, due to mis-matched
accounting between the original zmalloc (which includes PREFIX size in
its increment) and zrealloc (which misses it from its decrement).

I've also supplied a command-line test to easily demonstrate the
problem. It's not wired into the test framework, because I don't know
TCL so I'm not sure how to automate it.
2018-09-30 11:49:03 +02:00
Oran Agra
65590b2c5c fix #5024 - commandstats for multi-exec were logged as EXEC.
this was broken a while back by ba9154d7e7bf959b002533384319a1e90545447b
the purpose of which was to fix commandstats for GEOADD
2018-09-30 12:43:11 +03:00
antirez
ebf0968a38 Module cluster flags: add hooks for NO_REDIRECTION flag. 2018-09-19 11:31:22 +02:00
antirez
96ceafbe4d Module cluster flags: initial vars / defines added. 2018-09-19 11:20:52 +02:00
antirez
55d85db425 LOLWUT: wrap it into a proper command. 2018-09-12 11:34:10 +02:00
antirez
706c5e8889 Slave removal: server.c logs fixed. 2018-09-11 15:32:28 +02:00
antirez
bdca5b9be5 Slave removal: SLAVEOF -> REPLICAOF. SLAVEOF is now an alias. 2018-09-11 15:32:28 +02:00
Salvatore Sanfilippo
d214436bc7 Merge pull request #5322 from youjiali1995/fix-sentinel-randomize
sentinel: fix randomized sentinelTimer.
2018-09-07 12:10:35 +02:00
zhaozhao.zz
f3a7837982 Scripting & Streams: some commands need right flags
xadd with id * generates random stream id

xadd & xtrim with approximate maxlen count may
trim stream randomly

xinfo may get random radix-tree-keys/nodes

xpending may get random idletime

xclaim: master and slave may have different
idletime in stream
2018-09-06 21:12:46 +08:00
antirez
39e09ea84c Use commands (effects) replication by default in scripts.
See issue #5250 and issue #5292 for more info.
2018-09-05 19:33:56 +02:00
antirez
042ee28b09 Don't perform eviction when re-entering the event loop.
Related to #5250.
2018-09-05 13:10:07 +02:00
youjiali1995
219c5fbb1b sentinel: fix randomized sentinelTimer. 2018-09-05 10:32:18 +08:00