27350 Commits

Author SHA1 Message Date
John Sully
70f3eab882 Install deps for daily workflow
Former-commit-id: 9b98c9edd3e8c9316514b7f9e0efc7a9f8d17851
2020-05-24 11:19:53 -04:00
John Sully
7630b63f06 Hold the AE lock until we process the repl backlog after a command
Former-commit-id: 4893eedacbf5f9210d02361ed07b9beee0c9f655
2020-05-24 11:19:23 -04:00
John Sully
23e1601276 Hold the AE lock until we process the repl backlog after a command
Former-commit-id: 4893eedacbf5f9210d02361ed07b9beee0c9f655
2020-05-24 11:19:23 -04:00
Salvatore Sanfilippo
07cdd478b3 Merge pull request #7315 from oranagra/ci-32bit
add CI for 32bit build
2020-05-24 09:50:04 +02:00
Salvatore Sanfilippo
b89e6d74fa
Merge pull request #7315 from oranagra/ci-32bit
add CI for 32bit build
2020-05-24 09:50:04 +02:00
John Sully
0d8c7c7182 Add standardized way to post client dependent functions
Former-commit-id: fb50163b47cf660911dc7f67809c15ba1394613a
2020-05-24 02:46:39 -04:00
John Sully
b892d3deff Add standardized way to post client dependent functions
Former-commit-id: fb50163b47cf660911dc7f67809c15ba1394613a
2020-05-24 02:46:39 -04:00
John Sully
65e4f82982 remove unnecessary cplusplus guard
Former-commit-id: 3b8463f9d20162369cffd9ed347865c5c8049f40
2020-05-24 02:45:55 -04:00
John Sully
f517eaf182 remove unnecessary cplusplus guard
Former-commit-id: 3b8463f9d20162369cffd9ed347865c5c8049f40
2020-05-24 02:45:55 -04:00
John Sully
0dd0ea7eda race in connection state when setting a handler on a different thread
Former-commit-id: 42c7677690c434168135992429f7521239475ef8
2020-05-24 02:45:11 -04:00
John Sully
78b647bd6f race in connection state when setting a handler on a different thread
Former-commit-id: 42c7677690c434168135992429f7521239475ef8
2020-05-24 02:45:11 -04:00
Oran Agra
c41e04bf41 add CI for 32bit build 2020-05-24 09:35:45 +03:00
Oran Agra
c1da9420c7 add CI for 32bit build 2020-05-24 09:35:45 +03:00
John Sully
d3bd1ab56b Fix ASAN races
Former-commit-id: 8665f250314c4e3de32f3b31a2c0158908ef982b
2020-05-24 01:58:33 -04:00
John Sully
dc27b95a47 Fix ASAN races
Former-commit-id: 8665f250314c4e3de32f3b31a2c0158908ef982b
2020-05-24 01:58:33 -04:00
John Sully
4136a1084b Incorrect locking in replication error paths
Former-commit-id: 1c6b57314747787958ad215826296627f9050f59
2020-05-24 01:57:49 -04:00
John Sully
cc080de221 Incorrect locking in replication error paths
Former-commit-id: 1c6b57314747787958ad215826296627f9050f59
2020-05-24 01:57:49 -04:00
John Sully
2ea5bf4f55 Incorrect memory order on weak ordered architectures
Former-commit-id: 90162da1a6c025d148a0d1761ae4d5fbc9bfc0ef
2020-05-24 01:57:18 -04:00
John Sully
51976e2be8 Incorrect memory order on weak ordered architectures
Former-commit-id: 90162da1a6c025d148a0d1761ae4d5fbc9bfc0ef
2020-05-24 01:57:18 -04:00
John Sully
dde860c60b If we request shutdown from a client on a different thread than a blocking lua script we fail to actually shutdown until the script completes
Former-commit-id: 1ca6c1dd56131bc28fe9f831e2b9cab7adb846a3
2020-05-24 01:56:23 -04:00
John Sully
926da1f899 If we request shutdown from a client on a different thread than a blocking lua script we fail to actually shutdown until the script completes
Former-commit-id: 1ca6c1dd56131bc28fe9f831e2b9cab7adb846a3
2020-05-24 01:56:23 -04:00
John Sully
aaff167eb9 race calculating client overhead
Former-commit-id: 2d27c8ecdb5242284301f135b1d542f9ead5b8f2
2020-05-24 01:53:43 -04:00
John Sully
de376acb15 race calculating client overhead
Former-commit-id: 2d27c8ecdb5242284301f135b1d542f9ead5b8f2
2020-05-24 01:53:43 -04:00
John Sully
3813d5835e During RDB load we can only handle clients on the main thread as our workers are not yet created. This change also unifies the accept logic across the socket types
Former-commit-id: 59cda9cfb96eca55c4b445309970bd95277ebc5c
2020-05-23 16:03:24 -04:00
John Sully
18b8a83ecb During RDB load we can only handle clients on the main thread as our workers are not yet created. This change also unifies the accept logic across the socket types
Former-commit-id: 59cda9cfb96eca55c4b445309970bd95277ebc5c
2020-05-23 16:03:24 -04:00
John Sully
3c0e1a1baf Diskless replication handler needs to run on the main thread
Former-commit-id: 091af6400348b7716f7fe0bc845bf7f16d922815
2020-05-23 15:15:42 -04:00
John Sully
5d9afccfdd Diskless replication handler needs to run on the main thread
Former-commit-id: 091af6400348b7716f7fe0bc845bf7f16d922815
2020-05-23 15:15:42 -04:00
ShooterIT
646cc81c96 Fix reply bytes calculation error
Fix #7275.


Former-commit-id: a12210c87561fed5522c9a6e8db6d8606cabe3bf
2020-05-23 13:02:55 -04:00
ShooterIT
23b4dc503a Fix reply bytes calculation error
Fix #7275.


Former-commit-id: a12210c87561fed5522c9a6e8db6d8606cabe3bf
2020-05-23 13:02:55 -04:00
John Sully
36032618b2 Merge tag '6.0.3' into unstable
Redis 6.0.3


Former-commit-id: 43649fc5b4425fb05e2c1aa48da7c07bc83ce24d
2020-05-22 16:53:10 -04:00
John Sully
db7f0572a3 Merge tag '6.0.3' into unstable
Redis 6.0.3


Former-commit-id: 43649fc5b4425fb05e2c1aa48da7c07bc83ce24d
2020-05-22 16:53:10 -04:00
John Sully
c86b45c6a0 Merge branch 'unstable' of https://github.com/JohnSully/KeyDB into unstable
Former-commit-id: 01cc25653ab7d797f6a466f18d540517d5003f5f
2020-05-22 16:45:27 -04:00
John Sully
7e53a312ce Merge branch 'unstable' of https://github.com/JohnSully/KeyDB into unstable
Former-commit-id: 01cc25653ab7d797f6a466f18d540517d5003f5f
2020-05-22 16:45:27 -04:00
John Sully
fa0be83fd9 Merge tag '6.0.2' into unstable
Redis 6.0.2


Former-commit-id: a010e4a4b2cc2bcad1cb14604b7ebc596c35b05e
2020-05-22 16:45:18 -04:00
John Sully
2d783a3cbf Merge tag '6.0.2' into unstable
Redis 6.0.2


Former-commit-id: a010e4a4b2cc2bcad1cb14604b7ebc596c35b05e
2020-05-22 16:45:18 -04:00
John Sully
c03e9a3e2c Merge commit 'e834acb91c89d083d0075e320dea6ad7188f2d0d' into unstable
Former-commit-id: 817a11ff110772893eda0675912bbb0cfc1fca74
2020-05-22 15:56:35 -04:00
John Sully
67b7d512cb Merge commit 'cb683a84f7a9d530bec629f2b656e7d0842a0f75' into unstable
Former-commit-id: 817a11ff110772893eda0675912bbb0cfc1fca74
2020-05-22 15:56:35 -04:00
John Sully
bd3deb6c67 Merge commit '05b332e550e7ce32e364dde6cdd8820e8665eb21' into unstable
Former-commit-id: c52e1fc78c369843e49a22765bed2c53e99d9709
2020-05-22 15:42:50 -04:00
John Sully
df7ac419d0 Merge commit '3a441c7d95c8757d2ab12ff730cc7ca8899538c9' into unstable
Former-commit-id: c52e1fc78c369843e49a22765bed2c53e99d9709
2020-05-22 15:42:50 -04:00
John Sully
5a7ce664d0 Merge commit '78cbd3039858407837632bc37abb36e36ec60ce5' into unstable
Former-commit-id: d74871da40dea11bd1a226fbecb0974ff5f8ec8c
2020-05-22 15:36:44 -04:00
John Sully
1eeb5de69f Merge commit 'c57d9146f41f4b661d9d2cb48b83b3abc757ba0e' into unstable
Former-commit-id: d74871da40dea11bd1a226fbecb0974ff5f8ec8c
2020-05-22 15:36:44 -04:00
John Sully
1ee6c44a96 Update README.md
Former-commit-id: a25cf15ecd6e7a013f4b653b3b103c9e9227af3a
2020-05-22 14:03:29 -04:00
John Sully
bc1f7d6d45 Update README.md
Former-commit-id: a25cf15ecd6e7a013f4b653b3b103c9e9227af3a
2020-05-22 14:03:29 -04:00
antirez
7f994abc48 Make disconnectSlaves() synchronous in the base case.
Otherwise we run into that:

Backtrace:
src/redis-server 127.0.0.1:21322(logStackTrace+0x45)[0x479035]
src/redis-server 127.0.0.1:21322(sigsegvHandler+0xb9)[0x4797f9]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7fd373c5e390]
src/redis-server 127.0.0.1:21322(_serverAssert+0x6a)[0x47660a]
src/redis-server 127.0.0.1:21322(freeReplicationBacklog+0x42)[0x451282]
src/redis-server 127.0.0.1:21322[0x4552d4]
src/redis-server 127.0.0.1:21322[0x4c5593]
src/redis-server 127.0.0.1:21322(aeProcessEvents+0x2e6)[0x42e786]
src/redis-server 127.0.0.1:21322(aeMain+0x1d)[0x42eb0d]
src/redis-server 127.0.0.1:21322(main+0x4c5)[0x42b145]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fd3738a3830]
src/redis-server 127.0.0.1:21322(_start+0x29)[0x42b409]

Since we disconnect all the replicas and free the replication backlog in
certain replication paths, and the code that will free the replication
backlog expects that no replica is connected.

However we still need to free the replicas asynchronously in certain
cases, as documented in the top comment of disconnectSlaves().
2020-05-22 19:29:09 +02:00
antirez
adc5df1bc3 Make disconnectSlaves() synchronous in the base case.
Otherwise we run into that:

Backtrace:
src/redis-server 127.0.0.1:21322(logStackTrace+0x45)[0x479035]
src/redis-server 127.0.0.1:21322(sigsegvHandler+0xb9)[0x4797f9]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7fd373c5e390]
src/redis-server 127.0.0.1:21322(_serverAssert+0x6a)[0x47660a]
src/redis-server 127.0.0.1:21322(freeReplicationBacklog+0x42)[0x451282]
src/redis-server 127.0.0.1:21322[0x4552d4]
src/redis-server 127.0.0.1:21322[0x4c5593]
src/redis-server 127.0.0.1:21322(aeProcessEvents+0x2e6)[0x42e786]
src/redis-server 127.0.0.1:21322(aeMain+0x1d)[0x42eb0d]
src/redis-server 127.0.0.1:21322(main+0x4c5)[0x42b145]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fd3738a3830]
src/redis-server 127.0.0.1:21322(_start+0x29)[0x42b409]

Since we disconnect all the replicas and free the replication backlog in
certain replication paths, and the code that will free the replication
backlog expects that no replica is connected.

However we still need to free the replicas asynchronously in certain
cases, as documented in the top comment of disconnectSlaves().
2020-05-22 19:29:09 +02:00
antirez
8ecf2998ca Merge branch 'unstable' of github.com:/antirez/redis into unstable 2020-05-22 16:31:05 +02:00
antirez
07c6bee78f Merge branch 'unstable' of github.com:/antirez/redis into unstable 2020-05-22 16:31:05 +02:00
antirez
ba7f0b7719 Fix #7306 less aggressively.
Citing from the issue:

btw I suggest we change this fix to something else:
* We revert the fix.
* We add a call that disconnects chained replicas in the place where we trim the replica (that is a master i this case) offset.
This way we can avoid disconnections when there is no trimming of the backlog.

Note that we now want to disconnect replicas asynchronously in
disconnectSlaves(), because it's in general safer now that we can call
it from freeClient(). Otherwise for instance the command:

    CLIENT KILL TYPE master

May crash: clientCommand() starts running the linked of of clients,
looking for clients to kill. However it finds the master, kills it
calling freeClient(), but this in turn calls replicationCacheMaster()
that may also call disconnectSlaves() now. So the linked list iterator
of the clientCommand() will no longer be valid.
2020-05-22 16:29:53 +02:00
antirez
b407590cee Fix #7306 less aggressively.
Citing from the issue:

btw I suggest we change this fix to something else:
* We revert the fix.
* We add a call that disconnects chained replicas in the place where we trim the replica (that is a master i this case) offset.
This way we can avoid disconnections when there is no trimming of the backlog.

Note that we now want to disconnect replicas asynchronously in
disconnectSlaves(), because it's in general safer now that we can call
it from freeClient(). Otherwise for instance the command:

    CLIENT KILL TYPE master

May crash: clientCommand() starts running the linked of of clients,
looking for clients to kill. However it finds the master, kills it
calling freeClient(), but this in turn calls replicationCacheMaster()
that may also call disconnectSlaves() now. So the linked list iterator
of the clientCommand() will no longer be valid.
2020-05-22 16:29:53 +02:00
Salvatore Sanfilippo
42afb7e635 Merge pull request #7096 from ShooterIT/sendfile
Implements sendfile for redis.
2020-05-22 13:55:46 +02:00