5360 Commits

Author SHA1 Message Date
Salvatore Sanfilippo
bcd4fb04ad 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
8981b91c2f 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
4c65479744 Abort instead of crashing when loading bad stream master key.
See #5612.
2018-11-28 16:24:53 +01:00
David Carlier
131343d466 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
5cd50d39fb 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
99c2604541 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
be459c7e26 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
c2fa863c55 fix typo 2018-11-23 23:51:16 +08:00
yongman
3afdde7c56 Fix choose a random master node for slot assignment 2018-11-23 16:58:55 +08:00
Salvatore Sanfilippo
5099745426 Merge pull request #5553 from devnexen/dflybsd_build_fix
DragonFlyBSD little build fix
2018-11-22 11:16:30 +01:00
yongman
1a86562f52 skip slave nodes when sending cluster setslot command 2018-11-21 23:01:35 +08:00
Salvatore Sanfilippo
59c5134218 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
9956f4f61b 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
195e754247 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-11-19 16:51:09 +01:00
antirez
cd47c66c7a 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
f943c1d3f4 t_stream.c comment resized to 80 cols. 2018-11-19 16:26:02 +01:00
yongman
16b57b8e23 Fix pointer access and memory leak in redis-cli. 2018-11-16 17:27:27 +08:00
Weiliang Li
94bda53a8a fix comment typo in util.c
fix comment typo in util.c
2018-11-15 16:55:40 +08:00
David Carlier
d034b38f4f DragonFlyBSD little build fix 2018-11-11 18:49:55 +00:00
Salvatore Sanfilippo
eb2ec54b49 Merge pull request #5507 from devnexen/clang_build_fix_warnings
Fix clang build.
2018-11-08 12:12:28 +01:00
David Carlier
7cfbba40f0 only FreeBSD change/little warning addressing 2018-11-08 10:13:52 +00:00
antirez
8abfdc43f1 Fix cluster-replica-no-failover option name.
Thanks to @NicolasLM, see issue #5537.
2018-11-07 12:54:46 +01:00
antirez
465d1b7934 MEMORY command: make strcasecmp() conditional like the following. 2018-11-06 18:15:51 +01:00
Salvatore Sanfilippo
360eb38691 Merge pull request #4526 from itamarhaber/memory_help
Standardizes `MEMORY HELP` subcommand
2018-11-06 18:13:17 +01:00
Salvatore Sanfilippo
1d9d0b212f 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
951b43eae9 Merge pull request #5520 from itamarhaber/latency_help
Adds HELP to LATENCY
2018-11-06 12:28:08 +01:00
Salvatore Sanfilippo
d7fa595ed5 Merge pull request #5529 from yongman/fix-rediscli-malloc
fix zmalloc in clusterManagerComputeReshardTable
2018-11-06 12:05:24 +01:00
yongman
53fe09b382 fix malloc in clusterManagerComputeReshardTable 2018-11-06 10:51:19 +08:00
artix
8eb1f32c6d Cluster Manager: removed unused var. 2018-11-05 14:19:45 +01:00
artix
a80bd01a4e 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
6ce7b41f3e Cluster Manager: fixed string parsing issue in clusterManagerGetConfigSignature 2018-11-05 14:15:22 +01:00
artix
5a64a34e85 Cluster Manager: better fix subcommand. 2018-11-05 14:15:12 +01:00
artix
18428a513a Cluster Manager: fixed typos in comments. 2018-11-05 14:15:01 +01:00
artix
f90eccb9ee Cluster Manager: fixed 'DELSLOT' subcommand typo. 2018-11-05 14:14:45 +01:00
antirez
7f5f6d954e 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
9bfdc19946 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-11-05 13:07:14 +01:00
antirez
27cf2a7c00 Improve streamReplyWithRange() top comment. 2018-11-05 13:06:01 +01:00
valentino
dcc2c9babe 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
71a2f9b1b4 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
b4dfc7d502 Adds HELP to LATENCY
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2018-11-02 22:58:16 +02:00
Guy Korland
8e3ec37117 Fix some typos 2018-10-31 17:33:53 +02:00
antirez
44e7a8a942 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
7e6d1fae1b 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
f727bf95f7 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
beefadd929 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
266f2e8900 tweak form feedback 2018-10-31 09:53:07 +00:00
David Carlier
2c3f9cd668 allow flavors 2018-10-30 14:38:05 +00:00
David Carlier
95423cc26c Fix clang build.
Some math functions require c11 standard.
2018-10-30 13:23:43 +00:00
antirez
3fee01a94d 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
bcb8dcc601 needs it for the global 2018-10-26 14:12:47 +00:00