413 Commits

Author SHA1 Message Date
Yossi Gottlieb
d2aee5e4fe Fix compile warnings when BUILD_TLS=no. 2019-10-15 15:24:32 +03:00
Yossi Gottlieb
514e5aa8ef TLS: Improve CA certifiate configuration options.
This adds support for explicit configuration of a CA certs directory (in
addition to the previously supported bundle file).  For redis-cli, if no
explicit CA configuration is supplied the system-wide default
configuration will be adopted.
2019-10-08 17:58:50 +03:00
Yossi Gottlieb
10ffeb03e4 TLS: Connections refactoring and TLS support.
* Introduce a connection abstraction layer for all socket operations and
integrate it across the code base.
* Provide an optional TLS connections implementation based on OpenSSL.
* Pull a newer version of hiredis with TLS support.
* Tests, redis-cli updates for TLS support.
2019-10-07 21:06:13 +03:00
Salvatore Sanfilippo
ade7ba8539 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
fddbae80fa redis-cli: support for ACL style user/pass AUTH. 2019-09-23 19:57:13 +02:00
antirez
c7481c6af1 redis-cli: CSV and RAW target for more RESP3 types. 2019-09-23 19:36:06 +02:00
antirez
ddb735f03a redis-cli: ability to start a session in RESP3 mode. 2019-09-23 17:55:05 +02:00
antirez
24a78adf10 redis-cli: AUTH can now have 3 arguments as well. 2019-09-23 17:47:36 +02:00
antirez
cd446eb161 RESP3: varbatim handling for other redis-cli outputs. 2019-09-23 17:42:57 +02:00
antirez
8ceffc0455 RESP3: implementation of verbatim output with TTY target. 2019-09-23 17:39:42 +02:00
antirez
1f813b3723 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
Diego Bendersky
f8b7c18d34 pass len to alloc in clusterManagerMigrateKeysInReply 2019-08-05 17:35:50 -03:00
Salvatore Sanfilippo
29032e0d88 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
e73f7b3a84 Merge pull request #5894 from soloestoy/fix-rdb-warning
Fix compile some warnings
2019-03-13 11:47:48 +01:00
zhaozhao.zz
9fd8f0df98 Fix compile warning in redis-cli.c 2019-03-13 16:54:34 +08:00
Salvatore Sanfilippo
d70014ec0e Merge pull request #5913 from wurongxin1987/unstable
fix a bufferoverflow bug
2019-03-12 17:25:21 +01:00
vattezhang
d41e245dab fix: fix the if condition in clusterManagerShowClusterInfo 2019-03-12 22:01:02 +08:00
wurongxin
4c4b18963b fix a bufferoverflow bug 2019-03-10 15:30:32 +08:00
artix
be32922ad0 Cluster Manager: add importing/migrating nodes to backup info 2019-03-06 16:38:36 +01:00
artix
0905d4f67a 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
620736b81b 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
95a7fb8c9d Cluster Manager: 'backup' command 2019-03-01 17:41:40 +01:00
artix
704e123664 Cluster Manager: change join issue message 2019-02-28 16:57:57 +01:00
artix
5b72ead0ee Cluster Manager: change text alert clusterManagerWaitForClusterJoin 2019-02-28 16:57:57 +01:00
artix
48d7f54aae Cluster Manager: code cleanup 2019-02-28 16:57:57 +01:00
artix
391caf8962 Cluster Manager: fix bus error in clusterManagerGetLinkStatus 2019-02-28 16:57:57 +01:00
Artix
0b6b8553a7 Cluster Manager: fix memory leaks in clusterManagerGetDisconnectedLinks 2019-02-28 16:57:57 +01:00
artix
1269590dd9 Cluster Manager: fix memory leak in clusterManagerWaitForClusterJoin 2019-02-28 16:57:57 +01:00
artix
d1aabe177a Cluster Manager: improve join issue checking 2019-02-28 16:57:57 +01:00
artix
b4a800b61e Cluster Manager: check for unreachable nodes during cluster join. 2019-02-28 16:57:57 +01:00
Salvatore Sanfilippo
62fe3057c5 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
e7d1af804e 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
6f84cf009b 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
da852aa8b1 Cluster Manager: fix replica assigment anti-affinity (create)
Fix issue #5849
2019-02-20 15:36:15 +01:00
artix
ed341848b3 Cluster Manager: remove unused code elements 2019-01-24 17:29:44 +01:00
Salvatore Sanfilippo
040d1ab3f0 Merge pull request #5743 from AngusP/forever-repeat-cli
Redis CLI: Fix broken interval and repeat behaviour (incluing in cluster mode)
2019-01-22 17:29:37 +01:00
Zhicheng Wei
f0b6798c75 fix clusterManagerGetAntiAffinityScore double free otypes 2019-01-19 11:38:36 +08:00
antirez
a55a23a09e RESP3: redis-cli support for boolean in TTY output. 2019-01-09 17:00:30 +01:00
antirez
1ef5342d37 RESP3: redis-cli: show the double as received from Redis. 2019-01-09 17:00:30 +01:00
antirez
1ba5f3222d RESP3: hiredis: initial double implementation. 2019-01-09 17:00:30 +01:00
antirez
02f34842d7 RESP3: hiredis: map and set display for TTY output. 2019-01-09 17:00:30 +01:00
Angus Pearson
462396d594 Add comment explaining negative repeat 2019-01-02 19:28:04 +00:00
Angus Pearson
d5facb4753 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
94f6693395 Cluster Manager del-node: use CLUSTER RESET in place of SHUTDOWN
See issue #5687
2018-12-27 17:20:42 +01:00
artix
6c20ebbbb6 Cluster Manager: enable --cluster-replace also for 'fix' command. 2018-12-19 17:29:25 +01:00
artix
de69c77451 Fixed memory leak in clusterManagerCompareKeysValues. 2018-12-18 18:45:10 +01:00
artix
8bcade7cfa 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
da1fc5e7e4 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
artix
4d2e9f9004 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
08c05082fd Cluster Manager:
- FixOpenSlot now correctly updates in-memory cluster configuration.
    - Improved output messages.
2018-12-10 17:43:58 +01:00