diff --git a/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php b/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php index da1df283f..872626335 100644 --- a/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php +++ b/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php @@ -1,42 +1,44 @@ <?php final class PhabricatorTaskmasterDaemon extends PhabricatorDaemon { public function run() { $sleep = 0; do { $tasks = id(new PhabricatorWorkerLeaseQuery()) ->setLimit(1) ->execute(); if ($tasks) { foreach ($tasks as $task) { $id = $task->getID(); $class = $task->getTaskClass(); $this->log("Working on task {$id} ({$class})..."); $task = $task->executeTask(); $ex = $task->getExecutionException(); if ($ex) { if ($ex instanceof PhabricatorWorkerPermanentFailureException) { $this->log("Task {$id} failed permanently."); } else { $this->log("Task {$id} failed!"); - throw $ex; + throw new PhutilProxyException( + "Error while executing task ID {$id} from queue.", + $ex); } } else { $this->log("Task {$id} complete! Moved to archive."); } } $sleep = 0; } else { $sleep = min($sleep + 1, 30); } $this->sleep($sleep); } while (true); } }