History log of /redis-3.2.3/src/server.c (Results 1 – 25 of 59)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: 8.0-m02, 6.2.16, 7.2.6, 7.4.1, 8.0-m01, 7.4.0, 7.4-rc2, 7.4-rc1, 7.2.5, 7.2.4, 7.0.15, 7.2.3, 7.2.2, 7.0.14, 6.2.14, 6.2.15, 7.2.1, 7.0.13, 7.2.0, 7.2-rc3, 7.0.12, 6.2.13, 6.0.20, 7.2-rc2, 6.0.19, 6.2.12, 7.0.11, 7.2-rc1, 7.0.10, 7.0.9, 6.2.11, 6.0.18, 6.2.10, 6.0.17, 6.2.9, 7.0.8, 7.0.7, 7.0.6, 6.2.8, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.1, 7.0.0, 6.2.7, 7.0-rc3, 7.0-rc2, 7.0-rc1, 6.2.6, 6.0.16, 5.0.14, 5.0.13, 6.0.15, 6.2.5, 6.0.14, 6.2.4, 6.2.3, 6.0.13, 6.2.2, 6.2.1, 6.0.12, 5.0.12, 6.0.11, 6.2.0, 5.0.11, 6.2-rc3, 6.0.10, 6.2-rc2, 6.2-rc1, 6.0.9, 5.0.10, 6.0.8, 6.0.7, 6.0.6, 6.0.5, 6.0.4, 6.0.3, 6.0.2, 6.0.1, 6.0.0, 5.0.9, 6.0-rc4, 6.0-rc3, 5.0.8, 6.0-rc2, 6.0-rc1, 5.0.7, 5.0.6, 5.0.5, 3.2.13, 4.0.14, 5.0.4, 4.0.13, 5.0.3, 4.0.12, 5.0.2, 5.0.1, 5.0.0, 5.0-rc6, 5.0-rc5, 4.0.11, 5.0-rc4, 5.0-rc3, 5.0-rc2, 4.0.10, 3.2.12, 5.0-rc1, 4.0.9, 4.0.8, 4.0.7, 4.0.6, 4.0.5, 4.0.4, 4.0.3, 3.2.11, 4.0.2, 3.2.10, 4.0.1, 4.0.0, 3.2.9, 4.0-rc3, 3.2.8, 3.2.7, 3.2.6, 4.0-rc2, 4.0-rc1, 3.2.5, 3.2.4, 3.2.3, 3.2.2
# 0a45fbc3 27-Jul-2016 antirez <[email protected]>

Ability of slave to announce arbitrary ip/port to master.

This feature is useful, especially in deployments using Sentinel in
order to setup Redis HA, where the slave is executed with NAT or port
fo

Ability of slave to announce arbitrary ip/port to master.

This feature is useful, especially in deployments using Sentinel in
order to setup Redis HA, where the slave is executed with NAT or port
forwarding, so that the auto-detected port/ip addresses, as listed in
the "INFO replication" output of the master, or as provided by the
"ROLE" command, don't match the real addresses at which the slave is
reachable for connections.

show more ...


# 21cffc26 21-Jul-2016 antirez <[email protected]>

Avoid simultaneous RDB and AOF child process.

This patch, written in collaboration with Oran Agra (@oranagra) is a companion
to 780a8b1. Together the two patches should avoid that the AOF and RDB sa

Avoid simultaneous RDB and AOF child process.

This patch, written in collaboration with Oran Agra (@oranagra) is a companion
to 780a8b1. Together the two patches should avoid that the AOF and RDB saving
processes can be spawned at the same time. Previously conditions that
could lead to two saving processes at the same time were:

1. When AOF is enabled via CONFIG SET and an RDB saving process is
already active.

2. When the SYNC command decides to start an RDB saving process ASAP in
order to serve a new slave that cannot partially resynchronize (but
only if we have a disk target for replication, for diskless
replication there is not such a problem).

Condition "1" is not very severe but "2" can happen often and is
definitely good at degrading Redis performances in an unexpected way.

The two commits have the effect of always spawning RDB savings for
replication in replicationCron() instead of attempting to start an RDB
save synchronously. Moreover when a BGSAVE or AOF rewrite must be
performed, they are instead just postponed using flags that will try to
perform such operations ASAP.

Finally the BGSAVE command was modified in order to accept a SCHEDULE
option so that if an AOF rewrite is in progress, when this option is
given, the command no longer returns an error, but instead schedules an
RDB rewrite operation for when it will be possible to start it.

show more ...


# 35b18bfb 01-Jul-2016 antirez <[email protected]>

In Redis RDB check: better error reporting.


# f578f085 30-Jun-2016 antirez <[email protected]>

In Redis RDB check: initial POC.

So far we used an external program (later executed within Redis) and
parser in order to check RDB files for correctness. This forces, at each
RDB format update, to h

In Redis RDB check: initial POC.

So far we used an external program (later executed within Redis) and
parser in order to check RDB files for correctness. This forces, at each
RDB format update, to have two copies of the same format implementation
that are hard to keep in sync. Morover the former RDB checker only
checked the very high-level format of the file, without actually trying
to load things in memory. Certain corruptions can only be handled by
really loading key-value pairs.

This first commit attempts to unify the Redis RDB loadig code with the
task of checking the RDB file for correctness. More work is needed but
it looks like a sounding direction so far.

show more ...


Revision tags: 3.2.1
# b23aa670 14-Jun-2016 antirez <[email protected]>

TTL and TYPE LRU access fixed. TOUCH implemented.


# 620783e3 28-May-2016 Itamar Haber <[email protected]>

Allow SPOP from Lua scripts

The existing `R` flag appears to be sufficient and there's no apparent reason why the command should be blocked.


# 60323407 09-May-2016 oranagra <[email protected]>

minor fixes - mainly signalModifiedKey, and GEORADIUS


Revision tags: 3.2.0
# f01a2714 05-May-2016 antirez <[email protected]>

Revert "Fix commandCommand arity"

This reverts commit 1189a4eae6d009fc0da8d50fd542ba1391542165.

Actually this is wrong, the command can be called without args at all.


Revision tags: 3.2.0-rc3, 3.0.7, 3.2.0-rc2
# 1189a4ea 04-Jan-2016 Ruben Bridgewater <[email protected]>

Fix commandCommand arity


# 708f486c 05-May-2016 antirez <[email protected]>

Cluster: make getNodeByQuery() responsible of -CLUSTERDOWN errors.

This fixes a bug introduced by d827dbf, and makes the code consistent
with the logic of always allowing, while the cluster is down,

Cluster: make getNodeByQuery() responsible of -CLUSTERDOWN errors.

This fixes a bug introduced by d827dbf, and makes the code consistent
with the logic of always allowing, while the cluster is down, commands
that don't target any key.

As a side effect the code is also simpler now.

show more ...


# 0fda0622 05-May-2016 antirez <[email protected]>

Bind both IPv4 and IPv6 or exit with an error by default.

Thanks to @tushar2708 for the PR. I applied a slightly different fix.
Thanks to @cespare for reporting.

Close #3024
Close #3020


# 1f3ed652 11-Mar-2016 Chris Thunes <[email protected]>

Ensure slots are rechecked on EXEC.

Fixes #2515.


# 3a481067 22-Apr-2016 therealbill <[email protected]>

fix for #3187

I've renamed maxmemoryToString to evictPolicyToString since that is
more accurate (and easier to mentally connect with the correct data), as
well as updated the function to user server

fix for #3187

I've renamed maxmemoryToString to evictPolicyToString since that is
more accurate (and easier to mentally connect with the correct data), as
well as updated the function to user server.maxmemory_policy rather than
server.maxmemory. Now with a default config it is actually returning
the correct policy rather than volatile-lru.

show more ...


# ae95de93 04-May-2016 antirez <[email protected]>

Allow CONFIG GET during loading.

Thanks to @oranagra for the idea of allowing CONFIG GET during loading.


# 3ff8f57e 04-May-2016 antirez <[email protected]>

Command "r" flag removed from commands not accessing the key space.

Thanks to @oranagra for the hint about misplaced 'r' flags.


# 07b852d2 04-May-2016 antirez <[email protected]>

DEBUG command self documentation.


# ba9154d7 02-Mar-2016 antirez <[email protected]>

Fix INFO commandstats reporting when argv is rewritten.

We want to report the original command in the stats, for example GEOADD,
even when what is actually executed is the ZADD implementation.


# 761a7728 25-Feb-2016 antirez <[email protected]>

BITFIELD command initial implementation.

The new bitfield command is an extension to the Redis bit operations,
where not just single bit operations are performed, but the array of
bits composing a s

BITFIELD command initial implementation.

The new bitfield command is an extension to the Redis bit operations,
where not just single bit operations are performed, but the array of
bits composing a string, can be addressed at random, not aligned
offsets, with any width unsigned and signed integers like u8, s5, u10
(up to 64 bit signed integers and 63 bit unsigned integers).

The BITFIELD command supports subcommands that can SET, GET, or INCRBY
those arbitrary bit counters, with multiple overflow semantics.

Trivial and credits:

A similar command was imagined a few times in the past, but for
some reason looked a bit far fetched or not well specified.
Finally the command was proposed again in a clear form by
Yoav Steinberg from Redis Labs, that proposed a set of commands on
arbitrary sized integers stored at bit offsets.

Starting from this proposal I wrote an initial specification of a single
command with sub-commands similar to what Yoav envisioned, using short
names for types definitions, and adding control on the overflow.

This commit is the resulting implementation.

Examples:

BITFIELD mykey OVERFLOW wrap INCRBY i2 10 -1 GET i2 10

show more ...


# 0b6daf5a 18-Feb-2016 antirez <[email protected]>

New options for GEORADIUS: STORE and STOREDIST.

Related to issue #3019.


# cd9f7c69 03-Feb-2016 Itamar Haber <[email protected]>

Fixes a typo


# b81fb9cd 26-Jan-2016 antirez <[email protected]>

Use a smoother running average for avg_ttl in INFO.

Reported here:
https://www.reddit.com/r/redis/comments/42r0i0/avg_ttl_varies_a_lot/


# 273c49e7 07-Jan-2016 antirez <[email protected]>

New security feature: Redis protected mode.

An exposed Redis instance on the internet can be cause of serious
issues. Since Redis, by default, binds to all the interfaces, it is easy
to forget an in

New security feature: Redis protected mode.

An exposed Redis instance on the internet can be cause of serious
issues. Since Redis, by default, binds to all the interfaces, it is easy
to forget an instance without any protection layer, for error.

Protected mode try to address this feature in a soft way, providing a
layer of protection, but giving clues to Redis users about why the
server is not accepting connections.

When protected mode is enabeld (the default), and if there are no
minumum hints about the fact the server is properly configured (no
"bind" directive is used in order to restrict the server to certain
interfaces, nor a password is set), clients connecting from external
intefaces are refused with an error explaining what to do in order to
fix the issue.

Clients connecting from the IPv4 and IPv6 lookback interfaces are still
accepted normally, similarly Unix domain socket connections are not
restricted in any way.

show more ...


Revision tags: 3.2-rc1, 3.0.6, 2.8.24
# 7a7e46b2 17-Dec-2015 antirez <[email protected]>

Fix a race that may lead to the active (slave) client to be freed.

In issue #2948 a crash was reported in processCommand(). Later Oran Agra
(@oranagra) traced the bug (in private chat) in the follow

Fix a race that may lead to the active (slave) client to be freed.

In issue #2948 a crash was reported in processCommand(). Later Oran Agra
(@oranagra) traced the bug (in private chat) in the following sequence
of events:

1. Some maxmemory is set.
2. The slave is the currently active client and is executing PING or
REPLCONF or whatever a slave can send to its master.
3. freeMemoryIfNeeded() is called since maxmemory is set.
4. flushSlavesOutputBuffers() is called by freeMemoryIfNeeded().
5. During slaves buffers flush, a write error could be encoutered in
writeToClient() or sendReplyToClient() depending on the version of
Redis. This will trigger freeClient() against the currently active
client, so a segmentation fault will likely happen in
processCommand() immediately after the call to freeMemoryIfNeeded().

There are different possible fixes:

1. Add flags to writeToClient() (recent versions code base) so that
we can ignore the write errors, and use this flag in
flushSlavesOutputBuffers(). However this is not simple to do in older
versions of Redis.
2. Use freeClientAsync() during write errors. This works but changes the
current behavior of releasing clients ASAP when possible. Normally
we write to clients during the normal event loop processing, in the
writable client, where there is no active client, so no care must be
taken.
3. The fix of this commit: to detect that the current client is no
longer valid. This fix is a bit "ad-hoc", but works across all the
versions and has the advantage of not changing the remaining
behavior. Only alters what happens during this race condition,
hopefully.

show more ...


# f50dfff0 17-Dec-2015 antirez <[email protected]>

Fix processCommand() comment about return value.


# 00353f99 11-Dec-2015 antirez <[email protected]>

MIGRATE: Fix key extraction for new form.


123