5561 Commits

Author SHA1 Message Date
Salvatore Sanfilippo
390e02f2c9 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
1cc8f51b18 Abort instead of crashing when loading bad stream master key.
See #5612.
2018-11-28 16:24:53 +01:00
David Carlier
a4b8ccb339 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
ccf76940ee 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
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
yongman
ff4a59c87d fix typo 2018-11-23 23:51:16 +08:00
yongman
dd759108d3 Fix choose a random master node for slot assignment 2018-11-23 16:58:55 +08:00
Salvatore Sanfilippo
04df6f1fda Merge pull request #5553 from devnexen/dflybsd_build_fix
DragonFlyBSD little build fix
2018-11-22 11:16:30 +01:00
yongman
3196f40c0c skip slave nodes when sending cluster setslot command 2018-11-21 23:01:35 +08:00
Salvatore Sanfilippo
e29a0d085d 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
5265c6a2db 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
652b3cf019 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-11-19 16:51:09 +01:00
antirez
cdf75085bb 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
c9e59c310b t_stream.c comment resized to 80 cols. 2018-11-19 16:26:02 +01:00
yongman
1bf2f11821 Fix pointer access and memory leak in redis-cli. 2018-11-16 17:27:27 +08:00
Weiliang Li
6600083bbc fix comment typo in util.c
fix comment typo in util.c
2018-11-15 16:55:40 +08:00
David Carlier
81180ee56b DragonFlyBSD little build fix 2018-11-11 18:49:55 +00:00
Salvatore Sanfilippo
057fdc2ad9 Merge pull request #5507 from devnexen/clang_build_fix_warnings
Fix clang build.
2018-11-08 12:12:28 +01:00
David Carlier
996eb3b0af only FreeBSD change/little warning addressing 2018-11-08 10:13:52 +00:00
antirez
2464cacc55 Fix cluster-replica-no-failover option name.
Thanks to @NicolasLM, see issue #5537.
2018-11-07 12:54:46 +01:00
antirez
3fd976a78c MEMORY command: make strcasecmp() conditional like the following. 2018-11-06 18:15:51 +01:00
Salvatore Sanfilippo
5dd561b484 Merge pull request #4526 from itamarhaber/memory_help
Standardizes `MEMORY HELP` subcommand
2018-11-06 18:13:17 +01:00
Salvatore Sanfilippo
12c240db37 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
5510aafa9b Merge pull request #5520 from itamarhaber/latency_help
Adds HELP to LATENCY
2018-11-06 12:28:08 +01:00
Salvatore Sanfilippo
1d13cd12b2 Merge pull request #5529 from yongman/fix-rediscli-malloc
fix zmalloc in clusterManagerComputeReshardTable
2018-11-06 12:05:24 +01:00
yongman
11eba37923 fix malloc in clusterManagerComputeReshardTable 2018-11-06 10:51:19 +08:00
artix
8475a6c5c4 Cluster Manager: removed unused var. 2018-11-05 14:19:45 +01:00
artix
acc17f2c5a 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
35af3fa1d9 Cluster Manager: fixed string parsing issue in clusterManagerGetConfigSignature 2018-11-05 14:15:22 +01:00
artix
1167734c70 Cluster Manager: better fix subcommand. 2018-11-05 14:15:12 +01:00
artix
91b5772dce Cluster Manager: fixed typos in comments. 2018-11-05 14:15:01 +01:00
artix
2ed5381e4a Cluster Manager: fixed 'DELSLOT' subcommand typo. 2018-11-05 14:14:45 +01:00
antirez
4c3254d720 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
bb2dc37ae6 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-11-05 13:07:14 +01:00
antirez
f3f1cf8760 Improve streamReplyWithRange() top comment. 2018-11-05 13:06: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
michael-grunder
3f5260fd02 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
863e969675 Adds HELP to LATENCY
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2018-11-02 22:58:16 +02:00
Guy Korland
d923a4ae6b Fix some typos 2018-10-31 17:33:53 +02:00
antirez
d1d9140540 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
13405529ab 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
2e14b6bbca 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
2a5ac7ad88 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
185a0ac62a tweak form feedback 2018-10-31 09:53:07 +00:00
David Carlier
131df0d757 allow flavors 2018-10-30 14:38:05 +00:00
David Carlier
8d5748a0bb Fix clang build.
Some math functions require c11 standard.
2018-10-30 13:23:43 +00:00
antirez
5789a7ef6d 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
977556fa5b needs it for the global 2018-10-26 14:12:47 +00: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