From 38f97bed5257f9bdbf04b8ddc12231209c6e96c6 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Tue, 2 Nov 2021 16:58:14 +0000 Subject: [PATCH] World: fixed PopulationTask failed assumption that generator is always registered if the worker selected previously had a generator registered, but has since been shutdown, the workerStartHook that cleans up generatorRegisteredWorkers won't yet have been called. This results in the worker being started by the submission of PopulationTask, and the generator doesn't get preemptively registered. --- src/world/World.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/world/World.php b/src/world/World.php index bdb8d9fbb..6d3af4190 100644 --- a/src/world/World.php +++ b/src/world/World.php @@ -2904,6 +2904,10 @@ class World implements ChunkManager{ } ); $workerId = $this->workerPool->selectWorker(); + if(!isset($this->workerPool->getRunningWorkers()[$workerId]) && isset($this->generatorRegisteredWorkers[$workerId])){ + $this->logger->debug("Selected worker $workerId previously had generator registered, but is now offline"); + unset($this->generatorRegisteredWorkers[$workerId]); + } if(!isset($this->generatorRegisteredWorkers[$workerId])){ $this->registerGeneratorToWorker($workerId); }