antirez
d54652682d
Modules hooks: handle module unloading + API export.
2019-10-23 18:39:53 +02:00
John Sully
03769b5c17
Remove race conditions
...
Former-commit-id: 5a8cb77d0df7f319809ff965a72fe46925f49289
2019-10-22 23:26:37 -04:00
John Sully
1c1260d71f
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: 600fc241cfe79b9b32ac6010c6ea0c66747f0f15
2019-10-22 21:34:51 -04:00
John Sully
9df7197221
Forkless background save. NOT OPTIMIZED
...
Former-commit-id: bd9d8e05b0430efd226be773c0530828f1f6b428
2019-10-20 23:54:05 -04:00
John Sully
764a05fedd
Factor out dependencies on rdb_child_pid which will be going away
...
Former-commit-id: 2ab4c6b99e3f3cb9f216bd81e78914a6fcd394f6
2019-10-17 23:10:45 -04:00
John Sully
5fb7d4a325
Dependencies for forkless RDB saving
...
Former-commit-id: c12be594754ac8079f467e0fa9f8580bd65e3a55
2019-10-17 22:53:50 -04:00
John Sully
7de19770cb
Ensure RDB saving only uses data from the persistent data struct, and cleanup inheritance
...
Former-commit-id: fcdda67d87b3076023f459532c75392b72768a51
2019-10-17 17:20:47 -04:00
antirez
97f6e314c1
Modules: allow to check for AOF loading client.
2019-10-17 18:10:50 +02:00
John Sully
e6bf931f2c
Support serializing all types
...
Former-commit-id: dfdd41f15c0567925f02fd5df779f597ab16894d
2019-10-16 14:23:28 -04:00
John Sully
60c8887aae
Cleanup inheritance
...
Former-commit-id: e8debc83e8271cf8d76c5084923cf6e1ea7af3b4
2019-10-16 13:45:36 -04:00
John Sully
b02148db42
Merge branch 'unstable' into advanced_db
...
Former-commit-id: 88152a8f4f9b4e3a82d5f1416930d39bfa91eb47
2019-10-16 13:23:19 -04:00
John Sully
eaabfd2038
Fix crash adding expire to key with a subkey expire already set
...
Former-commit-id: 18a3768e07eb8c4feb4a666d95a19d97267ac381
2019-10-16 12:26:48 -04:00
Yossi Gottlieb
0db3b0a0ff
Merge remote-tracking branch 'upstream/unstable' into tls
2019-10-16 17:08:07 +03:00
John Sully
091a93e098
Fix clang warnings
...
Former-commit-id: c4f086ae936e1ba5ed97c2f0810ddb6a4de25be6
2019-10-13 15:48:55 -04:00
John Sully
1a3885cad0
Fix failing travis CI build
...
Former-commit-id: 3f0c1f94ebeb19133f1f62b8b3a82871dbd5f73f
2019-10-13 15:41:53 -04:00
John Sully
4f47f6818f
Add the IStorage interface and wire it up
...
Former-commit-id: 898efbfc0c7038818083ea29fdd63cafa47721fb
2019-10-13 15:24:08 -04:00
John Sully
63f2b3a987
Isolate the persistent parts of the database from the runtime parts
...
Former-commit-id: 8d63f5b560d067a634f2ef671962be8815c9e23c
2019-10-13 15:24:08 -04:00
John Sully
e4482cb695
Hide the database dict
...
Former-commit-id: 024365521c2b74275839562ba9326b6ea26d3836
2019-10-13 15:13:01 -04:00
John Sully
6b2c838e8b
Implement the lastmodified query for the OBJECT command
...
Former-commit-id: 3a3b59a0543148956797ce4ad9d08095051517b9
2019-10-13 14:12:09 -04:00
John Sully
0e82cb44e5
Implement the EXPIREMEMBERAT command
...
Former-commit-id: 203e341bf4427723903d8d3de03af2f0ef043a3f
2019-10-13 13:15:13 -04:00
John Sully
c61b6cc8fd
Update more slave instances to use replica (Issue #75 )
...
Former-commit-id: 252725d50fc9d4ff2b6e9246a36c38176d61beae
2019-10-13 12:29:20 -04:00
John Sully
d4e4b4f4d1
Update a few uses of slave to use the new replica terminology (Issue #75 )
...
Former-commit-id: c15633ea9e784ef0e12e4015a75245661a8cf1b7
2019-10-13 12:12:05 -04:00
John Sully
2d0cd2c1b2
Implement TTL and PERSIST commands for subkeys. Also ensure expiremember replaces any old subkey expiries
...
Former-commit-id: 16f96efbe7c6c27f2a79f5b472447407f905df15
2019-10-13 12:03:25 -04:00
John Sully
9fb26516d6
Fix issue #88 - don't let seperate KeyDB processes listen on the same port
...
Former-commit-id: 4631119179df5cff638e9b8c51b030cef89a6c02
2019-10-13 10:02:21 -04:00
Yossi Gottlieb
d7f2681a0c
TLS: Improve CA certifiate configuration options.
...
This adds support for explicit configuration of a CA certs directory (in
addition to the previously supported bundle file). For redis-cli, if no
explicit CA configuration is supplied the system-wide default
configuration will be adopted.
2019-10-08 17:58:50 +03:00
Yossi Gottlieb
61733ded14
TLS: Configuration options.
...
Add configuration options for TLS protocol versions, ciphers/cipher
suites selection, etc.
2019-10-07 21:07:27 +03:00
Oran Agra
6b6294807c
TLS: Implement support for write barrier.
2019-10-07 21:06:30 +03:00
Oran Agra
5a47794606
diskless replication rdb transfer uses pipe, and writes to sockets form the parent process.
...
misc:
- handle SSL_has_pending by iterating though these in beforeSleep, and setting timeout of 0 to aeProcessEvents
- fix issue with epoll signaling EPOLLHUP and EPOLLERR only to the write handlers. (needed to detect the rdb pipe was closed)
- add key-load-delay config for testing
- trim connShutdown which is no longer needed
- rioFdsetWrite -> rioFdWrite - simplified since there's no longer need to write to multiple FDs
- don't detect rdb child exited (don't call wait3) until we detect the pipe is closed
- Cleanup bad optimization from rio.c, add another one
2019-10-07 21:06:30 +03:00
Yossi Gottlieb
b087dd1db6
TLS: Connections refactoring and TLS support.
...
* Introduce a connection abstraction layer for all socket operations and
integrate it across the code base.
* Provide an optional TLS connections implementation based on OpenSSL.
* Pull a newer version of hiredis with TLS support.
* Tests, redis-cli updates for TLS support.
2019-10-07 21:06:13 +03:00
Oran Agra
bf759cc9c3
Merge remote-tracking branch 'antirez/unstable' into jemalloc_purge_bg
2019-10-04 13:53:40 +03:00
antirez
ee1cef189f
Minor aesthetic changes to #6419 .
2019-10-04 12:00:41 +02:00
Salvatore Sanfilippo
264778af0a
Merge pull request #6419 from oranagra/lua_timeout_sha
...
On LUA script timeout, print the script SHA to the log
2019-10-04 11:58:05 +02:00
antirez
e938bbc543
Modules: implement RM_Replicate() from async callbacks.
2019-10-03 10:56:37 +02:00
antirez
758b39be99
Speedup INFO server section.
2019-10-02 11:30:20 +02:00
Oran Agra
98426e9886
On LUA script timeout, print the script SHA to the log
...
since the slowlog and other means that can help you detect the bad script
are only exposed after the script is done. it might be a good idea to at least
print the script name (sha) to the log when it timeouts.
2019-10-02 08:40:35 +03:00
Oran Agra
d5c14c70b7
Merge remote-tracking branch 'antirez/unstable' into modules_info
2019-09-30 20:47:35 +03:00
John Sully
b6b6bb0488
Implement left and right shift BITOP operators
...
Former-commit-id: ba365298ed37a76f0a8630e0ec6c86393293aebe
2019-09-28 00:10:46 -04:00
antirez
0a07f8ffee
TerminateModuleForkChild(): fix function prototype.
2019-09-27 12:23:07 +02:00
antirez
721d3c9e0c
TerminateModuleForkChild(): move safety checks there.
...
We don't want that the API could be used directly in an unsafe way,
without checking if there is an active child. Now the safety checks are
moved directly in the function performing the operations.
2019-09-27 12:17:47 +02:00
antirez
de1f82aa33
Function renamed hasForkChild() -> hasActiveChildProcess().
2019-09-27 12:03:09 +02:00
antirez
ae3ef964c1
Modules fork: improve SIGUSR1 handling, fix include.
...
We can't expect SIGUSR1 to have any specific value range, so let's
define an exit code that we can handle in a special way.
This also fixes an #include <wait.h> that is not standard.
2019-09-27 11:39:45 +02:00
Salvatore Sanfilippo
6129758558
Merge branch 'unstable' into modules_fork
2019-09-27 11:24:06 +02:00
John Sully
9f3cbd580e
Fix multi master bugs: 1. we fail to create the temp file. 2. We use a master RDB as our backup even though we merged databases (and therefore it is not representitive)
...
Former-commit-id: e776474f68a2824bb7d4082c41991a9a9f3a9c9d
2019-09-26 20:35:51 -04:00
Salvatore Sanfilippo
c1ea6175c5
Merge pull request #6024 from itamarhaber/info_modules
...
Adds a "Modules" section to `INFO`
2019-09-26 11:58:52 +02:00
Salvatore Sanfilippo
959fb5cf68
Merge pull request #6235 from oranagra/module_rdb_load_errors
...
Allow modules to handle RDB loading errors.
2019-09-26 11:52:42 +02:00
John Sully
2912b22403
KEYS now only blocks one database
...
Former-commit-id: 18d42a5c353f76533a0ccc4ded24ed089cedacc8
2019-09-12 18:51:10 -04:00
antirez
06d490342f
RESP3: fix cases of NULL reported instead of empty aggregate.
2019-09-02 12:50:47 +02:00
John Sully
b98eed9945
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: 46a78c69e718f0aeb5e62f33c59458b15b8d9bc6
2019-08-26 20:18:52 -04:00
Oran Agra
78bbb9b58d
Modlue fork is killed when the parent exists
2019-08-25 10:11:48 +03:00
antirez
0e9b5adbd3
Replication: clarify why repl_put_online_on_ack exists at all.
2019-08-05 17:38:15 +02:00