Commit Graph
95 Commits
Author SHA1 Message Date
John Sully 73c436dba2 Fix crash in client unblock command
Former-commit-id: 7cd779d304
2020-05-10 22:08:50 -04:00
John Sully 822f64ed2f During AOF reload we can erroneously read incorrect aof_state values, so this variable must be read with the global lock acquired
Former-commit-id: 6ff9d23fd4
2020-04-15 22:30:19 -04:00
John Sully f69c169c04 Merge tag '6.0-rc3' into redis_6_merge
Redis 6.0 RC3.


Former-commit-id: b2cb10de5f
2020-04-14 22:56:19 -04:00
John Sully ce54857237 Merge commit '454e12cb8961f21c9dd8502dc82ae6ffd7e22fe0' into redis_6_merge
Former-commit-id: cc3ebbe519
2020-04-14 22:19:29 -04:00
John Sully 68c50ae876 Merge commit '6718d5d37517bd927635649708913affb98f67c9' into redis_6_merge
Former-commit-id: ef1236b600
2020-04-14 20:19:48 -04:00
John Sully 2c049c16a2 Merge commit '79e8b17d7b44c793d8b22668b8583a297ee1b387' into redis_6_merge
Former-commit-id: 28cbed1d13
2020-04-14 20:09:53 -04:00
John Sully 6df76a3bfa Merge commit 'a8e2bbe8f6a3f4833f286cc5049e6b52c87de1a9' into redis_6_merge
Former-commit-id: 5589a0a69c
2020-04-14 19:22:44 -04:00
John Sully 9c4b66b9a4 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 908cf5042e
2020-03-25 22:12:22 -04:00
John Sully 71fe6f7ba9 Fix issue #143
Former-commit-id: 6ec1641294
2020-03-25 21:55:31 -04:00
John Sully b1c9dcaa05 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 718aee242d
2020-03-25 15:47:12 -04:00
John Sully 1b9ef774da Fix lock inversion in processEventsWhileBlocked
Former-commit-id: a9249d4a82
2020-03-19 15:28:39 -04:00
John Sully 96be5f6a6c Prevent dangling lock when we can't free the client
Former-commit-id: 3c373494d6
2020-03-19 14:34:23 -04:00
John Sully e39dd04f6c Merge branch 'unstable' into redis_6_merge
Former-commit-id: 52fd4445a4
2020-03-04 17:13:01 -05:00
John Sully 01a85ba7fe Add extra logging when reporting errors from masters - especially in rreplay
Former-commit-id: 5397f0b033
2020-03-04 17:09:12 -05:00
John Sully 8d720e220d Merge branch 'unstable' into redis_6_merge
Former-commit-id: 32f34f63fd
2020-02-17 19:55:29 -05:00
John Sully 1d368edc10 Add double unlock detection and improve fastlock_unlock assmebly
Former-commit-id: 98aefac09b
2020-02-17 19:54:05 -05:00
John Sully 2c28a3f3d7 processEventsWhileBlocked not exception safe
Former-commit-id: 45b711f9d1
2020-02-17 19:04:11 -05:00
John Sully c810823abe processEventsWhileBlocked not exception safe
Former-commit-id: 1ef187533c
2020-02-17 19:03:49 -05:00
John Sully 968e668245 Merge branch 'unstable' into redis_6_merge
Former-commit-id: 329519d4aa
2020-02-11 03:48:08 -05:00
John Sully 4748094356 Fix race condition in allocating connections to threads
Former-commit-id: 52434a583a
2020-02-11 03:44:28 -05:00
John Sully fbaa46505c Merge branch 'unstable' into redis_6_merge
Former-commit-id: 18a5f46b61
2020-02-11 02:39:08 -05:00
John Sully d4c1e98124 Implement an error handler so bug #125 can't happen
Former-commit-id: 16a019dba0
2020-02-11 01:41:00 -05:00
John Sully fef9925b7f Fix higher latency at low load by grouping clients to threads. This fixes slow perf in cluster benchmarks mentioned in issue #102
Former-commit-id: 1a4c3224c9
2020-02-11 01:00:21 -05:00
John Sully 6bb1429a46 module fixes
Former-commit-id: ef4e11ecb8
2020-02-04 01:22:25 -05:00
John Sully 1adc5e9832 More threading fixes from merge
Former-commit-id: 4a980f4ddb
2020-01-28 17:54:00 -05:00
John Sully d9c070408b reenable multithreading after merge
Former-commit-id: 9fbb9a551e
2020-01-27 19:59:04 -05:00
John Sully 14188ef92d Fix most tests (still some failures)
Former-commit-id: da83e84125
2020-01-27 18:16:19 -05:00
John Sully 6193e9ad4f Merge remote-tracking branch 'redis/6.0' into redis_merge
Former-commit-id: ef9a3cadcf
2020-01-27 02:55:48 -05:00
John Sully b3dd59db5c Additional asserts ensuring the client is creating on the correct thread
Former-commit-id: 937702ea1d
2019-11-20 17:00:40 -05:00
John Sully 8c6f775cf7 Cluster multithreading fixes
Former-commit-id: 3dd78a6101
2019-11-14 20:14:24 -05:00
John Sully 7dac41ed72 killing clients should take effect ASAP
Former-commit-id: d0ccb074d5
2019-11-14 19:49:32 -05:00
John Sully 70fba8e707 Two fixes: 1) Remove race conditions by not locking clients when async writing. 2) Don't derefence dangling pointers in lambda
Former-commit-id: cb93752aff
2019-10-24 23:07:02 -04:00
John Sully 7bdc24a86d Remove the DB lock, its unnecessary
Former-commit-id: 631f863dd8
2019-10-24 20:18:48 -04:00
John Sully 8b44d86c7c processEventsWhileBlocked needs to release the lock in a safe way
Former-commit-id: 1a70af2ae1
2019-10-23 13:19:57 -04:00
John Sully 60c35d6ea7 Remove race conditions
Former-commit-id: 5a8cb77d0d
2019-10-22 23:26:37 -04:00
John Sully b1190c24a8 Optimize deadlock detection, fix callstack for ASM, and annotate locks
Note: This change moves our assembly code to use the GNU Assembler because NASM seems to be incapable of emitting the necessary debug information for callstack unwinding to work.

Former-commit-id: 600fc241cf
2019-10-22 21:34:51 -04:00
John Sully e57d2e24c9 Update more slave instances to use replica (Issue #75)
Former-commit-id: 252725d50f
2019-10-13 12:29:20 -04:00
John Sully bd4ed482c4 KEYS now only blocks one database
Former-commit-id: 18d42a5c35
2019-09-12 18:51:10 -04:00
John Sully a21a7a8ee9 Fix race condition in PUB/SUB and other async reply commands where the client can be freed before our handler is executed on the client thread. When this occurs the client pointer is dangling
Former-commit-id: 46a78c69e7
2019-08-26 20:18:52 -04:00
John Sully 33acb40633 Merge commit '985e5b2c608eade2a60e50a6a177f13381c9c8d8' into unstable
Former-commit-id: 4602f8c391
2019-07-19 00:01:56 -04:00
antirez b2d03d4221 Make comment in getClientOutputBufferMemoryUsage() describing the present.
Former-commit-id: 35acae360a
2019-07-18 23:12:39 -04:00
John Sully 5cb7ec841a Add support for sanitizers and fix issues they have found
Former-commit-id: 58971a430d
2019-07-18 18:39:42 -04:00
John Sully bd3cc0bb95 Resolve race on neterr variable
Former-commit-id: 1512274f4c
2019-07-18 17:11:28 -04:00
John Sully 857f778b38 Make object refcounts atomic, technically it doesn't need to be currently but the semantics are complicated and error prone. This is much safer with little performance impact
Former-commit-id: e310d33c12
2019-07-18 15:49:12 -04:00
John Sully add714913b Implement test mode to make finding bugs easier
Former-commit-id: 971f69fe1f
2019-07-15 14:55:18 -04:00
John Sully ff0065df91 Fix more locking deadlocks
Former-commit-id: 3081b6f98b
2019-07-12 23:51:45 -04:00
John Sully 8cd37fae2c Fix deadlock with client and ae locks
Former-commit-id: 8630339e43
2019-07-12 20:46:50 -04:00
John Sully 3ffe5b5dde Add Active Replication tests
Former-commit-id: 528d10091f
2019-07-12 03:54:41 -04:00
John Sully 35e23ca988 Fix compile errors on GCC v5
Former-commit-id: 1f08a0efb3
2019-07-11 20:20:01 -04:00
John Sully 8ba25371a5 Fix active replication offset synchronization accounting, and enable the wait command
Former-commit-id: a5784ef09e
2019-07-11 17:00:23 -04:00