[backport] Backport sweep for 8.0 - #4685
valkeyrie-ops[bot] wants to merge 3 commits into
Conversation
Fix missing `signalModifiedKey()` calls for stream commands that mutate stream metadata rather than stream entries themselves. Fixes #3429 A few stream commands already mutate consumer-group or PEL state, increment `server.dirty`, and propagate changes to AOF / replicas, but they do not always mark the key as modified for `WATCH` and client tracking invalidation. Affected command paths: - `XGROUP CREATE/SETID/DESTROY/CREATECONSUMER/DELCONSUMER` - `XSETID` - `XREADGROUP` - `XACK` - `XCLAIM` - `XAUTOCLAIM` Changes: - Added `signalModifiedKey()` to `XGROUP CREATE/SETID/DESTROY/CREATECONSUMER/DELCONSUMER` - Added `signalModifiedKey()` to `XSETID` - Updated `XREADGROUP` to signal key modification when synchronous group reads or consumer creation mutate stream metadata - Updated `XACK`, `XCLAIM`, and `XAUTOCLAIM` to signal key modification once per command when they actually mutate PEL or consumer-group state Additional change: - Don't emit xdel event for XDELEX DELREF, when removing an orphaned PEL ref without deleting the actual stream entry. --------- Signed-off-by: Tarte <emprimula@gmail.com> Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech> Co-authored-by: Ran Shidlansik <ranshid@amazon.com> Co-authored-by: Viktor Söderqvist <viktor.soderqvist@est.tech> Backport-Source-PR: 3459
AI backport resolution: source PR #3459Fix missing signalModifiedKey calls for stream commands 2 AI-edited files Claude Summary
AI-edited files requiring review Full backport commit diff: commit 2fcb42aafaed.
|
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Debian 11 Bullseye has reached end of life, and package rotations are causing apt installs in the build-debian-old job to fail with 404 errors. Switch the job to Debian 12 Bookworm so it continues testing against the oldest supported Debian toolchain without relying on EOL package mirrors. Signed-off-by: Rain Valentine <rsg000@gmail.com> Backport-Source-PR: 4613
#4676) `ValkeyModule_FreeModuleUser`, `ValkeyModule_ACLAddLogEntry` and `ValkeyModule_ACLAddLogEntryByUserName` are declared in valkeymodule.h as returning void, but the implementations (`VM_FreeModuleUser`, `VM_ACLAddLogEntry`, `VM_ACLAddLogEntryByUserName`) return int, and the latter two document `VALKEYMODULE_OK` / `VALKEYMODULE_ERR`. Modules calling them through the API table therefore call an int function via a void function pointer, which is undefined behavior in C. On x86-64 and arm64 the discarded return register makes it harmless in practice; on a target with strict indirect-call signature checking (WebAssembly) the call traps. Declare them as int to match the implementation. Existing modules that ignore the return value are unaffected; modules can now check the result of the ACL log calls as documented. Also document that `FreeModuleUser` returns `VALKEYMODULE_OK`. Found by compiling the server with Emscripten, where `redis.acl_check_cmd` in a Lua script (which calls `FreeModuleUser` through the API table) trapped with 'null function or function signature mismatch'. Signed-off-by: Rain Valentine <rsg000@gmail.com> Backport-Source-PR: 4676
AI backport resolution: source PR #4676Fix return types of three module API declarations to match definitions 1 AI-edited file Claude Summary
AI-edited files requiring review
Full backport commit diff: commit 0149f76d1047.
|
|
Automatic follow-up for the current backport head. I did not push a fix: The failure is not deterministic: the identical test at the identical commit passed in ~29 sibling jobs of the same CI run (typically in ~20s), and the other failing jobs in this run failed on entirely different cluster tests (slot-ownership.tcl, replica-migration), the classic scatter pattern of flaky cluster-convergence tests. No default-branch candidate commit touches manual-takeover.tcl or this convergence path (FAILOVER_AUTH_NACK is a later unrelated feature, confirmed absent from this checkout; the takeover path uses no election votes). The only 'fixes' available would be inflating timeouts or weakening the recovery assertion, which the rules forbid; therefore no safe, attributable fix exists. Looked at the failure from this run. Other checks also failed in that run; re-invoke with the same command to address the next one:
|
|
Automatic follow-up for the current backport head. I did not push a fix: This is a timing-dependent race exposing a real product bug: FAILOVER_AUTH_ACKs carry no election epoch, so a single voter's ACKs from two consecutive elections are double-counted (src/cluster_legacy.c:3628-3638). The upstream mitigation direction (FAILOVER_AUTH_NACK epoch echo, 5c24e5d) depends on the NACK feature, which is confirmed absent from this 8.0 branch (no FAILOVER_AUTH_NACK anywhere in src/), so it does not port cleanly, and no self-contained test-scaffolding fix exists that would not weaken what the test verifies. Looked at the failure from this run. Other checks also failed in that run; re-invoke with the same command to address the next one:
|
|
Automatic follow-up for the current backport head. I did not push a fix: This is a timing-dependent/flaky failure: whether keys get evicted during init_test depends on how quickly the server releases the prior test's client buffer memory, and the helper has no wait/synchronization. It is not a product bug and not deterministic scaffolding breakage. None of the discovered default-branch commits touch tests/unit/maxmemory.tcl or this eviction path, so there is no upstream fix to port, and authoring a fix would mean designing new flakiness mitigation (e.g. waiting for used_memory to settle), which falls outside a safe mechanical fix per the rules. Looked at the failure from this run. |
Backport sweep for 8.0
Automated cherry-picks from PRs marked "To be backported".
Applied
AI resolution details are posted as comments on this PR when available.
Generated by valkey-ci-agent using Claude Code.