mirror of https://github.com/valkey-io/valkey
Merge 79f2ab98f3 into 51f871ae52
This commit is contained in:
commit
1210367d5a
|
|
@ -967,7 +967,7 @@ fmterr:
|
|||
* of the POSIX filesystem semantics, so that if the server is stopped
|
||||
* or crashes during the write, we'll end with either the old file or the
|
||||
* new one. Since we have the full payload to write available we can use
|
||||
* a single write to write the whole file. If the pre-existing file was
|
||||
* a single write to write the whole file. If the preexisting file was
|
||||
* bigger we pad our payload with newlines that are anyway ignored and truncate
|
||||
* the file afterward. */
|
||||
int clusterSaveConfig(int do_fsync) {
|
||||
|
|
@ -5905,7 +5905,7 @@ void clusterCron(void) {
|
|||
long long cluster_node_conn_attempts = maxConnectionAttemptsPerCron();
|
||||
while ((de = dictNext(di)) != NULL) {
|
||||
clusterNode *node = dictGetVal(de);
|
||||
/* We free the inbound or outboud link to the node if the link has an
|
||||
/* We free the inbound or outbound link to the node if the link has an
|
||||
* oversized message send queue and immediately try reconnecting. */
|
||||
clusterNodeCronFreeLinkOnBufferLimitReached(node);
|
||||
/* The protocol is that function(s) below return non-zero if the node was
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ Each element in this array is an object with the following keys:
|
|||
command line. The first key is the argument after the keyword.
|
||||
* `{"unknown": null}`: Finding the keys of this command is too complicated to
|
||||
explain.
|
||||
* `"find_keys"`: How to find the remainnig keys of this key spec. It's an object
|
||||
* `"find_keys"`: How to find the remaining keys of this key spec. It's an object
|
||||
on one of these forms:
|
||||
* `{"range": {"lastkey": LAST, "step": STEP, "limit": LIMIT}}`: A range of keys.
|
||||
* LAST: If LAST is positive, it's the index of the last key relative to the
|
||||
|
|
|
|||
|
|
@ -759,7 +759,7 @@ void functionRestoreCommand(client *c) {
|
|||
return;
|
||||
}
|
||||
|
||||
restorePolicy restore_replicy = restorePolicy_Append; /* default policy: APPEND */
|
||||
restorePolicy restore_policy = restorePolicy_Append; /* default policy: APPEND */
|
||||
sds data = c->argv[2]->ptr;
|
||||
size_t data_len = sdslen(data);
|
||||
rio payload;
|
||||
|
|
@ -768,11 +768,11 @@ void functionRestoreCommand(client *c) {
|
|||
if (c->argc == 4) {
|
||||
const char *restore_policy_str = c->argv[3]->ptr;
|
||||
if (!strcasecmp(restore_policy_str, "append")) {
|
||||
restore_replicy = restorePolicy_Append;
|
||||
restore_policy = restorePolicy_Append;
|
||||
} else if (!strcasecmp(restore_policy_str, "replace")) {
|
||||
restore_replicy = restorePolicy_Replace;
|
||||
restore_policy = restorePolicy_Replace;
|
||||
} else if (!strcasecmp(restore_policy_str, "flush")) {
|
||||
restore_replicy = restorePolicy_Flush;
|
||||
restore_policy = restorePolicy_Flush;
|
||||
} else {
|
||||
addReplyError(c, "Wrong restore policy given, value should be either FLUSH, APPEND or REPLACE.");
|
||||
return;
|
||||
|
|
@ -811,11 +811,11 @@ void functionRestoreCommand(client *c) {
|
|||
}
|
||||
}
|
||||
|
||||
if (restore_replicy == restorePolicy_Flush) {
|
||||
if (restore_policy == restorePolicy_Flush) {
|
||||
functionsLibCtxSwapWithCurrent(functions_lib_ctx, server.lazyfree_lazy_user_flush);
|
||||
functions_lib_ctx = NULL; /* avoid releasing the f_ctx in the end */
|
||||
} else {
|
||||
if (libraryJoin(curr_functions_lib_ctx, functions_lib_ctx, restore_replicy == restorePolicy_Replace, &err) !=
|
||||
if (libraryJoin(curr_functions_lib_ctx, functions_lib_ctx, restore_policy == restorePolicy_Replace, &err) !=
|
||||
C_OK) {
|
||||
goto load_error;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ int geohashGetDistanceIfInRectangle(double width_m,
|
|||
* The Polygon's centroid's lon lat coordinates are `centroidLon` and `centroidLat`.
|
||||
* The algorithm is based on PNPOLY - Point Inclusion in Polygon Test by W. Randolph Franklin (WRF).
|
||||
* See: https://wrfranklin.org/Research/Short_Notes/pnpoly.html
|
||||
* Returns 1 if inside the polyon and returns 0 otherwise. */
|
||||
* Returns 1 if inside the polygon and returns 0 otherwise. */
|
||||
int geohashGetDistanceIfInPolygon(double centroidLon, double centroidLat, double *point, double (*vertices)[2], int num_vertices, double *distance) {
|
||||
int i, j;
|
||||
int inside = 0;
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ lzf_decompress (const void *const in_data, size_t in_len,
|
|||
}
|
||||
else
|
||||
{
|
||||
/* overlapping, use octte by octte copying */
|
||||
/* overlapping, use octet by octet copying */
|
||||
do
|
||||
*op++ = *ref++;
|
||||
while (--len);
|
||||
|
|
|
|||
|
|
@ -8383,7 +8383,7 @@ ValkeyModuleBlockedClient *VM_BlockClientOnAuth(ValkeyModuleCtx *ctx,
|
|||
return bc;
|
||||
}
|
||||
|
||||
/* Get the private data that was previusely set on a blocked client */
|
||||
/* Get the private data that was previously set on a blocked client */
|
||||
void *VM_BlockClientGetPrivateData(ValkeyModuleBlockedClient *blocked_client) {
|
||||
return blocked_client->privdata;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1468,7 +1468,7 @@ void quicklistRotate(quicklist *quicklist) {
|
|||
|
||||
/* If quicklist has only one node, the head listpack is also the
|
||||
* tail listpack and PushHead() could have reallocated our single listpack,
|
||||
* which would make our pre-existing 'p' unusable. */
|
||||
* which would make our preexisting 'p' unusable. */
|
||||
if (quicklist->len == 1) {
|
||||
p = lpSeek(quicklist->tail->entry, -1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ raxNode *raxAddChild(raxNode *n, unsigned char c, raxNode **childptr, raxNode **
|
|||
/* Move the pointers to the left of the insertion position as well. Often
|
||||
* we don't need to do anything if there was already some padding to use. In
|
||||
* that case the final destination of the pointers will be the same, however
|
||||
* in our example there was no pre-existing padding, so we added one byte
|
||||
* in our example there was no preexisting padding, so we added one byte
|
||||
* plus three bytes of padding. After the next memmove() things will look
|
||||
* like that:
|
||||
*
|
||||
|
|
|
|||
|
|
@ -335,10 +335,10 @@ static size_t rioFdWrite(rio *r, const void *buf, size_t len) {
|
|||
|
||||
/* For small writes, we rather keep the data in user-space buffer, and flush
|
||||
* it only when it grows. however for larger writes, we prefer to flush
|
||||
* any pre-existing buffer, and write the new one directly without reallocs
|
||||
* any preexisting buffer, and write the new one directly without reallocs
|
||||
* and memory copying. */
|
||||
if (len > PROTO_IOBUF_LEN) {
|
||||
/* First, flush any pre-existing buffered data. */
|
||||
/* First, flush any preexisting buffered data. */
|
||||
if (sdslen(r->io.fd.buf)) {
|
||||
if (rioFdWrite(r, NULL, 0) == 0) return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4748,7 +4748,7 @@ int finishShutdown(void) {
|
|||
rsiptr = rdbPopulateSaveInfo(&rsi);
|
||||
/* Keep the page cache since it's likely to restart soon */
|
||||
if (rdbSave(REPLICA_REQ_NONE, server.rdb_filename, rsiptr, RDBFLAGS_KEEP_CACHE) != C_OK) {
|
||||
/* Ooops.. error saving! The best we can do is to continue
|
||||
/* Oops.. error saving! The best we can do is to continue
|
||||
* operating. Note that if there was a background saving process,
|
||||
* in the next cron() the server will be notified that the background
|
||||
* saving aborted, handling special stuff like replicas pending for
|
||||
|
|
|
|||
|
|
@ -3238,7 +3238,7 @@ void xclaimCommand(client *c) {
|
|||
* by the caller is satisfied by this entry.
|
||||
*
|
||||
* Note that the nack could be created by FORCE, in this
|
||||
* case there was no pre-existing entry and minidle should
|
||||
* case there was no preexisting entry and minidle should
|
||||
* be ignored, but in that case nack->consumer is NULL. */
|
||||
if (nack->consumer && minidle) {
|
||||
mstime_t this_idle = now - nack->delivery_time;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ long long _ustime(void); /* From test_crc64combine.c */
|
|||
* used in order to test the radix tree implementation against something that
|
||||
* will always "tell the truth" :-) */
|
||||
|
||||
/* This is huge but we want it fast enough without reahshing needed. */
|
||||
/* This is huge but we want it fast enough without rehashing needed. */
|
||||
#define HT_TABLE_SIZE 100000
|
||||
typedef struct htNode {
|
||||
uint64_t keylen;
|
||||
|
|
|
|||
|
|
@ -477,10 +477,10 @@ void checkMultiPartAof(char *dirpath, char *manifest_filepath, int fix) {
|
|||
sds aof_filename = am->base_aof_info->file_name;
|
||||
sds aof_filepath = makePath(dirpath, aof_filename);
|
||||
last_file = ++aof_num == total_num;
|
||||
int aof_preable = fileIsRDB(aof_filepath);
|
||||
int aof_preamble = fileIsRDB(aof_filepath);
|
||||
|
||||
printf("Start to check BASE AOF (%s format).\n", aof_preable ? "RDB" : "RESP");
|
||||
ret = checkSingleAof(aof_filename, aof_filepath, last_file, fix, aof_preable);
|
||||
printf("Start to check BASE AOF (%s format).\n", aof_preamble ? "RDB" : "RESP");
|
||||
ret = checkSingleAof(aof_filename, aof_filepath, last_file, fix, aof_preamble);
|
||||
printAofStyle(ret, aof_filename, (char *)"BASE AOF");
|
||||
sdsfree(aof_filepath);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ proc cluster_create_with_continuous_slots {masters slaves} {
|
|||
}
|
||||
|
||||
|
||||
# Set the cluster node-timeout to all the reachalbe nodes.
|
||||
# Set the cluster node-timeout to all the reachable nodes.
|
||||
proc set_cluster_node_timeout {to} {
|
||||
foreach_valkey_id id {
|
||||
catch {R $id CONFIG SET cluster-node-timeout $to}
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ proc spawn_instance {type base_port count {conf {}} {base_conf_file ""}} {
|
|||
if {[server_is_up $::host $port 100] == 0} {
|
||||
set logfile [file join $dirname log.txt]
|
||||
puts [exec tail $logfile]
|
||||
abort_sentinel_test "Problems starting $type #$j: ping timeout, maybe server start failed, check $logfile"
|
||||
abort_sentinel_test "Problem starting $type #$j: ping timeout, maybe server start failed, check $logfile"
|
||||
}
|
||||
|
||||
# Push the instance into the right list
|
||||
|
|
|
|||
|
|
@ -1020,7 +1020,7 @@ start_server {tags {"scripting"}} {
|
|||
r config set maxmemory 0
|
||||
} {OK} {needs:config-maxmemory}
|
||||
|
||||
test {FUNCTION - verify allow-omm allows running any command} {
|
||||
test {FUNCTION - verify allow-oom allows running any command} {
|
||||
r FUNCTION load replace {#!lua name=f1
|
||||
server.register_function{
|
||||
function_name='f1',
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ start_server {tags {"tracking network logreqres:skip"}} {
|
|||
assert_equal "PONG" [r ping]
|
||||
}
|
||||
|
||||
test {RESP3 Client gets tracking-redir-broken push message after cached key changed when rediretion client is terminated} {
|
||||
test {RESP3 Client gets tracking-redir-broken push message after cached key changed when redirection client is terminated} {
|
||||
# make sure r is working resp 3
|
||||
r HELLO 3
|
||||
r CLIENT TRACKING on REDIRECT $redir_id
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ start_server {
|
|||
r XADD mystream * a 1
|
||||
r XADD mystream * b 2
|
||||
# XREADGROUP should return only the new elements "a 1" "b 1"
|
||||
# and not the element "foo bar" which was pre existing in the
|
||||
# and not the element "foo bar" which was preexisting in the
|
||||
# stream (see previous test)
|
||||
set reply [
|
||||
r XREADGROUP GROUP mygroup consumer-1 STREAMS mystream ">"
|
||||
|
|
|
|||
|
|
@ -1012,7 +1012,7 @@ start_server {tags {"stream"}} {
|
|||
assert_equal [dict get $reply max-deleted-entry-id] "2-0"
|
||||
}
|
||||
|
||||
test {XADD with artial ID with maximal seq} {
|
||||
test {XADD with partial ID with maximal seq} {
|
||||
r DEL x
|
||||
r XADD x 1-18446744073709551615 f1 v1
|
||||
assert_error {*The ID specified in XADD is equal or smaller*} {r XADD x 1-* f2 v2}
|
||||
|
|
|
|||
|
|
@ -691,7 +691,7 @@ dir ./
|
|||
# is still in progress, the replica can act in two different ways:
|
||||
#
|
||||
# 1) if replica-serve-stale-data is set to 'yes' (the default) the replica will
|
||||
# still reply to client requests, possibly with out of date data, or the
|
||||
# still reply to client requests, possibly with out-of-date data, or the
|
||||
# data set may just be empty if this is the first synchronization.
|
||||
#
|
||||
# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error
|
||||
|
|
|
|||
Loading…
Reference in New Issue