John Sully
6ec1641294
Fix issue #143
2020-03-25 21:55:31 -04:00
John Sully
a9249d4a82
Fix lock inversion in processEventsWhileBlocked
2020-03-19 15:28:39 -04:00
John Sully
3c373494d6
Prevent dangling lock when we can't free the client
2020-03-19 14:34:23 -04:00
John Sully
5397f0b033
Add extra logging when reporting errors from masters - especially in rreplay
2020-03-04 17:09:12 -05:00
John Sully
98aefac09b
Add double unlock detection and improve fastlock_unlock assmebly
2020-02-17 19:54:05 -05:00
John Sully
1ef187533c
processEventsWhileBlocked not exception safe
2020-02-17 19:03:49 -05:00
John Sully
52434a583a
Fix race condition in allocating connections to threads
2020-02-11 03:44:28 -05:00
John Sully
16a019dba0
Implement an error handler so bug #125 can't happen
2020-02-11 01:41:00 -05:00
John Sully
1a4c3224c9
Fix higher latency at low load by grouping clients to threads. This fixes slow perf in cluster benchmarks mentioned in issue #102
2020-02-11 01:00:21 -05:00
John Sully
937702ea1d
Additional asserts ensuring the client is creating on the correct thread
2019-11-20 17:00:40 -05:00
John Sully
3dd78a6101
Cluster multithreading fixes
2019-11-14 20:14:24 -05:00
John Sully
d0ccb074d5
killing clients should take effect ASAP
2019-11-14 19:49:32 -05:00
John Sully
cb93752aff
Two fixes: 1) Remove race conditions by not locking clients when async writing. 2) Don't derefence dangling pointers in lambda
2019-10-24 23:07:02 -04:00
John Sully
631f863dd8
Remove the DB lock, its unnecessary
2019-10-24 20:18:48 -04:00
John Sully
1a70af2ae1
processEventsWhileBlocked needs to release the lock in a safe way
2019-10-23 13:19:57 -04:00
John Sully
5a8cb77d0d
Remove race conditions
2019-10-22 23:26:37 -04:00
John Sully
600fc241cf
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.
2019-10-22 21:34:51 -04:00
John Sully
252725d50f
Update more slave instances to use replica (Issue #75 )
2019-10-13 12:29:20 -04:00
John Sully
18d42a5c35
KEYS now only blocks one database
2019-09-12 18:51:10 -04:00
John Sully
46a78c69e7
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
2019-08-26 20:18:52 -04:00
John Sully
4602f8c391
Merge commit '677e95e2f5ee903682ce44a7bfd9558a22577926' into unstable
2019-07-19 00:01:56 -04:00
antirez
35acae360a
Make comment in getClientOutputBufferMemoryUsage() describing the present.
2019-07-18 23:12:39 -04:00
John Sully
58971a430d
Add support for sanitizers and fix issues they have found
2019-07-18 18:39:42 -04:00
John Sully
1512274f4c
Resolve race on neterr variable
2019-07-18 17:11:28 -04:00
John Sully
e310d33c12
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
2019-07-18 15:49:12 -04:00
John Sully
971f69fe1f
Implement test mode to make finding bugs easier
2019-07-15 14:55:18 -04:00
John Sully
3081b6f98b
Fix more locking deadlocks
2019-07-12 23:51:45 -04:00
John Sully
8630339e43
Fix deadlock with client and ae locks
2019-07-12 20:46:50 -04:00
John Sully
528d10091f
Add Active Replication tests
2019-07-12 03:54:41 -04:00
John Sully
1f08a0efb3
Fix compile errors on GCC v5
2019-07-11 20:20:01 -04:00
John Sully
a5784ef09e
Fix active replication offset synchronization accounting, and enable the wait command
2019-07-11 17:00:23 -04:00
John Sully
e37bc4ad40
Fix issues with relaxed memory model architectures
2019-06-17 23:00:12 -04:00
John Sully
ae33ff3a6e
convert the pending write list to a vector for better performance and less cache thrashing
2019-06-17 23:00:12 -04:00
John Sully
59dbd625c1
Move more code out of the GIL
2019-06-17 23:00:12 -04:00
John Sully
8eb4e355b9
Remove an unnecessary lock that eats performance
2019-06-17 23:00:12 -04:00
John Sully
46d6caa47c
Enable load balancing of UNIX sockets across threads
2019-06-11 01:34:36 -04:00
John Sully
c5cbb77fc7
Fix regressions from RESP3 changes in commit 317f8b9d38
2019-05-20 23:39:44 -04:00
John Sully
87dc8ce9b3
Fix double unlock
2019-05-20 15:52:04 -04:00
John Sully
86d7276f24
Merge branch 'unstable' of https://github.com/antirez/redis into MergeRedis
...
Note: some tests failing
2019-05-11 02:20:34 -04:00
John Sully
bf26959b72
Fix module locking issues
2019-05-09 19:00:27 -04:00
John Sully
37b2d046be
refactor server global into a pointer (so that threadsafe commands can set this to NULL to prove they don't rely on it
2019-04-21 14:01:10 -04:00
John Sully
fa2e407873
Factor out some normally const globals
2019-04-21 13:20:45 -04:00
John Sully
5a78a3bc46
Add version override command for users that need compatibility with Redis
2019-04-19 19:57:11 -04:00
John Sully
c4621a5ed2
Start of MVCC support (and more C++)
2019-04-16 23:16:03 -04:00
John Sully
8c133b605c
Move remaning files dependent on server.h over to C++
2019-04-08 01:00:48 -04:00
John Sully
68d2b648e0
Add RREPLAY command and put the issue of packet storms to rest. Fixes issue #24
2019-04-06 00:14:27 -04:00
John Sully
4326d22380
Merge branch 'unstable' into wip-multimaster
2019-04-03 00:12:13 -04:00
John Sully
161d3a35ff
Fix cluster test failure (not real issue)
2019-04-03 00:11:34 -04:00
John Sully
3745bbd95b
Merge branch 'unstable' of https://github.com/antirez/redis into unstable
2019-04-03 00:00:38 -04:00
John Sully
efaeca5887
It compiles and doesn't crash immediately!
2019-04-02 16:47:05 -04:00