10115 Commits

Author SHA1 Message Date
artix
f90eccb9ee 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
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
514bbdd670 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-11-05 13:07:14 +01:00
antirez
9bfdc19946 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
antirez
27cf2a7c00 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
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
Salvatore Sanfilippo
d790e2db2e
Merge pull request #5521 from michael-grunder/mstime-32bit-fix
Use typedef'd mstime_t instead of time_t
2018-11-04 00:25:11 +01:00
Salvatore Sanfilippo
7261d1f283 Merge pull request #5521 from michael-grunder/mstime-32bit-fix
Use typedef'd mstime_t instead of time_t
2018-11-04 00:25:11 +01: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
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
e039c85bb4 Adds HELP to LATENCY
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2018-11-02 22:58:16 +02:00
Itamar Haber
b4dfc7d502 Adds HELP to LATENCY
Signed-off-by: Itamar Haber <itamar@redislabs.com>
2018-11-02 22:58:16 +02:00
Salvatore Sanfilippo
edce5150bf
Merge pull request #5511 from gkorland/patch-1
Fix some typos
2018-10-31 16:36:12 +01:00
Salvatore Sanfilippo
16fa37ea0e Merge pull request #5511 from gkorland/patch-1
Fix some typos
2018-10-31 16:36:12 +01:00
Guy Korland
48d8b3d8ac
Fix some typos 2018-10-31 17:33:53 +02:00
Guy Korland
8e3ec37117 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
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
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
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
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
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
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
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
e84d327fc1 Merge branch 'clang_build_fix_warnings' of https://github.com/devnexen/redis into clang_build_fix_warnings 2018-10-31 09:53:25 +00:00
David Carlier
41903baf9c Merge branch 'clang_build_fix_warnings' of https://github.com/devnexen/redis into clang_build_fix_warnings 2018-10-31 09:53:25 +00:00
David Carlier
cf2f5e19d9 tweak form feedback 2018-10-31 09:53:07 +00:00
David Carlier
266f2e8900 tweak form feedback 2018-10-31 09:53:07 +00:00
David Carlier
9d6fbf0e00 allow flavors 2018-10-30 21:41:49 +00:00
David Carlier
725fbf78ee allow flavors 2018-10-30 21:41:49 +00:00
David Carlier
a21d1522c7 allow flavors 2018-10-30 14:38:05 +00:00
David Carlier
2c3f9cd668 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
David Carlier
95423cc26c 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
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
Salvatore Sanfilippo
f1408b1729
Merge pull request #5489 from devnexen/unstable
Fix non Linux build.
2018-10-29 18:25:14 +01:00
Salvatore Sanfilippo
a304f91816 Merge pull request #5489 from devnexen/unstable
Fix non Linux build.
2018-10-29 18:25:14 +01:00
David Carlier
ae3bfe583e needs it for the global 2018-10-26 14:12:47 +00:00
David Carlier
bcb8dcc601 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
David Carlier
869612a867 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
26599b4f6c 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
antirez
c7818eec49 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