ai-yang commented on issue #10700:
URL: https://github.com/apache/rocketmq/issues/10700#issuecomment-5140485535
Thanks for the evaluation. Here are the requested details in an explicit
format:
- **Version/tag:** `develop` at `00e45b8a6db23efbe756d0306f10716156cfd4dd`.
- **Steps to reproduce:**
1. Start two concurrent first `commitOffset` calls for the same
`topic@group` but different queue IDs.
2. Use a barrier so both calls observe a missing inner offset map.
3. Let both calls initialize and publish their maps.
4. Persist and reload the offset manager.
- **Actual behavior:** One inner map can overwrite the other, so only one
queue remains in memory or after reload. In RocksDB v1 incremental mode, an
older serialized whole-map WAL batch can also be written after the newer
snapshot and overwrite it on disk.
- **Expected behavior:** Both queue offsets must remain in memory and after
persistence/reload.
- **Logs or stack traces:** This is a silent data race and does not emit an
exception or stack trace. The deterministic regression tests against the
previous implementation failed with `expected: 2 but was: 1` for the classic
JSON manager, RocksDB v1 periodic persistence, and RocksDB v1 incremental
restart recovery.
The focused fix and deterministic regression tests are available in PR
#10701.
--
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]