Commit Graph

23 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
9c974494a7 Update tests for Redis parity 2026-01-15 10:07:24 +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
dca6079f59 Fix pubsub test assertions 2026-01-14 22:34:51 +01:00
Julien Letessier
b2a96d6979 Add test harness and basic tests 2026-01-14 21:30:55 +01:00