Commit Graph

101 Commits

Author SHA1 Message Date
Julien Letessier
560dbe7fc7 Cap log unit allocation in logger 2026-01-15 16:11:30 +01:00
Julien Letessier
13e36df7c8 Initialize thread pointer in logger 2026-01-15 13:00:16 +01:00
Julien Letessier
3146ae0adc Handle vsnprintf errors in logger 2026-01-15 12:59:03 +01:00
Julien Letessier
2a431ccee6 Handle vsnprintf errors in buffer 2026-01-15 12:57:36 +01:00
Julien Letessier
33601ea2f0 Make signal handlers async-signal-safe 2026-01-15 12:33:33 +01:00
Julien Letessier
d4b10d5065 Handle long commands safely in parser 2026-01-15 12:31:53 +01:00
Julien Letessier
a47a3c8cc0 Guard response error log underflow in parser 2026-01-15 12:30:42 +01:00
Julien Letessier
2b9ea1030a Guard error log underflow in parser 2026-01-15 12:28:10 +01:00
Julien Letessier
7a949b6e7f Guard bulk boundary reads in parser 2026-01-15 12:26:50 +01:00
Julien Letessier
4cbeaeda1b Fix thread-safety and parser edge cases 2026-01-15 11:18:51 +01:00
Julien Letessier
d49841dbe9 Add gitignore for Redis dumps and pycache 2026-01-15 11:08:13 +01:00
Julien Letessier
eb52fdd202 Add Ruff linter and fix lint issues 2026-01-15 11:07:36 +01:00
Julien Letessier
8b8b3ff32a Unify test result formatting 2026-01-15 10:55:19 +01:00
Julien Letessier
9c974494a7 Update tests for Redis parity 2026-01-15 10:07:24 +01:00
Julien Letessier
28e20dfe80 Fix transaction queuing and pubsub count parsing 2026-01-15 10:07:19 +01:00
Julien Letessier
8dd200a35e Clean up pubsub response handling
Remove stray statements introduced during staging and normalize test runner order.
2026-01-15 09:15:59 +01:00
Julien Letessier
2c56d033b3 Validate script keys are on one shard
Reject EVAL/EVALSHA when keys map to different hash groups.

Adds eval_cross_shard test and runs it in the harness.
2026-01-15 09:15:03 +01:00
Julien Letessier
542749b0d3 Reject cross-shard MSETNX
Prevent MSETNX from being split across shards to preserve atomicity.

Adds msetnx_atomicity test and runs it in the harness.
2026-01-15 09:14:41 +01:00
Julien Letessier
781b4a68e9 Preserve MGET error responses
Avoid coercing MGET errors into nil when aggregating responses.

Adds mget_wrong_type test and runs it in the harness.
2026-01-15 09:14:08 +01:00
Julien Letessier
11d8c26c19 Keep connections open on transaction forbid
Return the error for forbidden commands in transactions without closing the client.

Adds transaction_forbid test and runs it in the harness.
2026-01-15 09:13:37 +01:00
Julien Letessier
c73d4056e2 Parse subscribe counts for long channel names
Extract subscription counts from the response tail to avoid truncation.

Adds pubsub_long_name test and runs it in the harness.
2026-01-15 09:13:09 +01:00
Julien Letessier
220772824c Guard against null server responses
Convert unexpected null responses into DeliverRequestFail instead of crashing.

Adds null_response_handling test and runs it in the harness.
2026-01-15 09:12:43 +01:00
Julien Letessier
7485ebbb5a Reset pubsub parser per message
Handle pubsub message replies immediately and reset the parser to avoid response reuse.

Adds pubsub_parser_reset test and runs it in the harness.
2026-01-15 09:12:00 +01:00
Julien Letessier
0243aa0fa6 Ensure pubsub confirmations precede messages
Pause message queuing while subscriptions are pending to preserve confirmation ordering.

Adds pubsub_subscription_order test and includes it in the test runner.
2026-01-15 09:11:12 +01:00
Julien Letessier
4b127b8eed Fix pubsub SubMsg responses
Attach parsed pubsub responses to SubMsg requests so message data is delivered.

Adds pubsub_message_response test and runs it in test harness.
2026-01-15 09:10:29 +01:00
Julien Letessier
9117970abb Document testing in README 2026-01-14 22:35:47 +01:00
Julien Letessier
dca6079f59 Fix pubsub test assertions 2026-01-14 22:34:51 +01:00
Julien Letessier
a8d4feb06c Add pubsub tests for Redis parity 2026-01-14 21:50:45 +01:00
Julien Letessier
b2a96d6979 Add test harness and basic tests 2026-01-14 21:30:55 +01:00
fortrue
ca1630a6b4
Merge pull request #185 from joyieldInc/fix/issue124
avoid to use leader's connection for follow request
2024-01-31 11:40:02 +08:00
fortrue
9b85bd0e38 avoid to use leader's connection for follow request 2024-01-25 22:28:45 +08:00
fortrue
c15f54e274
Merge pull request #140 from shuaiming/patch-1
Update config_CN.md
2021-10-01 18:39:58 +08:00
shuaiming
fbb5a8acb3
Update config_CN.md
Fix typo
2021-09-17 18:14:11 +08:00
fortrue
393ff81e69
Merge pull request #101 from joyieldInc/FixPrivateConnLeak
fix private connection leak
2020-02-01 15:24:14 +08:00
fortrue
ace6ed2941 fix private connection leak 2019-06-15 09:03:54 +08:00
fortrue
dacf3fb30c
Merge pull request #73 from leenr/master
Add support for `zpopmax` and `zpopmin` redis commands (server 5.0.0+)
2019-02-09 08:45:57 +08:00
Vladimir Solomatin
ebf7bd2d82
Add support for zpopmax and zpopmin redis commands (server 5.0.0+) 2019-02-07 20:18:08 +03:00
fortrue
ca9cde0487
Merge pull request #71 from crierr/variadic-hset
Fix HSET to support multiple fields
2019-01-26 14:17:38 +08:00
SeungJin Oh
df3aa1aa92 Fix HSET to support multiple fields
- From Redis 4.0.0 HSET is recommended for multiple fields and HMSET is deprecated
2019-01-25 16:58:06 +09:00
fortrue
4d9166443b release 1.0.5 2018-09-22 19:52:50 +08:00
fortrue
57de3c2a03
Merge pull request #48 from joyieldInc/StandaloneServerPool
support redis standalone backend
2018-09-22 12:17:25 +08:00
fortrue
63596e951d fix Command Mode mistake 2018-08-19 17:21:17 +08:00
fortrue
fb1ac64251 support redis standalone backend 2018-07-08 17:28:25 +08:00
fortrue
0635178c2e
Merge pull request #42 from mosquito/master
[fix] ipv6 address parsing
2018-07-05 08:15:04 -05:00
Dmitry Orlov
a2a5d78fbd [fix] ipv6 address parsing 2018-07-05 13:01:06 +03:00
fortrue
36152f570d
Merge pull request #40 from joyieldInc/issue32
Issue32
2018-07-04 23:02:37 -05:00
fortrue
20bfcb657e fix async assign client race condition, #32 #33 #35 #36 2018-07-05 11:54:12 +08:00
fortrue
34cc6d151e fix for script load command follow policy 2018-06-12 16:29:12 +08:00
fortrue
7fda4b77c1 1.fix multi-keys request leader self reference
2.adjust alloc implement
2018-05-16 09:56:43 +08:00
fortrue
bbbe798629 fix crash because server without DC, but config defined DC, see #32 2018-04-29 19:34:32 +08:00