diff options
author | antirez <antirez@gmail.com> | 2017-09-21 12:35:04 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2017-09-21 12:35:04 +0200 |
commit | 474adba9fa7a173d866300b1abd7cddd34cbac40 (patch) | |
tree | 8473dd55a7fe520865eaa11beb6f0907e8841a45 | |
parent | fa2c0582cfa614cd854b4a64ddce1493da9317bb (diff) | |
download | redis-474adba9fa7a173d866300b1abd7cddd34cbac40.tar.gz |
Clarify comment in change fixing #4323.
-rw-r--r-- | src/slowlog.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/slowlog.c b/src/slowlog.c index a95147153..32ec4374c 100644 --- a/src/slowlog.c +++ b/src/slowlog.c @@ -75,8 +75,12 @@ slowlogEntry *slowlogCreateEntry(client *c, robj **argv, int argc, long long dur } else if (argv[j]->refcount == OBJ_SHARED_REFCOUNT) { se->argv[j] = argv[j]; } else { - /* Duplicate a string object, - * avoid memory leak for lazyfree. */ + /* Here we need to dupliacate the string objects composing the + * argument vector of the command, because those may otherwise + * end shared with string objects stored into keys. Having + * shared objects between any part of Redis, and the data + * structure holding the data, is a problem: FLUSHALL ASYNC + * may release the shared string object and create a race. */ se->argv[j] = dupStringObject(argv[j]); } } |