Skip to content

fix stream listpack decode bug - #127

Open
undolog wants to merge 1 commit into
leonchen83:masterfrom
undolog:fix/stream-listpack-index-out-of-bounds
Open

undolog wants to merge 1 commit into
leonchen83:masterfrom
undolog:fix/stream-listpack-index-out-of-bounds

Conversation

@undolog

@undolog undolog commented Sep 7, 2026

Copy link
Copy Markdown

Fix stream listpack decoding when an entry has a different number of fields than the master entry. The master field count was mutated, breaking subsequent samefields entries (ArrayIndexOutOfBoundsException / NumberFormatException).

Fixes #124

Reproduce:
XADD order_events * order_id 1001 status waiting amount 99
XADD order_events * order_id 1002 status waiting amount 50
XADD order_events * order_id 1003 status processing amount 80
// 4 fields -> differs from master -> corrupts field count
XADD order_events * order_id 1004 status refunded amount 99 reason user_canceled
// 3 fields -> samefields again -> crashes
XADD order_events * order_id 1005 status done amount 88
XADD order_events * order_id 1006 status waiting amount 120

./bin/rct -f mem -s /data/dump.rdb -o memory_1.csv

Fix stream listpack decoding when an entry has a different number of fields than the master entry. The master field count was mutated, breaking subsequent samefields entries (ArrayIndexOutOfBoundsException / NumberFormatException).

Fixes leonchen83#124

Reproduce:
  XADD order_events * order_id 1001 status waiting amount 99
  XADD order_events * order_id 1002 status waiting amount 50
  XADD order_events * order_id 1003 status processing amount 80
  # 4 fields -> differs from master -> corrupts field count
  XADD order_events * order_id 1004 status refunded amount 99 reason user_canceled
  # 3 fields -> samefields again -> crashes
  XADD order_events * order_id 1005 status done amount 88
  XADD order_events * order_id 1006 status waiting amount 120

  ./bin/rct -f mem -s /data/dump.rdb -o memory_1.csv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

java.lang.NumberFormatException: For input string: "waiting"

1 participant