Commit Graph

8480 Commits

Author SHA1 Message Date
c6c65d9ab3 Merge pull request #6503 from cstrotm/unstable
Typo fix: kill -> still
2019-10-28 09:57:19 +01:00
d070221707 Merge pull request #6505 from swilly22/replaywith-module-API-additions
Introduce ReplyWithVerbatimString, ReplyWithEmptyArray, ReplyWithNull…
2019-10-28 09:56:56 +01:00
24fdc87fe0 Merge pull request #4994 from soloestoy/module-blocked-client
Modules: make unloading module more safe
2019-10-28 09:55:11 +01:00
56a7c45521 Introduce ReplyWithVerbatimString, ReplyWithEmptyArray, ReplyWithNullArray and ReplyWithEmptyString to redis module API 2019-10-28 08:50:25 +02:00
c74398e130 Modules: make unloading module more safe
As we know if a module exports module-side data types,
unload it is not allowed. This rule is the same with
blocked clients in module, because we use background
threads to implement module blocked clients, and it's
not safe to unload a module if there are background
threads running. So it's necessary to check if any
blocked clients running in this module when unload it.

Moreover, after that we can ensure that if no modules,
then no module blocked clients even module unloaded.
So, we can call moduleHandleBlockedClients only when
we have installed modules.
2019-10-28 11:31:58 +08:00
cb2ca37f88 Typo fix: kill -> still 2019-10-25 19:38:45 +02:00
6e98214f74 Modules hooks: test flush event. 2019-10-24 10:51:03 +02:00
39f2ab595c Modules hooks: initial Tcl test file. 2019-10-24 10:41:25 +02:00
7cefbeaad5 Modules hooks: select DB zero by default. 2019-10-23 18:51:44 +02:00
d3266d516b Modules hooks: test module draft. 2019-10-23 18:42:02 +02:00
dddfde85ef Modules hooks: fix memory leak in example module. 2019-10-23 18:39:53 +02:00
61ac2aef2b Modules hooks: for nested calls, create new fake clients.
We can't use the same client at the same time when re-entering the hook.
2019-10-23 18:39:53 +02:00
8cccc6b468 Modules hooks: don't call the hook for fake clients. 2019-10-23 18:39:53 +02:00
83de18805c Modules hooks: do not re-enter in hooks.
Calling a module hook callback may result in callback operations in turn
triggering other events the module is subscribed too. We don't want to
trigger those, it's unsafe and quite confusing, and to do it correcly we
would need to maintain an event list: quite a more complex
implementation.
2019-10-23 18:39:53 +02:00
89af7e4c85 Modules hooks: select the right DB for FLUSHDB events. 2019-10-23 18:39:53 +02:00
bc1ef48e56 Modules hooks: FLUSHDB event example. 2019-10-23 18:39:53 +02:00
ed833c9f99 Modules hooks: implement the FLUSHDB event. 2019-10-23 18:39:53 +02:00
8ec2fc3969 Modules hooks: unify structures definitions. 2019-10-23 18:39:53 +02:00
db8c9a8520 Modules hooks: document what yet to implement WIP 2. 2019-10-23 18:39:53 +02:00
18d1607f5e Modules hooks: document what yet to implement WIP 1. 2019-10-23 18:39:53 +02:00
c379fdbae2 Modules hooks: do more in example client callback. 2019-10-23 18:39:53 +02:00
cf52e0ad44 Module hooks: fixes and an example module. 2019-10-23 18:39:53 +02:00
94c50314f1 Modules hooks: fix sub event in calls from client change. 2019-10-23 18:39:53 +02:00
019ac37e9c Modules hooks: fix define / linker issues. Implement one test event. 2019-10-23 18:39:53 +02:00
d54652682d Modules hooks: handle module unloading + API export. 2019-10-23 18:39:53 +02:00
1e78681df8 Modules hooks: fix a leak and a few more issues. 2019-10-23 18:39:53 +02:00
b9af7e24e4 Modules hooks: event firing logic. 2019-10-23 18:39:53 +02:00
6e56f513b4 Modules: refactoring of RM_GetClientInfoById(). 2019-10-23 18:39:53 +02:00
21d8544128 Modules: fix RedisModule_GetClientInfoById() example. 2019-10-23 18:39:53 +02:00
e9b5484ddd Modules: export GetClientInfoById(). 2019-10-23 18:39:53 +02:00
6ea8641ae0 Modules: add the client ID to the client info structure. 2019-10-23 18:39:53 +02:00
d2d74ca0f3 Modules: RM_GetClientInfoById() draft. 2019-10-23 18:39:53 +02:00
bebb2e1994 Modules hooks: a first version of events and some API. 2019-10-23 18:39:53 +02:00
3170f63330 Modules hooks: initial design of data structures. 2019-10-23 18:39:53 +02:00
ed2ba31e4c Modules: fix moduleCreateArgvFromUserFormat() casting bug.
In 32 bit systems casting to "long" will cut the result to 32 bit.
2019-10-23 18:39:14 +02:00
673c9d7029 module: fix propagation API bug. 2019-10-17 18:28:34 +02:00
97f6e314c1 Modules: allow to check for AOF loading client. 2019-10-17 18:10:50 +02:00
8651e6a10d Modules: add new flags to context, replica state + more. 2019-10-17 17:49:33 +02:00
efb6495a44 Merge pull request #6236 from yossigo/poc/conns
Abstract Connections I/O API & TLS Support
2019-10-16 17:42:35 +02:00
8e29b0b22b Fix Makefile merge issue. 2019-10-16 17:31:02 +03:00
0db3b0a0ff Merge remote-tracking branch 'upstream/unstable' into tls 2019-10-16 17:08:07 +03:00
b8e02f2b40 Merge pull request #5926 from JimB123/unstable
Addition of RedisModule_OnUnload hook
2019-10-16 11:13:12 +02:00
c469f6ad9e Code review minor changes (names, comments). 2019-10-15 17:21:51 +03:00
71f10de4de Conns: write() 0 retval should not trigger error. 2019-10-15 17:20:58 +03:00
0132189007 Fix compile warnings when BUILD_TLS=no. 2019-10-15 15:24:32 +03:00
dd29d44136 Test: fix implementation-dependent test after code change. 2019-10-10 15:22:42 +02:00
8e3d910d4e Merge pull request #6429 from charsyam/feature/typo-slave
[trivial] fix typos salves to slaves in replication.c
2019-10-10 14:56:43 +02:00
363604a27d Merge pull request #6437 from OMG-By/redis-omg_by
there should is AUTH && HELLO non authenticated state.
2019-10-10 14:55:03 +02:00
1677f4223c Merge pull request #6443 from guybe7/fix_stream_rax_node_limits
Fix usage of server.stream_node_max_*
2019-10-10 14:49:35 +02:00
14a9da0613 Merge pull request #6145 from oranagra/jemalloc_purge_bg
purge jemalloc after flush, and enable background purging thread
2019-10-10 14:48:59 +02:00