23c681b51d
Merge pull request #6535 from guybe7/module_block_on_keys_tests
...
Modules: Test RedisModule_BlockClientOnKeys
2019-11-04 10:53:59 +01:00
dcc4347c53
Merge pull request #6514 from oranagra/module_hooks
...
Modules hooks: complete missing hooks for the initial set of hooks
2019-11-04 10:37:16 +01:00
da44c54897
Merge branch 'unstable' into module_hooks
2019-11-04 10:37:06 +01:00
b81f486c2f
Modules: Test RedisModule_BlockClientOnKeys
2019-11-04 14:20:24 +05:30
fdaea2a7a7
Modules: fix thread safe context creation crash.
...
See #6525 , this likely creates a NULL deference if the client was
terminated by Redis between the creation of the blocked client and the
creation of the thread safe context.
2019-10-31 18:07:33 +01:00
1ee195d255
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-10-31 17:55:18 +01:00
dd5feec5e8
Modules: block on keys: fix stale comment.
2019-10-31 17:45:07 +01:00
825adcf3f5
Modules: block on keys: finish implementing RM_UnblockClient().
2019-10-31 17:39:05 +01:00
37bf3e18cb
Modules: block ok keys: improve example.
2019-10-31 12:31:22 +01:00
66f55bc5c1
Modules: block on keys: fix bugs in processing order.
2019-10-31 12:23:55 +01:00
629081f839
Modules: block on keys: fix the top comments.
2019-10-31 11:43:45 +01:00
91f4bdc9f9
Modules: block on keys: use a better interface.
...
Using the is_key_ready() callback plus the reply callback later, creates
different issues AFAIK:
1. More complex API.
2. We need to call the reply callback() ASAP if the is_key_ready()
interface returned success, however the internals do not work in that
way, so when the reply callback is called the setup could be different.
To fix that, there is to break the current design that handles the
unblocked clients asyncrhonously, and run the list ASAP.
2019-10-31 11:35:07 +01:00
4534960b29
Modules: remove spurious call from moduleHandleBlockedClients().
...
Now we handle propagation when we free the context.
2019-10-31 10:32:59 +01:00
228bc89ecb
Modules: block on keys: example on hellotype.c.
2019-10-31 10:30:54 +01:00
215b72c0ba
Modules: block on keys: implement the internals.
2019-10-30 10:57:44 +01:00
fb6110ac20
Modules: block on keys: export APIs.
2019-10-30 10:20:28 +01:00
3649568ff2
Modules: block on keys functions layout and mechanism.
2019-10-30 10:11:58 +01:00
51c3ff8d75
Modules hooks: complete missing hooks for the initial set of hooks
...
* replication hooks: role change, master link status, replica online/offline
* persistence hooks: saving, loading, loading progress
* misc hooks: cron loop, shutdown, module loaded/unloaded
* change the way hooks test work, and add tests for all of the above
startLoading() now gets flag indicating what is loaded.
stopLoading() now gets an indication of success or failure.
adding startSaving() and stopSaving() with similar args and role.
2019-10-29 17:59:09 +02:00
764b420f5f
Merge pull request #6487 from oranagra/module_modified_key
...
Module API for explicit SignalModifiedKey instead of implicit one.
2019-10-29 10:40:22 +01:00
568dfd4b49
Merge pull request #6470 from gkorland/CI
...
Add Github action for CI
2019-10-29 10:25:34 +01:00
94973fd0eb
Merge pull request #6508 from guybe7/fix_module_notify_comp_error
...
Fix compilation error introduced by cee6dead3
2019-10-29 10:07:45 +01:00
90169cdf16
Merge pull request #6495 from oranagra/rm_call_argv
...
Module api RM_CallArgv and test
2019-10-29 10:07:05 +01:00
43e2a398f9
Fix compilation error introduced by cee6dead3
...
Need to add calls to REDISMODULE_API_FUNC...
2019-10-28 17:58:07 +05:30
469a6e5f1a
Merge pull request #6481 from guybe7/modules_notify
...
Modules: Allow notifying custom keyspace events
2019-10-28 12:16:04 +01:00
0399b5a27e
Module api tests for RM_Call
...
Adding a test for coverage for RM_Call in a new "misc" unit
to be used for various short simple tests
also solves compilation warnings in redismodule.h and fork.c
2019-10-28 12:39:57 +02:00
cee6dead3c
Modules: Allow notifying custom keyspace events
...
Also, add an API for getting server.notify_keyspace_events
Other (unrelated) changes:
Add RM_GetKeynameFromModuleKey
2019-10-28 15:53:35 +05:30
cfcb475435
LOLWUT 6: always pick a default color sequence.
2019-10-28 11:10:58 +01:00
a12f07792f
Module API for explicit SignalModifiedKey instead of implicit one.
...
This commit also fixes an uninitialized module struct member (that luckily never got released)
2019-10-28 12:09:25 +02:00
8337e083b6
Merge branch 'unstable' of github.com:/antirez/redis into unstable
2019-10-28 11:09:09 +01:00
c328c807e7
Merge pull request #6496 from oranagra/module_tests_valgrind
...
Make module tests pass with valgrind, and fix a leak in diskless load
2019-10-28 10:05:52 +01:00
d2658f8387
Merge pull request #6493 from yossigo/modules-make-cleanup
...
Modules: improve tests Makefile.
2019-10-28 10:00:40 +01:00
5aab012676
Merge pull request #6498 from oranagra/rm_latency_add_sample
...
Module API for LatencyAddSample
2019-10-28 09:59:26 +01:00
e097c99681
Merge pull request #4761 from WJWH/minor-typos
...
Fix some minor typos in comments
2019-10-28 09:58:38 +01:00
6f2fc34228
Merge pull request #6502 from happynote3966/typo-fix
...
fix comment typo in redis-cli.c
2019-10-28 09:57:43 +01:00
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
cd02c5944f
fix comment typo in redis-cli.c
2019-10-25 22:31:55 +09:00
fb1f4f4e7e
Merge branch 'unstable' into minor-typos
2019-10-25 10:18:26 +02:00
e3b1d6d3ad
Module API for LatencyAddSample
2019-10-24 14:24:55 +03:00
183d264e9e
Modules: improve tests Makefile.
...
Removes some boilerplate per module, add clean target.
2019-10-24 13:21:35 +03:00
5dd1130272
Remove trailing space from server.c.
2019-10-24 11:20:15 +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
be352633a0
Make module tests pass with valgrind, and fix a leak in diskless load
2019-10-24 09:45:25 +03: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