RockteMQ-AI commented on issue #10667: URL: https://github.com/apache/rocketmq/issues/10667#issuecomment-5102149088
**Fix Spec Generated** A detailed fix specification has been prepared for this issue. **Strategy:** Make the revive-failure handling of the cache path identical to the KV-store path — observe the future; on failure, re-persist the record to the KV store with backoff so the durable revive loop retries it later. **Key Changes:** 1. **`PopConsumerService.java`** — Extract `buildBackoffRetryRecord()` helper from existing inline retry logic (pure refactor) 2. **`PopConsumerService.java`** — Add `reviveBufferedRecord(PopConsumerRecord)` method that wraps `revive()` with `.whenComplete()` to observe async results. On `false`/exception: re-persist to KV store with exponential backoff. Change constructor to bind `this::reviveBufferedRecord` instead of `this::revive` 3. **`PopConsumerCache.java`** — No functional change needed; the existing `clearStagedRecords()` becomes correct once the callback guarantees durable failure handling **Behavior Change:** | Revive outcome | Before | After | |---|---|---| | Future completes `true` | record dropped ✓ | record dropped ✓ | | Future completes `false` | **record lost** | re-persisted with backoff | | Future completes exceptionally | **record lost, error swallowed** | error logged + re-persisted with backoff | **Tests:** 6 new tests covering failed future, false result, success, exhausted attempts, backoff math, and end-to-end cache sweep. **Risk:** No API/protocol change. Re-persisted records flow through existing durable revive loop. Happy path adds negligible overhead (one `whenComplete` per expired record). Reply `/approve` to proceed with PR generation, `/revise <feedback>` to request changes, or `/reject` to decline. --- *Automated fix proposal by github-manager-bot* -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
