WuYunlong
f004a3e7ff
Update dict resize policy when rdb child process gets killed.
2019-01-21 17:33:18 +08:00
WuYunlong
3f0c2b1fa2
Update dict resize policy when aof rewrite process gets killed.
2019-01-21 17:27:36 +08:00
zhaozhao.zz
ab1992c9c6
ACL: fix compile warnings
2019-01-21 14:53:46 +08:00
Zhicheng Wei
c90cf3d82f
fix clusterManagerGetAntiAffinityScore double free otypes
2019-01-19 11:38:36 +08:00
antirez
c8391388c2
ACL: remove server.requirepass + some refactoring.
2019-01-18 11:49:30 +01:00
antirez
7de6e30241
ACL: fix config get requirepass.
2019-01-18 11:30:40 +01:00
antirez
ac6e49de48
ACL: implement resetpass directive and adjust test.
2019-01-18 11:26:32 +01:00
antirez
2c66c525f9
ACL: configure the master connection without user.
2019-01-17 18:33:36 +01:00
antirez
b87815c1f8
ACL: AUTH + no default user password raises an error.
...
This way the behavior is very similar to the past one.
This is useful in order to remember the user she probably failed to
configure a password correctly.
2019-01-17 18:30:23 +01:00
antirez
636424c0ce
ACL: change requirepass stop condition to use ACLs.
2019-01-17 18:22:22 +01:00
antirez
0526d1538b
ACL: partial implementation of ACL GETUSER.
2019-01-17 18:19:04 +01:00
antirez
7b65605ab2
ACL: reimplement requirepass option in term of ACLs.
2019-01-17 18:05:43 +01:00
antirez
4a3419acfc
ACL: fix and improve ACL key checking.
2019-01-16 18:31:05 +01:00
antirez
dbae371090
ACL: create the user pattern list ASAP.
2019-01-16 13:50:00 +01:00
antirez
f78b3ede27
ACL: key matching implemented.
2019-01-16 13:39:04 +01:00
antirez
0db42d4ba8
ACL: implement the key match opcode in ACLSetUser().
2019-01-16 13:29:04 +01:00
antirez
ff92c06947
ACL: fix command exec check by returning.
2019-01-15 18:28:43 +01:00
antirez
c79b01f4ba
ACL: the AUTH command can be always executed.
2019-01-15 18:26:44 +01:00
antirez
cca64672f4
ACL: AUTH uses users. ACL WHOAMI implemented.
2019-01-15 18:16:20 +01:00
antirez
35fe59935e
ACL: automatically authenticate the nopass default user.
2019-01-15 17:57:49 +01:00
antirez
52e9922987
ACL: AUTH command new form, using the ACL subsystem.
2019-01-15 13:45:16 +01:00
antirez
b39409bcf8
ACL: nopass user setting.
...
This is needed in order to model the current behavior of authenticating
the connection directly when no password is set. Now with ACLs this will
be obtained by setting the default user as "nopass" user. Moreover this
flag can be used in order to create other users that do not require any
password but will work with "AUTH username <any-password>".
2019-01-15 13:16:31 +01:00
antirez
4f7ff85b88
ACL: ability to set/remove user passwords.
2019-01-15 12:58:54 +01:00
antirez
7aea02fa87
ACL: initial implementation of the ACL command.
2019-01-15 09:36:12 +01:00
antirez
a2e376ba52
ACL: ACLCheckCommandPerm() implementation WIP.
2019-01-14 18:35:21 +01:00
antirez
733438fe23
RESP3: Populate new fields for the AOF fake client.
...
However we should remove this fake client ad-hoc creation, and replace
it with the proper call to createClient(-1), and then adjust the fake
client as we like.
2019-01-14 17:01:49 +01:00
antirez
09391369b8
ACL: fix field name typo causing segfault.
2019-01-14 16:09:29 +01:00
antirez
a0a4fb85ff
ACL: Fix compilation by adding prototype and c->cmd fix.
2019-01-14 13:22:56 +01:00
antirez
2da2e452ab
ACL: ACLLCOMMAND flags.
2019-01-14 13:21:21 +01:00
antirez
648411eb7d
ACL: Add hook in processCommand() to check the ACLs before call().
2019-01-14 13:20:45 +01:00
antirez
f95152d4c8
ACL: Add skeleton for function checking ability to execute a command.
2019-01-14 13:19:50 +01:00
antirez
4376575d83
ACL: ACLSetUser(), add allcommands in comment.
2019-01-14 13:19:42 +01:00
antirez
67754ae021
ACL: ACLSetUser(), fix flag and add allcommands +@all opcode.
2019-01-14 13:18:12 +01:00
antirez
e7d15e4820
ACL: implement to first trivial opcodes in ACLSetUser().
2019-01-11 13:03:50 +01:00
antirez
aced0328e3
ACL: avoid a radix tree lookup for the default user.
2019-01-11 11:32:41 +01:00
antirez
7f8314760a
ACL: modify comment from PR.
2019-01-11 11:30:09 +01:00
Salvatore Sanfilippo
6078d85b52
Merge pull request #5769 from charsyam/feature/fix-segmentfault-when-server-starts
...
fix segmentfault when server start in unstable branch
2019-01-11 11:27:09 +01:00
antirez
4b72d087e9
ACL: ACLSetUser(), initial ideas in comments.
2019-01-11 11:25:55 +01:00
charsyam
45952df700
fix segmentfault when server start
2019-01-11 19:12:06 +09:00
antirez
dc4f7ad106
ACL: create the default user.
2019-01-11 11:02:55 +01:00
antirez
6bb6a6d3a8
ACL: implement ACLCreateUser().
2019-01-10 17:01:12 +01:00
antirez
e4846b028d
ACL: implement ACLGetUserByName().
2019-01-10 16:40:45 +01:00
antirez
29c88a9ce5
ACL: initialization function.
2019-01-10 16:39:32 +01:00
antirez
e9a902a958
ACL: split acl.c into clear sections.
2019-01-10 16:35:55 +01:00
antirez
4278104acc
ACL: add a reference to the user in each client.
2019-01-10 16:34:13 +01:00
antirez
4729f71495
ACL: improved version of the user structure.
2019-01-10 12:47:52 +01:00
antirez
45ff9f33d6
ACL: ACLCheckUserCredentials() next id should be static.
2019-01-09 21:47:43 +01:00
antirez
7fc882c578
ACL: use a fixed table for command IDs.
2019-01-09 21:31:29 +01:00
antirez
010b24f864
ACL: set the command ID while populating the commands table.
2019-01-09 17:23:23 +01:00
antirez
91f1d8026b
ACL: introduce the concept of command ID.
2019-01-09 17:20:47 +01:00
antirez
42271cff2d
ACL: fix ACLCheckUserCredentials() usage in AUTH.
2019-01-09 17:09:30 +01:00
antirez
f5d918b2bb
ACL: HELLO should stop if the user is not authenticated.
2019-01-09 17:00:30 +01:00
antirez
b43d70df56
ACL: refactoring of the original authentication code.
2019-01-09 17:00:30 +01:00
antirez
4d80b0e965
RESP3: allow HELLO during busy script and not authenticated states.
2019-01-09 17:00:30 +01:00
antirez
9018388c3f
RESP3: Allow any command in RESP3 Pub/Sub mode.
2019-01-09 17:00:30 +01:00
antirez
a4f8f4a824
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
eaaac08892
RESP3: Pubsub messages in new push format if client is in RESP3 mode.
2019-01-09 17:00:30 +01:00
antirez
bc75a94e2d
RESP3: pubsub messages API completely refactored.
2019-01-09 17:00:30 +01:00
antirez
798a329192
RESP3: extract code to send pubsub messages into functions.
2019-01-09 17:00:30 +01:00
antirez
709a6612eb
RESP3: addReplyString() -> addReplyProto().
...
The function naming was totally nuts. Let's fix it as we break PRs
anyway with RESP3 refactoring and changes.
2019-01-09 17:00:30 +01:00
antirez
7d4b600f5d
RESP3: redis-cli support for boolean in TTY output.
2019-01-09 17:00:30 +01:00
antirez
e291170385
RESP3: verbatim reply API + DEBUG PROTOCOL support.
2019-01-09 17:00:30 +01:00
antirez
afba211297
RESP3: DEBUG PROTOCOL: boolean types.
2019-01-09 17:00:30 +01:00
antirez
8042afb246
RESP3: Fix addReplyBool() RESP2/3 output.
2019-01-09 17:00:30 +01:00
antirez
4e2dd54df0
RESP3: DEBUG PROTOCOL: fix strcasecmp() check.
2019-01-09 17:00:30 +01:00
antirez
795ad670f9
RESP3: DEBUG PROTOCOL command. Only types already supported by API.
2019-01-09 17:00:30 +01:00
antirez
c3bf646ef3
RESP3: fix DEBUG DIGEST-VALUE with new API.
2019-01-09 17:00:30 +01:00
antirez
62b2642c51
RESP3: redis-cli: show the double as received from Redis.
2019-01-09 17:00:30 +01:00
antirez
a2b2d88f38
RESP3: hiredis: initial double implementation.
2019-01-09 17:00:30 +01:00
antirez
005915b5c3
RESP3: hiredis: map and set display for TTY output.
2019-01-09 17:00:30 +01:00
antirez
809e3a44a7
RESP3: addReplyBool() implemented.
2019-01-09 17:00:29 +01:00
antirez
4f0860cbfd
RESP3: initial implementation of the HELLO command.
2019-01-09 17:00:29 +01:00
antirez
e5fdd6b6bf
RESP3: fix HMGET bug introduced with RESP3 changes.
2019-01-09 17:00:29 +01:00
antirez
0652b05caf
RESP3: fix genericHgetallCommand() assert.
2019-01-09 17:00:29 +01:00
antirez
c2e5be0421
RESP3: fix zrangeGenericCommand() proto dependent array len.
2019-01-09 17:00:29 +01:00
antirez
8a0391fbc9
RESP3: t_stream.c updated.
2019-01-09 17:00:29 +01:00
antirez
baf5b3f93a
RESP3: module.c updated.
2019-01-09 17:00:29 +01:00
antirez
920611a419
RESP3: latency.c updated.
2019-01-09 17:00:29 +01:00
antirez
ddb98ad56f
RESP3: hyperloglog.c updated.
2019-01-09 17:00:29 +01:00
antirez
3fd78f41e8
RESP3: restore the concept of null array for RESP2 compat.
2019-01-09 17:00:29 +01:00
antirez
2ad6e875ba
RESP3: add shared.nullarray for better RESP2 compat.
2019-01-09 17:00:29 +01:00
antirez
1a17cdfadf
RESP3: addReplyNullArray() added for better RESP2 compat.
2019-01-09 17:00:29 +01:00
antirez
86c30a92f9
RESP3: geo.c updated.
2019-01-09 17:00:29 +01:00
antirez
071da9844c
RESP3: blocked.c updated.
2019-01-09 17:00:29 +01:00
antirez
9705c12d85
RESP3: sentinel.c updated.
2019-01-09 17:00:29 +01:00
antirez
3a3d806989
RESP3: bitops.c updated.
2019-01-09 17:00:29 +01:00
antirez
317f8b9d38
RESP3: most null replies converted.
2019-01-09 17:00:29 +01:00
antirez
1b7298e66a
RESP3: addReplyNull() added.
2019-01-09 17:00:29 +01:00
antirez
fc9a3de97d
RESP3: remove other pointless shared object.
2019-01-09 17:00:29 +01:00
antirez
b7e8b734c9
RESP3: remove certain constants to spot places to fix.
2019-01-09 17:00:29 +01:00
antirez
a1feda2388
RESP3: Scripting RESP3 mode set/map protocol -> Lua conversion.
2019-01-09 17:00:29 +01:00
antirez
9330bcc7ee
RESP3: Fix API in scripting.c leaving Lua conversions RESP2.
2019-01-09 17:00:29 +01:00
antirez
f07f3d729f
RESP3: Use new aggregate reply API in slowlog.c.
2019-01-09 17:00:29 +01:00
antirez
feb6b31832
RESP3: Use new aggregate reply API in t_set.c.
2019-01-09 17:00:29 +01:00
antirez
dcbd40cea4
RESP3: Use new aggregate reply API in cluster.c.
2019-01-09 17:00:29 +01:00
antirez
c7f80e4f1a
RESP3: Make WITHSCORES reply back with a flat array in RESP2.
2019-01-09 17:00:29 +01:00
antirez
fe67418ba4
RESP3: Use new deferred len API in object.c.
2019-01-09 17:00:29 +01:00
antirez
13966522ea
RESP3: bring RESP2 compatibility to previous changes.
2019-01-09 17:00:29 +01:00
antirez
e14aabf936
RESP3: addReply*Len() support for RESP2 backward comp.
2019-01-09 17:00:29 +01:00
antirez
1ac6926647
RESP3: put RESP version in the client structure.
2019-01-09 17:00:29 +01:00
antirez
f44e00b691
RESP3: Use new API and types in t_hash.c.
2019-01-09 17:00:29 +01:00
antirez
b507654716
RESP3: Use new deferred len API in dict.c.
2019-01-09 17:00:29 +01:00
antirez
cdd10193c5
RESP3: Use new deferred len API in config.c.
2019-01-09 17:00:29 +01:00
antirez
470c28380f
RESP3: Use new deferred len API in t_zset.c.
2019-01-09 17:00:29 +01:00
antirez
a577230a58
RESP3: Use new deferred len API in t_string.c.
2019-01-09 17:00:29 +01:00
antirez
07bce54093
RESP3: Use new deferred len API in replication.c.
2019-01-09 17:00:29 +01:00
antirez
073293693e
RESP3: Use new deferred len API in server.c.
2019-01-09 17:00:29 +01:00
antirez
57c5a766a2
RESP3: Aggregate deferred lengths functions.
2019-01-09 17:00:29 +01:00
antirez
914ee43108
RESP3: Double replies and aggregate lengths initial functions.
2019-01-09 17:00:29 +01:00
Salvatore Sanfilippo
14400d073b
Merge pull request #5729 from artix75/cluster_manager_fix_cmd
...
Cluster Manager del-node: use CLUSTER RESET in place of SHUTDOWN
2019-01-09 10:11:27 +01:00
chenyangyang
30d8d05cd6
Update ae.c
...
Update comment
2019-01-06 15:01:25 +08:00
Angus Pearson
2925bdc63b
Add comment explaining negative repeat
2019-01-02 19:28:04 +00:00
Angus Pearson
2f6ed9333f
Fix broken interval and repeat bahaviour in redis-cli (incluing cluster mode)
...
This addresses two problems, one where infinite (negative) repeat count is broken for all types for Redis,
and another specific to cluster mode where redirection is needed.
Now allows and works correctly for negative (i.e. -1) repeat values passed with `-r` argument to redis-cli
as documented here https://redis.io/topics/rediscli#continuously-run-the-same-command which seems to have
regressed as a feature in 95b988 (though that commit removed bad integer wrap-around to `0` behaviour).
This broken behaviour exists currently (e50458), and redis-cli will just exit immediately with repeat `-r <= 0`
as opposed to send commands indefinitely as it should with `-r < 0`
Additionally prevents a repeat * interval seconds hang/time spent doing nothing at the start before issuing
commands in cluster mode (`-c`), where the command needed to redirect to a slot on another node, as commands
where failing and waiting to be reissued but this was fully repeated before being reissued. For example,
redis-cli -c -r 10 -i 0.5 INCR test_key_not_on_6379
Would hang and show nothing for 5 seconds (10 * 0.5) before showing
(integer) 1
(integer) 2
(integer) 3
(integer) 4
(integer) 5
(integer) 6
(integer) 7
(integer) 8
(integer) 9
(integer) 10
at half second intervals as intended.
2019-01-02 18:50:58 +00:00
artix
17797660f1
Cluster Manager del-node: use CLUSTER RESET in place of SHUTDOWN
...
See issue #5687
2018-12-27 17:20:42 +01:00
artix
503fd229e4
Cluster Manager: enable --cluster-replace also for 'fix' command.
2018-12-19 17:29:25 +01:00
artix
cc29590188
Fixed memory leak in clusterManagerCompareKeysValues.
2018-12-18 18:45:10 +01:00
artix
143bfa1e6e
Cluster Manager: compare key values after BUSYKEY error (migration).
...
If a key exists in the target node during a migration (BUSYKEY),
the value of the key on both nodes (source and target) will be compared.
If the key has the same value on both keys, the migration will be
automatically retried with the REPLACE argument in order to override
the target's key.
If the key has different values, the behaviour will depend on such
cases:
- In case of 'fix' command, the migration will stop and the user
will be warned to manually check the key(s).
- In other cases (ie. reshard), if the user launched the command
with the --cluster-replace option, the migration will be
retried with the REPLACE argument, elsewhere the migration will
stop and the user will be warned.
2018-12-18 17:45:35 +01:00
artix
d935cfcb89
Cluster Manager: avoid using reply error messages to check slot status.
...
Slot assignment status is now checked by using CLUSTER SLOTS.
Furthermore, one memory leak has been fixed.
2018-12-12 13:34:43 +01:00
antirez
129f2d2746
freeMemoryIfNeeded() small refactoring.
...
Related to issue #5686 and PR #5689 .
2018-12-12 11:37:15 +01:00
Salvatore Sanfilippo
7ae184bfea
Merge pull request #5689 from soloestoy/donot-evict-when-AOF-loading
...
evict: don't care about mem if loading
2018-12-12 11:29:10 +01:00
antirez
03e2bb0cfd
Crashing is too much in addReplyErrorLength().
...
See #5663 .
2018-12-11 17:50:18 +01:00
zhaozhao.zz
b9cd89d108
evict: don't care about mem if loading
...
When loading data, we call processEventsWhileBlocked
to process events and execute commands.
But if we are loading AOF it's dangerous, because
processCommand would call freeMemoryIfNeeded to evict,
and that will break data consistency, see issue #5686 .
2018-12-12 00:25:58 +08:00
antirez
0110e46f6e
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-12-11 13:30:04 +01:00
antirez
a31ca8d753
stringmatchlen() fuzz test added.
...
Verified to be able to trigger at least #5632 . Does not report other
issues.
2018-12-11 13:29:30 +01:00
antirez
c710d4afdc
Fix stringmatchlen() read past buffer bug.
...
See #5632 .
2018-12-11 13:18:52 +01:00
Salvatore Sanfilippo
f77edf4234
Merge pull request #5665 from louiszhw/unstable
...
fix comments fault discription
2018-12-11 13:03:09 +01:00
Salvatore Sanfilippo
e8529d1b1e
Merge pull request #4264 from lsytj0413/unstable
...
fix a typo: craeted -> created
2018-12-11 13:02:28 +01:00
zhaozhao.zz
6100be7d82
fix typo
2018-12-11 19:53:54 +08:00
zhaozhao.zz
1530c0a7dd
multi: ignore multiState's cmd_flags when loading AOF
2018-12-11 19:47:36 +08:00
antirez
274531396c
Reject EXEC containing write commands against RO replica.
...
Thanks to @soloestoy for discovering this issue in #5667 .
This is an alternative fix in order to avoid both cycling the clients
and also disconnecting clients just having valid read-only transactions
pending.
2018-12-11 11:39:21 +01:00
artix
27ddb2ba3a
Cluster Manager:
...
- Multiple owners checking in 'fix'/'check' commands is now
optional (using --cluster-search-multiple-owners).
- Updated help.
2018-12-10 18:01:18 +01:00
artix
0c1336caf4
Cluster Manager:
...
- FixOpenSlot now correctly updates in-memory cluster configuration.
- Improved output messages.
2018-12-10 17:43:58 +01:00
artix
1a56fc913e
Cluster Manager: 'fix' command now handles open slots with migrating state
...
in one node and importing state in multiple nodes.
2018-12-10 17:43:58 +01:00
artix
d5f7703367
Cluster Manager: setting new slot owner is now handled atomically
...
in 'fix' command.
2018-12-10 17:43:58 +01:00
artix
eaac9f9e93
Cluster Manager: code cleanup.
2018-12-10 17:43:58 +01:00
artix
5bf13eaaf8
Cluster Manager: check/fix commands now handle multiple owners even if
...
all slots are covered and not open.
2018-12-10 17:39:54 +01:00
Salvatore Sanfilippo
5bfd8ae253
Merge pull request #5626 from soloestoy/remove-useless-code
...
remove useless tryObjectEncoding in debug assert
2018-12-07 17:09:56 +01:00
Salvatore Sanfilippo
03629ba0b6
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
cdab4c3e09
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-12-07 17:07:14 +01:00
antirez
7e0cc2bb91
Remove no longer relevant comment in processCommand().
2018-12-07 17:06:55 +01:00
Salvatore Sanfilippo
c6341ce373
Merge pull request #5673 from soloestoy/check-current-client-after-freememory
...
networking: current_client should not be NULL when trim qb_pos
2018-12-07 17:03:48 +01:00
antirez
5a0b7212c9
DEBUG DIGEST-VALUE implemented.
2018-12-07 16:41:54 +01:00
antirez
e9400e8efd
DEBUG DIGEST refactoring: extract function to digest a value.
2018-12-07 16:30:33 +01:00
zhaozhao.zz
28c4281495
networking: current_client should not be NULL when trim qb_pos
2018-12-07 19:14:33 +08:00
yura
74f942cfa5
redis-cli reshard/rebalance: ability to force replacement on existing keys
2018-12-07 14:14:11 +03:00
Salvatore Sanfilippo
9f87ef9399
Merge pull request #5460 from krallin/env-password
...
cli: pass auth through REDISCLI_AUTH
2018-12-07 11:30:07 +01:00
Salvatore Sanfilippo
75c181ee2b
Merge pull request #5664 from yongman/fix-rediscli-output-format
...
Fix cluster call reply format readable
2018-12-07 11:28:18 +01:00
lsytj0413
6aa9606995
fix a typo: craeted -> created
2018-12-06 11:08:59 +08:00
hdmg
b1e35d3244
fix comments fault discription
2018-12-05 17:15:02 +08:00
yongman
dfe81b33fe
Fix cluster call reply format readable
2018-12-04 17:36:42 +08:00
Madelyn Olson
e2c1f80b46
Fixed a serverPanic when sending an invalid command to a monitor client
2018-12-04 07:17:17 +00:00
Oran Agra
b587c54c24
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
zhaozhao.zz
0da171b3a6
remove useless tryObjectEncoding in debug assert
2018-11-30 12:05:46 +08:00
Salvatore Sanfilippo
4c544394eb
Merge pull request #5562 from soloestoy/memory-usage-more-accurate
...
MEMORY command: make USAGE more accurate
2018-11-28 18:16:04 +01:00
Salvatore Sanfilippo
04a5189b50
Merge pull request #5594 from yongman/fix-rediscli-fixcoverage
...
Fix choose a random master node for slot assignment
2018-11-28 18:13:04 +01:00
zhaozhao.zz
d56c631343
MEMORY command: make USAGE more accurate
...
In MEMORY USAGE command, we count the key argv[2] into usage,
but the argument in command may contains free spaces because of
sdsMakeRoomFor. But the key in db never contains free spaces
because we use sdsdup when dbAdd, so using the real key to
count the usage is more accurate.
2018-11-29 01:01:51 +08:00
Salvatore Sanfilippo
d403208d51
Merge pull request #5572 from Weiliang-Li/patch3-util
...
fix comment typo in util.c
2018-11-28 17:14:21 +01:00
Salvatore Sanfilippo
ef00633759
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
Salvatore Sanfilippo
1eca933d6f
Merge pull request #5598 from lamby/dont-treat-unsupported-protocols-as-fatal-errors
...
Don't treat unsupported protocols as fatal errors
2018-11-28 17:06:17 +01:00
Salvatore Sanfilippo
1dd8d2c7ef
Merge pull request #5599 from devnexen/backtrace_support_on_bsd
...
Backtrace/register dump on BSD.
2018-11-28 17:01:33 +01:00
Salvatore Sanfilippo
6a6471aad5
Merge pull request #4737 from guybe7/zlexcount_fix
...
Don't call sdscmp() with shared.maxstring or shared.minstring
2018-11-28 16:53:32 +01:00
antirez
edd3939bef
Abort instead of crashing when loading bad stream master key.
...
See #5612 .
2018-11-28 16:24:53 +01:00
David Carlier
ac086b1932
OpenBSD support.
...
Special treatment here as backtrace support is optional,
cannot be found via pkg-config and similar neither.
2018-11-25 08:10:26 +00:00
David Carlier
69ca907868
Backtrace/register dump on BSD.
...
FreeBSD/DragonFlyBSD does have backtrace only it does not
belong to libc.
2018-11-25 07:21:56 +00:00
Chris Lamb
fbff351406
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
9cfcf37968
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
yongman
221dfbd322
fix typo
2018-11-23 23:51:16 +08:00
yongman
2961c89161
Fix choose a random master node for slot assignment
2018-11-23 16:58:55 +08:00
Salvatore Sanfilippo
0c12ebf6e7
Merge pull request #5553 from devnexen/dflybsd_build_fix
...
DragonFlyBSD little build fix
2018-11-22 11:16:30 +01:00
yongman
2f76829dc7
skip slave nodes when sending cluster setslot command
2018-11-21 23:01:35 +08:00
Salvatore Sanfilippo
8acc07e6f0
Merge pull request #5579 from yongman/fix-rediscli-pointer-access
...
Fix pointer access and memory leak in redis-cli.
2018-11-20 10:38:59 +01:00
antirez
2bd6802fa1
Stream: fix XREADGROUP history reading of deleted messages.
...
This commit fixes #5570 . It is a similar bug to one fixed a few weeks
ago and is due to the range API to be called with NULL as "end ID"
parameter instead of repeating again the start ID, to be sure that we
selectively issue the entry with a given ID, or we get zero returned
(and we know we should emit a NULL reply).
2018-11-19 17:00:34 +01:00
antirez
18d0759b14
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-11-19 16:51:09 +01:00
antirez
29251f58e2
Streams: fix XREADGROUP history reading when CG last_id is low.
...
This fixes the issue reported in #5570 .
This was fixed the hard way, that is, propagating more information to
the lower level API about this being a request to read just the history,
so that the code is simpler and less likely to regress.
2018-11-19 16:41:27 +01:00
antirez
3830ef2483
t_stream.c comment resized to 80 cols.
2018-11-19 16:26:02 +01:00
yongman
64324901f2
Fix pointer access and memory leak in redis-cli.
2018-11-16 17:27:27 +08:00
Weiliang Li
cabc06076b
fix comment typo in util.c
...
fix comment typo in util.c
2018-11-15 16:55:40 +08:00
David Carlier
4e0af5efd4
DragonFlyBSD little build fix
2018-11-11 18:49:55 +00:00
Salvatore Sanfilippo
7721fe83e9
Merge pull request #5507 from devnexen/clang_build_fix_warnings
...
Fix clang build.
2018-11-08 12:12:28 +01:00
David Carlier
1d98666327
only FreeBSD change/little warning addressing
2018-11-08 10:13:52 +00:00
antirez
0cb798ea2b
Fix cluster-replica-no-failover option name.
...
Thanks to @NicolasLM, see issue #5537 .
2018-11-07 12:54:46 +01:00
antirez
560cdf359f
MEMORY command: make strcasecmp() conditional like the following.
2018-11-06 18:15:51 +01:00
Salvatore Sanfilippo
249cd9381d
Merge pull request #4526 from itamarhaber/memory_help
...
Standardizes `MEMORY HELP` subcommand
2018-11-06 18:13:17 +01:00
Salvatore Sanfilippo
e93387c1d3
Merge pull request #5526 from valentino-redislabs/init-server-hz
...
fix short period of server.hz being uninitialised
2018-11-06 13:00:15 +01:00
Salvatore Sanfilippo
1423abd15b
Merge pull request #5520 from itamarhaber/latency_help
...
Adds HELP to LATENCY
2018-11-06 12:28:08 +01:00
Salvatore Sanfilippo
d9e822a14b
Merge pull request #5529 from yongman/fix-rediscli-malloc
...
fix zmalloc in clusterManagerComputeReshardTable
2018-11-06 12:05:24 +01:00
yongman
4e74d9cf55
fix malloc in clusterManagerComputeReshardTable
2018-11-06 10:51:19 +08:00
artix
3a2d82ae8e
Cluster Manager: removed unused var.
2018-11-05 14:19:45 +01:00
artix
18ddbf0352
Cluster Manager: further improvements to "fix":
...
- clusterManagerFixOpenSlot: ensure that the
slot is unassigned before ADDSLOTS
- clusterManagerFixSlotsCoverage: after cold
migration, the slot configuration
is now updated on all the nodes.
2018-11-05 14:15:31 +01:00
artix
d6f0a9ac72
Cluster Manager: fixed string parsing issue in clusterManagerGetConfigSignature
2018-11-05 14:15:22 +01:00
artix
2e9859cbfc
Cluster Manager: better fix subcommand.
2018-11-05 14:15:12 +01:00
artix
be3a9dbb6f
Cluster Manager: fixed typos in comments.
2018-11-05 14:15:01 +01:00
artix
ab270a9777
Cluster Manager: fixed 'DELSLOT' subcommand typo.
2018-11-05 14:14:45 +01:00
antirez
6ba50784b5
Fix XCLAIM missing entry bug.
...
This bug had a double effect:
1. Sometimes entries may not be emitted, producing broken protocol where
the array length was greater than the emitted entires, blocking the
client waiting for more data.
2. Some other time the right entry was claimed, but a wrong entry was
returned to the client.
This fix should correct both the instances.
2018-11-05 13:17:32 +01:00
antirez
514bbdd670
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-11-05 13:07:14 +01:00
antirez
e7c579e1fe
Improve streamReplyWithRange() top comment.
2018-11-05 13:06:01 +01:00
valentino
eae8d05826
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
michael-grunder
5fa41e0c84
Use typedef'd mstime_t instead of time_t
...
This fixes an overflow on 32-bit systems.
2018-11-03 15:13:28 -07:00
Itamar Haber
e039c85bb4
Adds HELP to LATENCY
...
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2018-11-02 22:58:16 +02:00
Guy Korland
48d8b3d8ac
Fix some typos
2018-10-31 17:33:53 +02:00
antirez
fa675256c1
Add support for Sentinel authentication.
...
So far it was not possible to setup Sentinel with authentication
enabled. This commit introduces this feature: every Sentinel will try to
authenticate with other sentinels using the same password it is
configured to accept clients with.
So for instance if a Sentinel has a "requirepass" configuration
statemnet set to "foo", it will use the "foo" password to authenticate
with every other Sentinel it connects to. So basically to add the
"requirepass" to all the Sentinels configurations is enough in order to
make sure that:
1) Clients will require the password to access the Sentinels instances.
2) Each Sentinel will use the same password to connect and authenticate
with every other Sentinel in the group.
Related to #3279 and #3329 .
2018-10-31 12:56:47 +01:00
antirez
666b3437e6
Disable protected mode in Sentinel mode.
...
Sentinel must be exposed, so protected mode is just an issue for users
in case Redis was started in Sentinel mode.
Related to #3279 and #3329 .
2018-10-31 12:37:48 +01:00
antirez
06a4acb7d3
When replica kills a pending RDB save during SYNC, log it.
...
This logs what happens in the context of the fix in PR #5367 .
2018-10-31 11:47:10 +01:00
Salvatore Sanfilippo
6204d8c139
Merge pull request #5367 from nUl1/fullresync-stopbgsave
...
Prevent RDB autosave from overwriting full resync results
2018-10-31 11:42:04 +01:00
David Carlier
cf2f5e19d9
tweak form feedback
2018-10-31 09:53:07 +00:00
David Carlier
a21d1522c7
allow flavors
2018-10-30 14:38:05 +00:00
David Carlier
6534b3e09e
Fix clang build.
...
Some math functions require c11 standard.
2018-10-30 13:23:43 +00:00
antirez
0c875c7751
asyncCloseClientOnOutputBufferLimitReached(): don't free fake clients.
...
Fake clients are used in special situations and are not linked to the
normal clients list, freeing them will always result in Redis crashing
in one way or the other.
It's not common to send replies to fake clients, but we have one usage
in the modules API. When a client is blocked, we associate to the
blocked client object (that is safe to manipulate in a thread), a fake
client that accumulates replies. So because of this bug there was
the problem described in issue #5443 .
The fix was verified to work with the provided example module. To write
a regression is very hard and unlikely to be triggered in the future.
2018-10-30 13:38:41 +01:00
David Carlier
ae3bfe583e
needs it for the global
2018-10-26 14:12:47 +00:00
David Carlier
0b73d0a8d2
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
antirez
b8febe60b4
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-10-25 13:08:58 +02:00
antirez
f5494b1862
Add command fingerprint comment for XSETID.
2018-10-25 13:08:48 +02:00
Salvatore Sanfilippo
6dde56bf93
Merge pull request #5454 from soloestoy/multi-oom
...
MULTI: OOM err if cannot free enough memory in MULTI/EXEC context
2018-10-25 13:00:19 +02:00
antirez
998001fbf2
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-10-25 11:50:15 +02:00
Salvatore Sanfilippo
12d5be1bf2
Merge pull request #5459 from itamarhaber/xpending_count_underflow
...
A fix to XPENDING's count underflow
2018-10-25 11:50:04 +02:00
antirez
6e11ef30e0
Fix XRANGE COUNT option for value of 0.
2018-10-25 11:36:24 +02:00
antirez
f06e8c331c
Fix typo in streamReplyWithRange() top comment.
2018-10-24 16:28:44 +02:00
Salvatore Sanfilippo
e8c108e938
Merge pull request #5469 from soloestoy/stat-key-miss-if-expired
...
if we read a expired key, misses++
2018-10-24 12:31:28 +02:00
Salvatore Sanfilippo
a2131f907a
Merge pull request #5453 from damz/pr/aof-buffer-evict
...
Overhead is the allocated size of the AOF buffer, not its length
2018-10-24 12:28:28 +02:00
antirez
8749fc3f67
Simplify part of the #5470 patch.
2018-10-24 12:26:27 +02:00
Salvatore Sanfilippo
3c89fb5ffd
Merge pull request #5470 from soloestoy/keys-no-trigger-expire
...
do not delete expired keys in KEYS command
2018-10-24 12:23:59 +02:00
antirez
54e8dd11ff
Use guide comments to make changes in #5462 more obvious.
2018-10-22 17:43:48 +02:00
antirez
0f18d8e0ed
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-10-22 17:41:43 +02:00
Salvatore Sanfilippo
3f6893a4e2
Merge pull request #5462 from youjiali1995/fix-migrate-expired-keys
...
migrate: fix mismatch of RESTORE reply when some keys have expired.
2018-10-22 17:40:37 +02:00
antirez
c33ef454f0
Remove useless complexity from MSET implementation.
2018-10-22 12:24:02 +02:00
Salvatore Sanfilippo
2f8912c36c
Merge pull request #5451 from hujiecs/unstable
...
several typos fixed, optimize MSETNX to avoid unnecessary loop
2018-10-22 12:17:08 +02:00
hujie
e610dbce14
fix typo in config.c
2018-10-21 10:37:36 +08:00
hujie
63e41ee192
fix typo
2018-10-20 12:18:56 +08:00
Thomas Orozco
f24ad5d831
cli: pass auth through REDISCLI_AUTH
...
This adds support for passing a password through a REDISCLI_AUTH
environment variable (which is safer than the CLI), which might often be
safer than passing it through a CLI argument.
Passing a password this way does not trigger the warning about passing a
password through CLI arguments, and CLI arguments take precedence over
it.
2018-10-19 19:15:14 +02:00
zhaozhao.zz
5ddd507624
if we read a expired key, misses++
2018-10-19 18:16:29 +08:00
zhaozhao.zz
7ab9cba59b
do not delete expired keys in KEYS command
2018-10-19 18:00:57 +08:00
antirez
f30b18f4de
Fix again stack generation on the Raspberry Pi.
...
The fix was removed by c8ca71d40
attempting to fix the stack generation
on ARM64, without testing if it would still work on ARM32.
Now it should work both sides.
2018-10-19 10:39:57 +02:00
youjiali1995
a6499ecac2
migrate: fix mismatch of RESTORE reply when some keys have expired.
2018-10-18 18:57:51 +08:00
Itamar Haber
edeaf85cab
Plugs a potential underflow
2018-10-17 19:33:11 +03:00
antirez
144832ee67
Streams: use bulk replies instead of status replies.
...
They play better with Lua scripting, otherwise Lua will see status
replies as "ok" = "string" which is very odd, and actually as @oranagra
reasoned in issue #5456 in the rest of the Redis code base there was no
such concern as saving a few bytes when the protocol is emitted.
2018-10-17 17:21:09 +02:00
Itamar Haber
acb3b55280
Corrects inline documentation of syntax
2018-10-17 16:13:55 +03:00
antirez
fdb575993f
Fix conditional in XGROUP.
2018-10-17 13:00:35 +02:00
antirez
ad78b50f62
Update help.h for redis-cli.
2018-10-17 12:57:21 +02:00
antirez
492fd5c011
Fix XGROUP CREATE MKSTREAM handling of .
2018-10-17 12:10:52 +02:00
antirez
2e3d403349
Process MKSTREAM option of XGROUP CREATE at a later time.
...
This avoids issues with having to replicate a command that produced
errors.
2018-10-17 12:04:06 +02:00
antirez
ab11c5ebd1
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2018-10-17 11:36:03 +02:00
antirez
cb27dd1a68
XGROUP CREATE: MKSTREAM option for automatic stream creation.
2018-10-17 11:27:27 +02:00
zhaozhao.zz
e2de7e7524
MULTI: OOM err if cannot free enough memory in MULTI/EXEC context
2018-10-17 16:40:45 +08:00
Salvatore Sanfilippo
3f7bc5a5d2
Merge pull request #5333 from soloestoy/stream-commands-flag
...
Scripting & Streams: some commands need right flags
2018-10-17 07:50:32 +02:00
Damien Tournoud
29e488cbb0
Overhead is the allocated size of the AOF buffer, not its length
2018-10-16 11:47:42 -07:00
zhaozhao.zz
a273ce9578
Streams: rewrite empty streams with certain lastid
2018-10-16 23:47:27 +08:00
antirez
c1689166b7
Streams: rewrite empty streams with XADD MAXLEN 0. Use XSETID.
...
Related to #5426 .
2018-10-16 16:48:31 +02:00
antirez
ea78a1db32
XSETID: accept IDs based on last entry.
...
Related to #5426 .
2018-10-16 16:46:17 +02:00
antirez
e3446fea9e
Streams: XSTREAM SETID -> XSETID.
...
Keep vanilla stream commands at toplevel, see #5426 .
2018-10-16 13:17:14 +02:00
Salvatore Sanfilippo
af09df08d7
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