Merged
Conversation
tezc
reviewed
Feb 25, 2026
tezc
reviewed
Feb 25, 2026
Collaborator
|
I glanced over the PR but couldn't do a meaningful review yet. Tomorrow, I'll give it another go after taking a look at stream PR first but I doubt I'll be able to provide a meaningful review. Btw, if we can turn on Cursor in the repo, it will be more useful than me. |
sggeorgiev
reviewed
Feb 26, 2026
oranagra
previously approved these changes
Mar 1, 2026
Member
oranagra
left a comment
There was a problem hiding this comment.
approving based on previous reviews
The call to newRawKey(p) in elementNewKey() was discarding the returned RdbStatus. This function can fail when aggMakeRoom() or aggUpdateWritten() encounter errors (e.g., when maxRawSize is exceeded). Without proper error checking, these failures were silently swallowed, potentially leading to corrupted raw aggregator state and invalid RESTORE output. Wrapped the call with IF_NOT_OK_RETURN() to properly propagate errors up the call chain, consistent with error handling patterns throughout the codebase.
oranagra
approved these changes
Mar 1, 2026
Merged
moticless
added a commit
that referenced
this pull request
Mar 1, 2026
### New Features - **RDB v13 Support**: Add support for RDB version 13 (#93) - Ensures compatibility with latest Redis RDB format, specifically key-metadata and stream IDMP - **RESTOREMODAUX Downgrading**: Support downgrading RESTOREMODAUX commands (#92) - Enables compatibility when restoring to older Redis versions - **Redis Enterprise Support**: Skip new Redis Enterprise RDB_OPCODE_SLOT_NUM opcode (#91) - Improves compatibility with Redis Enterprise RDB files - **Authentication**: Add LIBRDB_AUTH environment variable support for password authentication - Simplifies authentication configuration in automated environments ### Bug Fixes - **Error Handling**: Add goto cleanup on rdb-cli return error - Ensures proper resource cleanup on error conditions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add parsing support for RDB Version 13 (Redis 8.6). This includes:
Stream IDMP (Idempotent Message Producer) support:
RDB_TYPE_STREAM_LISTPACKS_4for streams with IDMP datahandleStreamIdmpMeta,handleStreamIdmpProducer,handleStreamIdmpEntryXCFGSETandXIDMPRECORDcommands for Redis 8.6+includeStreamMetaenabledKey Metadata support:
RDB_OPCODE_KEY_META(243) for module metadata classesnumMetacount inRdbKeyInfostructure%mformat specifier for print handlermetadata cannot be reconstructed without RESTORE command.
Testing:
in both RESTORE (L0) and non-RESTORE (L1/L2) modes
preserved only via RESTORE
Note
High Risk
Touches the core RDB parsing state machine and RESP/JSON emitters to handle new v13 opcodes/types, which could regress parsing or serialization for existing dumps if edge cases are missed.
Overview
Adds RDB v13 (Redis 8.6) support by introducing the new stream encoding
RDB_TYPE_STREAM_LISTPACKS_4and parsing/propagating Stream IDMP (producer config + iid→stream-id mappings) via new data callbacks (handleStreamIdmpMeta/handleStreamIdmpProducer/handleStreamIdmpEntry). JSON output can now optionally include IDMP data (includeStreamIdmp), and RESP generation emitsXCFGSET/XIDMPRECORDwhen targeting Redis 8.6+ (otherwise omits IDMP commands).Adds parsing for the new key-metadata opcode
RDB_OPCODE_KEY_META(243), tracks the per-key metadata class count (RdbKeyInfo.numMeta), preserves metadata only in raw/RESTORE mode (discarded at struct/data levels), and exposes it in print formatting via%m. Updates CLI/README help text and expands tests/fixtures for v13 streams, target-version RESP output, and key-metadata round-trips (auto-skipping when thetest_keymetamodule isn’t available).Written by Cursor Bugbot for commit 17c22c8. This will update automatically on new commits. Configure here.