Commit Graph

63 Commits

Author SHA1 Message Date
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
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
fortrue
9b85bd0e38 avoid to use leader's connection for follow request 2024-01-25 22:28:45 +08:00
fortrue
ace6ed2941 fix private connection leak 2019-06-15 09:03:54 +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
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
Dmitry Orlov
a2a5d78fbd [fix] ipv6 address parsing 2018-07-05 13:01:06 +03: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
fortrue
28edb79c61 1.fix compile error in MAC OS X for TCP_KEEPIDLE
2.change the version to 1.0.5-pre
2018-04-23 14:00:27 +08:00
fortrue
a856f2607f fix string format output bug 2018-04-23 11:45:46 +08:00
Yoon
bf635bbfab Remove type in Conf 2018-04-13 17:22:14 +09:00
Yoon
a13bb36159 Add a fix(by @fortrue) 2018-04-13 15:44:49 +09:00
Yoon
a559ac0d4f Support multiple Latency Monitors
- Fix a dangling pointer bug
2018-04-13 14:12:11 +09:00
Yoon
9d1d1af5bf Remove config order restriction
- Delay setLatencyMonitor to load custom commands config first
- Fix custom command container bug
2018-04-12 15:05:02 +09:00
Yoon
dcdc9a1ba0 Change config description style 2018-04-12 11:59:15 +09:00
Yoon
95f4580ccf Add custom command config checking
- add config sample(including Read mode)
- apply @fortue's suggestion to check exclusive mode and key postion
2018-04-10 17:07:47 +09:00
Yoon
aa013991f7 Add custom command exclusive mode checking 2018-04-10 10:32:59 +09:00
Yoonian
75228f3272 Add support for custom commands
- Support maximum 16 commands
- Add a sample configuration(conf/command.conf)
2018-04-09 21:28:16 +09:00
fortrue
ce210cdee3 1.modify default ServerTimeout and KeepAlive to 0
2.improve doc
2018-03-28 20:27:04 +08:00
fortrue
a14f11cec9 release 1.0.4 2018-03-26 15:16:44 +08:00
fortrue
0891036e8c 1.wait for response when connecting to redis
2.remove unused code
3.fix sentinel.conf typing
2018-03-26 14:59:20 +08:00
fortrue
ec36627f91 Issue #23
change signal SIGHUP action from abort process to ignore
log signal value when process aborted by signal
2018-03-16 12:28:07 +08:00
fortrue
86183a4a97 support redis server connection keepalive and timeout
fix Issue #21
2018-02-23 16:47:03 +08:00
fortrue
b9a468dc97 fix backtrace bug 2018-01-19 16:43:28 +08:00
fortrue
681f5e37d0 release 1.0.3,ready for CacheEasy 2018-01-04 20:51:08 +08:00
fortrue
3207be46ef 1.fix issue14, don't add invalid sentinel address
2.add default compile option -g
3.fix command config get BufSize output
4.ignore online status for ClusterServerPool server
2017-12-29 11:27:02 +08:00
fortrue
996e02fd4d fix bug when conf define SentinelServerPool but without Sentinels instances 2017-12-28 21:05:19 +08:00
fortrue
45661645ed 1.add more information for command info and config get
2.fix log file symbol link error
2017-12-26 14:27:09 +08:00