The GitHub Actions job "CI" on kvrocks.git/unstable has failed.
Run started by GitHub user jihuayu (triggered by jihuayu).

Head commit for run:
fdcfd437fa835df6c919099aae9a3160d389ed11 / Songqing Zhang 
<[email protected]>
fix(stream): correct subkey prefix encoding in DestroyGroup (#3420)

DestroyGroup was constructing scan prefixes using only
    PutFixed64(group_name.size()) + group_name, which does not match the
actual internal key format used by
[internalKeyFromGroupName](https://github.com/apache/kvrocks/blob/da5e46307047b3e89753f0c9c02996430e758a5f/src/types/redis_stream.cc#L171),
    internalKeyFromConsumerName, and internalPelKeyFromGroupAndEntryId.

The real keys are prefixed with PutFixed64(UINT64_MAX) + PutFixed8(type)
before the group name length and name. The wrong prefix meant the scan
range could miss all group/consumer/PEL keys or match unrelated stream
    entry keys, causing data leaks or corruption on XGROUP DESTROY.

Fix by iterating over the three subkey types (GroupMetadata,
ConsumerMetadata, PelEntry) and building the correct prefix for each,
    consistent with the internal key encoding helpers.

Besides, add two test cases verifying that DestroyGroup correctly cleans
up all
group-related subkeys (group metadata, consumer metadata, PEL entries):

- DestroyGroupCleansUpConsumersAndPelEntries: verifies full cleanup
      including that stream entries are preserved and the group can be
      re-created cleanly.
- DestroyGroupDoesNotAffectOtherGroups: verifies that destroying one
      group does not affect another group's consumers or PEL entries.

Report URL: https://github.com/apache/kvrocks/actions/runs/24114362096

With regards,
GitHub Actions via GitBox

Reply via email to