Fix cluster import sometimes not allocating the correct nodes#9768
Open
LocalIdentity wants to merge 4 commits intodevfrom
Open
Fix cluster import sometimes not allocating the correct nodes#9768LocalIdentity wants to merge 4 commits intodevfrom
LocalIdentity wants to merge 4 commits intodevfrom
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.
Fixes #8346, Fixes #7570
Based on work in #7270
Description of the problem being solved:
PR is written by Codex and checked by me. I could not manage to make a working fix myself that handled every edge case but this solution seems to cover all of them, as I have not found and issue with it so far.
Ever since cluster jewels have been added into PoB, they have been using the wrong import / save format and have caused issues where sometimes importing from a character will not allocate some cluster nodes (most common on small clusters)
This PR moves cluster jewel handling to the correct current hash mapping (v2) and makes that the default behaviour.
The primary goal is to switch fully to the new mapping logic for cluster subgraph generation so current imports and builds use a single correct path. This fixes layout and orientation mismatches, incorrect medium and small cluster allocations and missing allocated cluster sockets.
The PR preserves backwards compatibility by adding a one-time legacy migration during load. Specs that do not have
clusterHashFormatVersionare treated as legacy.During load, legacy cluster node IDs are remapped to current node IDs, and that remap is applied to cluster allocations, legacy socket allocations that used normal-range IDs, and
spec.jewelssocket ownership. After migration the spec is marked and saved as v2 so conversion is not repeated.Steps taken to verify a working solution: