Fix: Prevent crash from uninitialized last_id in convert_partition.py #7903
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.
Description
This PR fixes a critical bug that causes a crash in
convert_partition.pywhen a partition contains zero nodes across all node types.Problem
The
last_idtensor was only assigned within anelsebranch of a loop that iterates over node types. If a partition had no nodes for any type, thiselsebranch was never entered, leavinglast_iduninitialized. This resulted in a crash when the uninitialized variable was subsequently passed todist.all_gather.Solution
The fix ensures that
last_idis always initialized before being used:max_last_id, is initialized with the previous partition's last ID before the loop begins.max_last_idis updated to track the maximum node ID encountered in the current partition.last_idtensor is now created after the loop completes, using the finalmax_last_id.This change guarantees that
dist.all_gatheralways receives a valid tensor, preventing the crash and improving the robustness of the partitioning process, especially for small graphs.