Repository navigation
fix: recover compacted WuKongIM WAL on restart [skip deploy] - #178
Merged
Merged
Conversation
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.
Production WuKongIM fails to restart with
controller/raftstore: crc mismatchafter the verified image refresh. Its only retained Controller WAL begins at segment1, matching the old writer's pruned-prefix CRC defect. PostgreSQL and the3.5.2/schema12 application remain intact.Keep the existing c7f663fa23a4ee2c6f7e08c68423f50f0f6e9c47 WuKongIM base and backport only the upstream raftstore package from 0194a738. The fixed reader accepts only a missing legacy predecessor after checking node identity, snapshot checksum, every retained body CRC, durable metadata and the complete committed suffix. It persists a validated boundary; it does not reset data or rewrite source records/checksums. New segment boundaries prevent recurrence.
The Docker build runs the upstream raftstore recovery/corruption/boundary regression suite before compiling the complete original application, so a failed backport cannot publish an image. No authentication, provider, application runtime or public protocol changes are included. Local Docker execution is unavailable because the Desktop Linux engine is not running; official CI performs this owning check.
Before repair, Komodo stopped only WuKongIM and retained a full cold archive: update6ad34e10e06d5e1f79829833 Complete/success=true, 32,598,016 bytes, SHA256 e361e98216d756251c2e8c647d5c5658211794e224298908375a37e1296bce10. The commit keeps automatic deployment disabled; after publication operators will pin and deploy only the repaired WuKongIM service through Komodo and verify readiness and durable recovery. Schema12 application Workers will not be rolled back.