From 322b24ea05c832d0f9f992b963f93f54fc685749 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 21 Dec 2024 21:46:23 +0000 Subject: [PATCH] Issue 14609: Avoid endless worker repetition in case of an execution error --- src/Core/Worker.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Core/Worker.php b/src/Core/Worker.php index 8a8270bdb9..e9a91b973c 100644 --- a/src/Core/Worker.php +++ b/src/Core/Worker.php @@ -558,15 +558,17 @@ class Worker if ($method_call) { try { call_user_func_array(sprintf('Friendica\Worker\%s::execute', $funcname), $argv); - } catch (\TypeError $e) { - // No need to defer a worker queue entry if the arguments are invalid - Logger::notice('Wrong worker arguments', ['class' => $funcname, 'argv' => $argv, 'queue' => $queue, 'message' => $e->getMessage()]); } catch (\Throwable $e) { - Logger::error('Uncaught exception in worker execution', ['class' => get_class($e), 'message' => $e->getMessage(), 'code' => $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine(), 'trace' => $e->getTraceAsString(), 'previous' => $e->getPrevious()]); + Logger::error('Uncaught exception in worker method execution', ['class' => get_class($e), 'message' => $e->getMessage(), 'code' => $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine(), 'trace' => $e->getTraceAsString(), 'previous' => $e->getPrevious()]); Worker::defer(); } } else { - $funcname($argv, count($argv)); + try { + $funcname($argv, count($argv)); + } catch (\Throwable $e) { + Logger::error('Uncaught exception in worker execution', ['message' => $e->getMessage(), 'code' => $e->getCode(), 'file' => $e->getFile() . ':' . $e->getLine(), 'trace' => $e->getTraceAsString(), 'previous' => $e->getPrevious()]); + Worker::defer(); + } } Logger::disableWorker();