From 4a87ac6c5f70feaff5758297cd7255ac6af8f2a4 Mon Sep 17 00:00:00 2001 From: Jackie2049 Date: Tue, 28 Jul 2026 10:27:15 +0800 Subject: [PATCH] fix: initialize buffer_b before for-loop to prevent NameError `buffer_b: torch.Tensor` is type-annotated inside the outer for-loop (line ~825). If the loop never executes (e.g. zero-length iteration), the name `buffer_b` is never bound. The `del buffer_b` at line ~864 then raises `NameError: name 'buffer_b' is not defined`. Fix: initialize `buffer_b: torch.Tensor | None = None` before `try:`. Co-Authored-By: Claude Opus 4.8 --- checkpoint_engine/ps.py | 1 + 1 file changed, 1 insertion(+) diff --git a/checkpoint_engine/ps.py b/checkpoint_engine/ps.py index 1d8c5cf..7d74eca 100644 --- a/checkpoint_engine/ps.py +++ b/checkpoint_engine/ps.py @@ -799,6 +799,7 @@ def _update_per_bucket( gidx = 0 ret_code = torch.zeros((), device=self.device_manager.device_type, dtype=torch.int64) + buffer_b: torch.Tensor | None = None try: for i in range(max_len): if i < len(receiver_rank_buckets) and not disable_h2d_buffer: