diff --git a/rllib/utils/actors.py b/rllib/utils/actors.py index 70026d38f..8c4929949 100644 --- a/rllib/utils/actors.py +++ b/rllib/utils/actors.py @@ -40,12 +40,16 @@ class TaskPool(object): Assumes obj_id only is one id.""" for worker, obj_id in self.completed(blocking_wait=blocking_wait): + (ray.worker.global_worker.raylet_client.fetch_or_reconstruct( + [obj_id], True)) self._fetching.append((worker, obj_id)) remaining = [] num_yielded = 0 for worker, obj_id in self._fetching: - if num_yielded < max_yield: + if (num_yielded < max_yield + and ray.worker.global_worker.core_worker.object_exists( + obj_id)): yield (worker, obj_id) num_yielded += 1 else: