diff --git a/runtime/history/NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112.json b/runtime/history/NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112.json new file mode 100644 index 00000000..fbb45a21 --- /dev/null +++ b/runtime/history/NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "newfi-newfdom-contentindexnow-jobmanager-semantics-readonly", + "started_at_utc": "2026-09-18T22:12:40Z", + "finished_at_utc": "2026-09-18T22:12:43Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "91c6d213f03dd756e7d98ffc978a277df1a7b265ebac81ff022fb0b6af52f527", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 0, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "0cda876282b18beff61dc397bbdb0f847d5cf6d20170e0df2d682a7aafa6967b", + "sanitized_output_sha256": "0cda876282b18beff61dc397bbdb0f847d5cf6d20170e0df2d682a7aafa6967b", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "NEWFI112_BEGIN\nCOMMAND_ID=NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112\nNEWFI112_STAGING={\"contentindex\":{\"excerpt\":[{\"line\":40,\"text\":\"\\t\\tif (!$contentUrl)\"},{\"line\":41,\"text\":\"\\t\\t{\"},{\"line\":42,\"text\":\"\\t\\t\\t/** @var Entity $content */\"},{\"line\":43,\"text\":\"\\t\\t\\t$content = $this->app->findByContentType($contentType, $contentId);\"},{\"line\":44,\"text\":\"\"},{\"line\":45,\"text\":\"\\t\\t\\tif (!$content instanceof Entity)\"},{\"line\":46,\"text\":\"\\t\\t\\t{\"},{\"line\":47,\"text\":\"\\t\\t\\t\\t// content probably deleted\"},{\"line\":48,\"text\":\"\\t\\t\\t\\treturn $this->complete();\"},{\"line\":49,\"text\":\"\\t\\t\\t}\"},{\"line\":50,\"text\":\"\"},{\"line\":51,\"text\":\"\\t\\t\\tif (!method_exists($content, 'canView'))\"},{\"line\":52,\"text\":\"\\t\\t\\t{\"},{\"line\":53,\"text\":\"\\t\\t\\t\\tthrow new \\\\LogicException(\"},{\"line\":54,\"text\":\"\\t\\t\\t\\t\\t'Could not determine content viewability; Implement XF\\\\Entity\\\\ViewableInterface for ' . get_class($content)\"},{\"line\":55,\"text\":\"\\t\\t\\t\\t);\"},{\"line\":56,\"text\":\"\\t\\t\\t}\"},{\"line\":57,\"text\":\"\"},{\"line\":58,\"text\":\"\\t\\t\\tif (!$content instanceof LinkableInterface)\"},{\"line\":59,\"text\":\"\\t\\t\\t{\"},{\"line\":60,\"text\":\"\\t\\t\\t\\tthrow new \\\\LogicException(\"},{\"line\":61,\"text\":\"\\t\\t\\t\\t\\t'Implement XF\\\\Entity\\\\LinkableInterface for ' . get_class($content)\"},{\"line\":62,\"text\":\"\\t\\t\\t\\t);\"},{\"line\":63,\"text\":\"\\t\\t\\t}\"},{\"line\":64,\"text\":\"\"},{\"line\":65,\"text\":\"\\t\\t\\t$guestUser = \\\\XF::repository(UserRepository::class)->getGuestUser();\"},{\"line\":66,\"text\":\"\\t\\t\\t$canView = \\\\XF::asVisitor($guestUser, function () use ($guestUser, $content)\"},{\"line\":67,\"text\":\"\\t\\t\\t{\"},{\"line\":68,\"text\":\"\\t\\t\\t\\tif (!$guestUser->hasPermission('general', 'view'))\"},{\"line\":69,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":70,\"text\":\"\\t\\t\\t\\t\\treturn false;\"},{\"line\":71,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":72,\"text\":\"\"},{\"line\":73,\"text\":\"\\t\\t\\t\\treturn $content->canView($content);\"},{\"line\":74,\"text\":\"\\t\\t\\t});\"},{\"line\":75,\"text\":\"\\t\\t\\tif (!$canView)\"},{\"line\":76,\"text\":\"\\t\\t\\t{\"},{\"line\":77,\"text\":\"\\t\\t\\t\\treturn $this->complete();\"},{\"line\":78,\"text\":\"\\t\\t\\t}\"},{\"line\":79,\"text\":\"\"},{\"line\":80,\"text\":\"\\t\\t\\t$contentUrl = $content->getContentUrl(true);\"},{\"line\":81,\"text\":\"\\t\\t}\"},{\"line\":82,\"text\":\"\"}],\"sha256\":\"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0\"},\"counts\":{\"drafts\":0,\"resources\":6,\"tag_content\":18,\"tags\":15,\"updates\":6,\"versions\":6},\"errors\":{\"ids\":[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],\"old_fp\":\"e739c2c309539a508e20eba89b0ebc688640ef6ff9f919bbb419b2faad819f80\",\"rows\":[{\"error_id\":33,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":34,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":35,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":36,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":37,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":38,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":39,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":40,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":41,\"exception_type\":\"XF\\\\PrintableException\",\"filename\":\"src/XF/Mvc/Entity/Entity.php\",\"line\":1276,\"message\":\"Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal\"},{\"error_id\":42,\"exception_type\":\"LogicException\",\"filename\":\"src/XF/Mvc/Entity/Entity.php\",\"line\":645,\"message\":\"Attempted to set 'type' while a save was pending without forceSet\"},{\"error_id\":43,\"exception_type\":\"ErrorException\",\"filename\":\"src/XF/Mvc/Entity/Entity.php\",\"line\":1276,\"message\":\"Fatal Error: Uncaught XF\\\\PrintableException: Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal in /var/www/forums/newfi/public/src/XF/Mvc/Entity/Entity.php:1276 Stack trace: #0 Command line code(31): XF\\\\Mvc\\\\Entity\\\\Entity->save(true, false) #1 {main} thrown\"},{\"error_id\":44,\"exception_type\":\"ErrorException\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"Fatal Error: Uncaught XF\\\\Db\\\\InvalidQueryException: MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\\\\'Gram/Support\\\\'' at line 1 in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\\\Db\\\\AbstractStatement->getException('...', 1064, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\\\Db\\\\Mysqli\\\\Statement->getException('...', 1064, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\\\Db\\\\Mysqli\\\\Statement->prepare() #3 /var/www\"},{\"error_id\":45,\"exception_type\":\"XF\\\\PrintableException\",\"filename\":\"src/XF/Mvc/Entity/Entity.php\",\"line\":1276,\"message\":\"Пожалуйста, введите корректный префикс роутинга.\"},{\"error_id\":46,\"exception_type\":\"ErrorException\",\"filename\":\"Command line code\",\"line\":5,\"message\":\"Fatal Error: Uncaught ReflectionException: Method XF\\\\AddOn\\\\AbstractSetup::applyGlobalPermissionByGroup() does not exist in Command line code:5 Stack trace: #0 Command line code(5): ReflectionMethod->__construct('...', '...') #1 {main} thrown\"},{\"error_id\":47,\"exception_type\":\"XF\\\\Db\\\\InvalidQueryException\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1\"},{\"error_id\":48,\"exception_type\":\"XF\\\\Db\\\\InvalidQueryException\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1\"},{\"error_id\":49,\"exception_type\":\"XF\\\\Db\\\\Exception\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"MySQL statement prepare error [1054]: Unknown column 'sub_name_format' in 'SELECT'\"},{\"error_id\":50,\"exception_type\":\"XF\\\\Db\\\\Exception\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT'\"},{\"error_id\":51,\"exception_type\":\"ErrorException\",\"filename\":\"Command line code\",\"line\":32,\"message\":\"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:32 Stack trace: #0 Command line code(32): XF::handlePhpError(2, '...', '...', 32) #1 {main} thrown\"},{\"error_id\":52,\"exception_type\":\"ErrorException\",\"filename\":\"Command line code\",\"line\":16,\"message\":\"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:16 Stack trace: #0 Command line code(16): XF::handlePhpError(2, '...', '...', 16) #1 {main} thrown\"},{\"error_id\":53,\"exception_type\":\"ErrorException\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"Fatal Error: Uncaught XF\\\\Db\\\\Exception: MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT' in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\\\Db\\\\AbstractStatement->getException('...', 1054, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\\\Db\\\\Mysqli\\\\Statement->getException('...', 1054, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\\\Db\\\\Mysqli\\\\Statement->prepare() #3 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(96): XF\\\\Db\\\\Mysqli\\\\Statement->execute() #4 /var/www/forums/newfi/public/src/XF/Db/\"},{\"error_id\":54,\"exception_type\":\"ErrorException\",\"filename\":\"src/XF/Service/ValidateAndSavableTrait.php\",\"line\":36,\"message\":\"Fatal Error: Uncaught LogicException: Cannot save with validation errors. Use validate() to ensure there are no errors. (First error: Пожалуйста, укажите корректную версию.) in /var/www/forums/newfi/public/src/XF/Service/ValidateAndSavableTrait.php:36 Stack trace: #0 Command line code(4): XFRM\\\\Service\\\\ResourceItem\\\\Create->save() #1 /var/www/forums/newfi/public/src/XF.php(950): {closure}() #2 Command line code(4): XF::asVisitor(Object(XFRM\\\\XF\\\\Entity\\\\User), Object(Closure)) #3 {main} thrown\"}]},\"jobs\":[],\"manager\":{\"class\":\"XF\\\\Job\\\\Manager\",\"file\":\"/var/www/forums/newfi/public/src/XF/Job/Manager.php\",\"methods\":{\"cancelUniqueJob\":{\"end\":414,\"excerpt\":[{\"line\":402,\"text\":\"\\tpublic function cancelUniqueJob($uniqueId)\"},{\"line\":403,\"text\":\"\\t{\"},{\"line\":404,\"text\":\"\\t\\t$job = $this->getUniqueJob($uniqueId);\"},{\"line\":405,\"text\":\"\\t\\tif ($job)\"},{\"line\":406,\"text\":\"\\t\\t{\"},{\"line\":407,\"text\":\"\\t\\t\\t$this->cancelJob($job);\"},{\"line\":408,\"text\":\"\\t\\t\\treturn true;\"},{\"line\":409,\"text\":\"\\t\\t}\"},{\"line\":410,\"text\":\"\\t\\telse\"},{\"line\":411,\"text\":\"\\t\\t{\"},{\"line\":412,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":413,\"text\":\"\\t\\t}\"},{\"line\":414,\"text\":\"\\t}\"}],\"start\":402},\"runByIds\":{\"end\":138,\"excerpt\":[{\"line\":100,\"text\":\"\\tpublic function runByIds(array $ids, $maxRunTime)\"},{\"line\":101,\"text\":\"\\t{\"},{\"line\":102,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":103,\"text\":\"\\t\\t{\"},{\"line\":104,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":105,\"text\":\"\\t\\t}\"},{\"line\":106,\"text\":\"\"},{\"line\":107,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":108,\"text\":\"\\t\\t$result = null;\"},{\"line\":109,\"text\":\"\"},{\"line\":110,\"text\":\"\\t\\tforeach ($ids AS $k => $id)\"},{\"line\":111,\"text\":\"\\t\\t{\"},{\"line\":112,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":113,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":114,\"text\":\"\\t\\t\\t{\"},{\"line\":115,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":116,\"text\":\"\\t\\t\\t}\"},{\"line\":117,\"text\":\"\"},{\"line\":118,\"text\":\"\\t\\t\\t$job = $this->getJob($id);\"},{\"line\":119,\"text\":\"\\t\\t\\tif ($job && $job['trigger_date'] <= time())\"},{\"line\":120,\"text\":\"\\t\\t\\t{\"},{\"line\":121,\"text\":\"\\t\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":122,\"text\":\"\\t\\t\\t}\"},{\"line\":123,\"text\":\"\\t\\t\\telse\"},{\"line\":124,\"text\":\"\\t\\t\\t{\"},{\"line\":125,\"text\":\"\\t\\t\\t\\t$result = null;\"},{\"line\":126,\"text\":\"\\t\\t\\t}\"},{\"line\":127,\"text\":\"\"},{\"line\":128,\"text\":\"\\t\\t\\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)\"},{\"line\":129,\"text\":\"\\t\\t\\t{\"},{\"line\":130,\"text\":\"\\t\\t\\t\\tunset($ids[$k]);\"},{\"line\":131,\"text\":\"\\t\\t\\t}\"},{\"line\":132,\"text\":\"\\t\\t}\"},{\"line\":133,\"text\":\"\"},{\"line\":134,\"text\":\"\\t\\treturn [\"},{\"line\":135,\"text\":\"\\t\\t\\t'result' => $result,\"},{\"line\":136,\"text\":\"\\t\\t\\t'remaining' => $ids,\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"start\":100},\"runJobEntry\":{\"end\":249,\"excerpt\":[{\"line\":193,\"text\":\"\\tpublic function runJobEntry(array $job, $maxRunTime)\"},{\"line\":194,\"text\":\"\\t{\"},{\"line\":195,\"text\":\"\\t\\t$affected = $this->db->update('xf_job', [\"},{\"line\":196,\"text\":\"\\t\\t\\t'trigger_date' => time() + 15 * 60,\"},{\"line\":197,\"text\":\"\\t\\t\\t'last_run_date' => time(),\"},{\"line\":198,\"text\":\"\\t\\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);\"},{\"line\":199,\"text\":\"\\t\\tif (!$affected)\"},{\"line\":200,\"text\":\"\\t\\t{\"},{\"line\":201,\"text\":\"\\t\\t\\t// job has already been taken, treat it as complete\"},{\"line\":202,\"text\":\"\\t\\t\\treturn JobResult::newComplete($job['job_id']);\"},{\"line\":203,\"text\":\"\\t\\t}\"},{\"line\":204,\"text\":\"\"},{\"line\":205,\"text\":\"\\t\\t$result = $this->runJobInternal($job, $maxRunTime);\"},{\"line\":206,\"text\":\"\"},{\"line\":207,\"text\":\"\\t\\tswitch ($result->result)\"},{\"line\":208,\"text\":\"\\t\\t{\"},{\"line\":209,\"text\":\"\\t\\t\\tcase JobResult::RESULT_COMPLETED:\"},{\"line\":210,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":211,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tcase JobResult::RESULT_RESUME:\"},{\"line\":214,\"text\":\"\\t\\t\\tcase JobResult::RESULT_REATTEMPT:\"},{\"line\":215,\"text\":\"\\t\\t\\t\\t$update = [\"},{\"line\":216,\"text\":\"\\t\\t\\t\\t\\t'execute_data' => serialize($result->data),\"},{\"line\":217,\"text\":\"\\t\\t\\t\\t\\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],\"},{\"line\":218,\"text\":\"\\t\\t\\t\\t\\t'last_run_date' => time(),\"},{\"line\":219,\"text\":\"\\t\\t\\t\\t];\"},{\"line\":220,\"text\":\"\"},{\"line\":221,\"text\":\"\\t\\t\\t\\tif ($result->result === JobResult::RESULT_REATTEMPT)\"},{\"line\":222,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":223,\"text\":\"\\t\\t\\t\\t\\t$update['attempts'] = $job['attempts'] + 1;\"},{\"line\":224,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":225,\"text\":\"\"},{\"line\":226,\"text\":\"\\t\\t\\t\\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);\"},{\"line\":227,\"text\":\"\"},{\"line\":228,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":229,\"text\":\"\"},{\"line\":230,\"text\":\"\\t\\t\\tcase JobResult::RESULT_FAILED:\"},{\"line\":231,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":232,\"text\":\"\"},{\"line\":233,\"text\":\"\\t\\t\\t\\tif ($result->exception)\"},{\"line\":234,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":235,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging = $job;\"},{\"line\":236,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging['execute_data'] = serialize($result->data);\"},{\"line\":237,\"text\":\"\\t\\t\\t\\t\\t$this->logFailedJob($jobForLogging, $result->exception);\"},{\"line\":238,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":239,\"text\":\"\"},{\"line\":240,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":241,\"text\":\"\\t\\t}\"},{\"line\":242,\"text\":\"\"},{\"line\":243,\"text\":\"\\t\\tif (!$job['manual_execute'])\"},{\"line\":244,\"text\":\"\\t\\t{\"},{\"line\":245,\"text\":\"\\t\\t\\t$this->scheduleRunTimeUpdate();\"},{\"line\":246,\"text\":\"\\t\\t}\"},{\"line\":247,\"text\":\"\"},{\"line\":248,\"text\":\"\\t\\treturn $result;\"},{\"line\":249,\"text\":\"\\t}\"}],\"start\":193},\"runQueue\":{\"end\":93,\"excerpt\":[{\"line\":70,\"text\":\"\\tpublic function runQueue($manual, $maxRunTime)\"},{\"line\":71,\"text\":\"\\t{\"},{\"line\":72,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":73,\"text\":\"\\t\\t{\"},{\"line\":74,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":75,\"text\":\"\\t\\t}\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t$runnable = $this->getRunnable($manual);\"},{\"line\":78,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":79,\"text\":\"\\t\\t$result = null;\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\tforeach ($runnable AS $job)\"},{\"line\":82,\"text\":\"\\t\\t{\"},{\"line\":83,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":84,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":85,\"text\":\"\\t\\t\\t{\"},{\"line\":86,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":87,\"text\":\"\\t\\t\\t}\"},{\"line\":88,\"text\":\"\"},{\"line\":89,\"text\":\"\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":90,\"text\":\"\\t\\t}\"},{\"line\":91,\"text\":\"\"},{\"line\":92,\"text\":\"\\t\\treturn $result;\"},{\"line\":93,\"text\":\"\\t}\"}],\"start\":70}},\"sha256\":\"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9\"}}\nNEWFI112_PRODUCTION={\"contentindex\":{\"excerpt\":[{\"line\":40,\"text\":\"\\t\\tif (!$contentUrl)\"},{\"line\":41,\"text\":\"\\t\\t{\"},{\"line\":42,\"text\":\"\\t\\t\\t/** @var Entity $content */\"},{\"line\":43,\"text\":\"\\t\\t\\t$content = $this->app->findByContentType($contentType, $contentId);\"},{\"line\":44,\"text\":\"\"},{\"line\":45,\"text\":\"\\t\\t\\tif (!$content instanceof Entity)\"},{\"line\":46,\"text\":\"\\t\\t\\t{\"},{\"line\":47,\"text\":\"\\t\\t\\t\\t// content probably deleted\"},{\"line\":48,\"text\":\"\\t\\t\\t\\treturn $this->complete();\"},{\"line\":49,\"text\":\"\\t\\t\\t}\"},{\"line\":50,\"text\":\"\"},{\"line\":51,\"text\":\"\\t\\t\\tif (!method_exists($content, 'canView'))\"},{\"line\":52,\"text\":\"\\t\\t\\t{\"},{\"line\":53,\"text\":\"\\t\\t\\t\\tthrow new \\\\LogicException(\"},{\"line\":54,\"text\":\"\\t\\t\\t\\t\\t'Could not determine content viewability; Implement XF\\\\Entity\\\\ViewableInterface for ' . get_class($content)\"},{\"line\":55,\"text\":\"\\t\\t\\t\\t);\"},{\"line\":56,\"text\":\"\\t\\t\\t}\"},{\"line\":57,\"text\":\"\"},{\"line\":58,\"text\":\"\\t\\t\\tif (!$content instanceof LinkableInterface)\"},{\"line\":59,\"text\":\"\\t\\t\\t{\"},{\"line\":60,\"text\":\"\\t\\t\\t\\tthrow new \\\\LogicException(\"},{\"line\":61,\"text\":\"\\t\\t\\t\\t\\t'Implement XF\\\\Entity\\\\LinkableInterface for ' . get_class($content)\"},{\"line\":62,\"text\":\"\\t\\t\\t\\t);\"},{\"line\":63,\"text\":\"\\t\\t\\t}\"},{\"line\":64,\"text\":\"\"},{\"line\":65,\"text\":\"\\t\\t\\t$guestUser = \\\\XF::repository(UserRepository::class)->getGuestUser();\"},{\"line\":66,\"text\":\"\\t\\t\\t$canView = \\\\XF::asVisitor($guestUser, function () use ($guestUser, $content)\"},{\"line\":67,\"text\":\"\\t\\t\\t{\"},{\"line\":68,\"text\":\"\\t\\t\\t\\tif (!$guestUser->hasPermission('general', 'view'))\"},{\"line\":69,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":70,\"text\":\"\\t\\t\\t\\t\\treturn false;\"},{\"line\":71,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":72,\"text\":\"\"},{\"line\":73,\"text\":\"\\t\\t\\t\\treturn $content->canView($content);\"},{\"line\":74,\"text\":\"\\t\\t\\t});\"},{\"line\":75,\"text\":\"\\t\\t\\tif (!$canView)\"},{\"line\":76,\"text\":\"\\t\\t\\t{\"},{\"line\":77,\"text\":\"\\t\\t\\t\\treturn $this->complete();\"},{\"line\":78,\"text\":\"\\t\\t\\t}\"},{\"line\":79,\"text\":\"\"},{\"line\":80,\"text\":\"\\t\\t\\t$contentUrl = $content->getContentUrl(true);\"},{\"line\":81,\"text\":\"\\t\\t}\"},{\"line\":82,\"text\":\"\"}],\"sha256\":\"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0\"},\"counts\":{\"drafts\":0,\"resources\":6,\"tag_content\":18,\"tags\":15,\"updates\":6,\"versions\":6},\"errors\":{\"ids\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],\"old_fp\":\"737935e0f156defd5fcd89c9e05899bb3577964371bc436e65db7c7e461be69b\",\"rows\":[{\"error_id\":1,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":2,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":3,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":4,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":5,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":6,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":7,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":8,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":9,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":10,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":11,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":12,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":13,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":14,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":15,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":16,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":17,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":18,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":19,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":20,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":21,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":22,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":23,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":24,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":25,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":26,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":27,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":28,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":29,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":30,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":31,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":32,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":33,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":34,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":35,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":36,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":37,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":38,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":39,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":40,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"}]},\"jobs\":[{\"decoded\":{\"content_id\":8,\"content_type\":\"resource_update\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2324,\"manual_execute\":0,\"sha\":\"591830a19f29b2c3e29b892e964de5b94f7fae02f06c93bd80b932322f9004ef\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":8,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2325,\"manual_execute\":0,\"sha\":\"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":8,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2326,\"manual_execute\":0,\"sha\":\"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":9,\"content_type\":\"resource_update\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2327,\"manual_execute\":0,\"sha\":\"ca7e861203d277dcebcfe938cbd8b9ba6e2807f563a5a76e4abe0099208de304\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":9,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2328,\"manual_execute\":0,\"sha\":\"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":9,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2329,\"manual_execute\":0,\"sha\":\"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":8,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2330,\"manual_execute\":0,\"sha\":\"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":9,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2331,\"manual_execute\":0,\"sha\":\"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea\",\"trigger_date\":1789770301,\"unique_key\":null}],\"manager\":{\"class\":\"XF\\\\Job\\\\Manager\",\"file\":\"/var/www/forums/newfi/public/src/XF/Job/Manager.php\",\"methods\":{\"cancelUniqueJob\":{\"end\":414,\"excerpt\":[{\"line\":402,\"text\":\"\\tpublic function cancelUniqueJob($uniqueId)\"},{\"line\":403,\"text\":\"\\t{\"},{\"line\":404,\"text\":\"\\t\\t$job = $this->getUniqueJob($uniqueId);\"},{\"line\":405,\"text\":\"\\t\\tif ($job)\"},{\"line\":406,\"text\":\"\\t\\t{\"},{\"line\":407,\"text\":\"\\t\\t\\t$this->cancelJob($job);\"},{\"line\":408,\"text\":\"\\t\\t\\treturn true;\"},{\"line\":409,\"text\":\"\\t\\t}\"},{\"line\":410,\"text\":\"\\t\\telse\"},{\"line\":411,\"text\":\"\\t\\t{\"},{\"line\":412,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":413,\"text\":\"\\t\\t}\"},{\"line\":414,\"text\":\"\\t}\"}],\"start\":402},\"runByIds\":{\"end\":138,\"excerpt\":[{\"line\":100,\"text\":\"\\tpublic function runByIds(array $ids, $maxRunTime)\"},{\"line\":101,\"text\":\"\\t{\"},{\"line\":102,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":103,\"text\":\"\\t\\t{\"},{\"line\":104,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":105,\"text\":\"\\t\\t}\"},{\"line\":106,\"text\":\"\"},{\"line\":107,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":108,\"text\":\"\\t\\t$result = null;\"},{\"line\":109,\"text\":\"\"},{\"line\":110,\"text\":\"\\t\\tforeach ($ids AS $k => $id)\"},{\"line\":111,\"text\":\"\\t\\t{\"},{\"line\":112,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":113,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":114,\"text\":\"\\t\\t\\t{\"},{\"line\":115,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":116,\"text\":\"\\t\\t\\t}\"},{\"line\":117,\"text\":\"\"},{\"line\":118,\"text\":\"\\t\\t\\t$job = $this->getJob($id);\"},{\"line\":119,\"text\":\"\\t\\t\\tif ($job && $job['trigger_date'] <= time())\"},{\"line\":120,\"text\":\"\\t\\t\\t{\"},{\"line\":121,\"text\":\"\\t\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":122,\"text\":\"\\t\\t\\t}\"},{\"line\":123,\"text\":\"\\t\\t\\telse\"},{\"line\":124,\"text\":\"\\t\\t\\t{\"},{\"line\":125,\"text\":\"\\t\\t\\t\\t$result = null;\"},{\"line\":126,\"text\":\"\\t\\t\\t}\"},{\"line\":127,\"text\":\"\"},{\"line\":128,\"text\":\"\\t\\t\\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)\"},{\"line\":129,\"text\":\"\\t\\t\\t{\"},{\"line\":130,\"text\":\"\\t\\t\\t\\tunset($ids[$k]);\"},{\"line\":131,\"text\":\"\\t\\t\\t}\"},{\"line\":132,\"text\":\"\\t\\t}\"},{\"line\":133,\"text\":\"\"},{\"line\":134,\"text\":\"\\t\\treturn [\"},{\"line\":135,\"text\":\"\\t\\t\\t'result' => $result,\"},{\"line\":136,\"text\":\"\\t\\t\\t'remaining' => $ids,\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"start\":100},\"runJobEntry\":{\"end\":249,\"excerpt\":[{\"line\":193,\"text\":\"\\tpublic function runJobEntry(array $job, $maxRunTime)\"},{\"line\":194,\"text\":\"\\t{\"},{\"line\":195,\"text\":\"\\t\\t$affected = $this->db->update('xf_job', [\"},{\"line\":196,\"text\":\"\\t\\t\\t'trigger_date' => time() + 15 * 60,\"},{\"line\":197,\"text\":\"\\t\\t\\t'last_run_date' => time(),\"},{\"line\":198,\"text\":\"\\t\\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);\"},{\"line\":199,\"text\":\"\\t\\tif (!$affected)\"},{\"line\":200,\"text\":\"\\t\\t{\"},{\"line\":201,\"text\":\"\\t\\t\\t// job has already been taken, treat it as complete\"},{\"line\":202,\"text\":\"\\t\\t\\treturn JobResult::newComplete($job['job_id']);\"},{\"line\":203,\"text\":\"\\t\\t}\"},{\"line\":204,\"text\":\"\"},{\"line\":205,\"text\":\"\\t\\t$result = $this->runJobInternal($job, $maxRunTime);\"},{\"line\":206,\"text\":\"\"},{\"line\":207,\"text\":\"\\t\\tswitch ($result->result)\"},{\"line\":208,\"text\":\"\\t\\t{\"},{\"line\":209,\"text\":\"\\t\\t\\tcase JobResult::RESULT_COMPLETED:\"},{\"line\":210,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":211,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tcase JobResult::RESULT_RESUME:\"},{\"line\":214,\"text\":\"\\t\\t\\tcase JobResult::RESULT_REATTEMPT:\"},{\"line\":215,\"text\":\"\\t\\t\\t\\t$update = [\"},{\"line\":216,\"text\":\"\\t\\t\\t\\t\\t'execute_data' => serialize($result->data),\"},{\"line\":217,\"text\":\"\\t\\t\\t\\t\\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],\"},{\"line\":218,\"text\":\"\\t\\t\\t\\t\\t'last_run_date' => time(),\"},{\"line\":219,\"text\":\"\\t\\t\\t\\t];\"},{\"line\":220,\"text\":\"\"},{\"line\":221,\"text\":\"\\t\\t\\t\\tif ($result->result === JobResult::RESULT_REATTEMPT)\"},{\"line\":222,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":223,\"text\":\"\\t\\t\\t\\t\\t$update['attempts'] = $job['attempts'] + 1;\"},{\"line\":224,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":225,\"text\":\"\"},{\"line\":226,\"text\":\"\\t\\t\\t\\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);\"},{\"line\":227,\"text\":\"\"},{\"line\":228,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":229,\"text\":\"\"},{\"line\":230,\"text\":\"\\t\\t\\tcase JobResult::RESULT_FAILED:\"},{\"line\":231,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":232,\"text\":\"\"},{\"line\":233,\"text\":\"\\t\\t\\t\\tif ($result->exception)\"},{\"line\":234,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":235,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging = $job;\"},{\"line\":236,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging['execute_data'] = serialize($result->data);\"},{\"line\":237,\"text\":\"\\t\\t\\t\\t\\t$this->logFailedJob($jobForLogging, $result->exception);\"},{\"line\":238,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":239,\"text\":\"\"},{\"line\":240,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":241,\"text\":\"\\t\\t}\"},{\"line\":242,\"text\":\"\"},{\"line\":243,\"text\":\"\\t\\tif (!$job['manual_execute'])\"},{\"line\":244,\"text\":\"\\t\\t{\"},{\"line\":245,\"text\":\"\\t\\t\\t$this->scheduleRunTimeUpdate();\"},{\"line\":246,\"text\":\"\\t\\t}\"},{\"line\":247,\"text\":\"\"},{\"line\":248,\"text\":\"\\t\\treturn $result;\"},{\"line\":249,\"text\":\"\\t}\"}],\"start\":193},\"runQueue\":{\"end\":93,\"excerpt\":[{\"line\":70,\"text\":\"\\tpublic function runQueue($manual, $maxRunTime)\"},{\"line\":71,\"text\":\"\\t{\"},{\"line\":72,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":73,\"text\":\"\\t\\t{\"},{\"line\":74,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":75,\"text\":\"\\t\\t}\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t$runnable = $this->getRunnable($manual);\"},{\"line\":78,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":79,\"text\":\"\\t\\t$result = null;\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\tforeach ($runnable AS $job)\"},{\"line\":82,\"text\":\"\\t\\t{\"},{\"line\":83,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":84,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":85,\"text\":\"\\t\\t\\t{\"},{\"line\":86,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":87,\"text\":\"\\t\\t\\t}\"},{\"line\":88,\"text\":\"\"},{\"line\":89,\"text\":\"\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":90,\"text\":\"\\t\\t}\"},{\"line\":91,\"text\":\"\"},{\"line\":92,\"text\":\"\\t\\treturn $result;\"},{\"line\":93,\"text\":\"\\t}\"}],\"start\":70}},\"sha256\":\"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9\"}}\nNEWFI112_SAFE_REPORT={\"changes_made\":false,\"decision\":\"PASS_CONTENTINDEXNOW_JOBMANAGER_SEMANTICS_CAPTURED\",\"git_head\":\"e8f15ac7d52daa18470f4b2377a60aa3c2582b76\",\"manager_methods\":{\"cancelUniqueJob\":{\"end\":414,\"excerpt\":[{\"line\":402,\"text\":\"\\tpublic function cancelUniqueJob($uniqueId)\"},{\"line\":403,\"text\":\"\\t{\"},{\"line\":404,\"text\":\"\\t\\t$job = $this->getUniqueJob($uniqueId);\"},{\"line\":405,\"text\":\"\\t\\tif ($job)\"},{\"line\":406,\"text\":\"\\t\\t{\"},{\"line\":407,\"text\":\"\\t\\t\\t$this->cancelJob($job);\"},{\"line\":408,\"text\":\"\\t\\t\\treturn true;\"},{\"line\":409,\"text\":\"\\t\\t}\"},{\"line\":410,\"text\":\"\\t\\telse\"},{\"line\":411,\"text\":\"\\t\\t{\"},{\"line\":412,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":413,\"text\":\"\\t\\t}\"},{\"line\":414,\"text\":\"\\t}\"}],\"start\":402},\"runByIds\":{\"end\":138,\"excerpt\":[{\"line\":100,\"text\":\"\\tpublic function runByIds(array $ids, $maxRunTime)\"},{\"line\":101,\"text\":\"\\t{\"},{\"line\":102,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":103,\"text\":\"\\t\\t{\"},{\"line\":104,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":105,\"text\":\"\\t\\t}\"},{\"line\":106,\"text\":\"\"},{\"line\":107,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":108,\"text\":\"\\t\\t$result = null;\"},{\"line\":109,\"text\":\"\"},{\"line\":110,\"text\":\"\\t\\tforeach ($ids AS $k => $id)\"},{\"line\":111,\"text\":\"\\t\\t{\"},{\"line\":112,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":113,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":114,\"text\":\"\\t\\t\\t{\"},{\"line\":115,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":116,\"text\":\"\\t\\t\\t}\"},{\"line\":117,\"text\":\"\"},{\"line\":118,\"text\":\"\\t\\t\\t$job = $this->getJob($id);\"},{\"line\":119,\"text\":\"\\t\\t\\tif ($job && $job['trigger_date'] <= time())\"},{\"line\":120,\"text\":\"\\t\\t\\t{\"},{\"line\":121,\"text\":\"\\t\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":122,\"text\":\"\\t\\t\\t}\"},{\"line\":123,\"text\":\"\\t\\t\\telse\"},{\"line\":124,\"text\":\"\\t\\t\\t{\"},{\"line\":125,\"text\":\"\\t\\t\\t\\t$result = null;\"},{\"line\":126,\"text\":\"\\t\\t\\t}\"},{\"line\":127,\"text\":\"\"},{\"line\":128,\"text\":\"\\t\\t\\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)\"},{\"line\":129,\"text\":\"\\t\\t\\t{\"},{\"line\":130,\"text\":\"\\t\\t\\t\\tunset($ids[$k]);\"},{\"line\":131,\"text\":\"\\t\\t\\t}\"},{\"line\":132,\"text\":\"\\t\\t}\"},{\"line\":133,\"text\":\"\"},{\"line\":134,\"text\":\"\\t\\treturn [\"},{\"line\":135,\"text\":\"\\t\\t\\t'result' => $result,\"},{\"line\":136,\"text\":\"\\t\\t\\t'remaining' => $ids,\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"start\":100},\"runJobEntry\":{\"end\":249,\"excerpt\":[{\"line\":193,\"text\":\"\\tpublic function runJobEntry(array $job, $maxRunTime)\"},{\"line\":194,\"text\":\"\\t{\"},{\"line\":195,\"text\":\"\\t\\t$affected = $this->db->update('xf_job', [\"},{\"line\":196,\"text\":\"\\t\\t\\t'trigger_date' => time() + 15 * 60,\"},{\"line\":197,\"text\":\"\\t\\t\\t'last_run_date' => time(),\"},{\"line\":198,\"text\":\"\\t\\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);\"},{\"line\":199,\"text\":\"\\t\\tif (!$affected)\"},{\"line\":200,\"text\":\"\\t\\t{\"},{\"line\":201,\"text\":\"\\t\\t\\t// job has already been taken, treat it as complete\"},{\"line\":202,\"text\":\"\\t\\t\\treturn JobResult::newComplete($job['job_id']);\"},{\"line\":203,\"text\":\"\\t\\t}\"},{\"line\":204,\"text\":\"\"},{\"line\":205,\"text\":\"\\t\\t$result = $this->runJobInternal($job, $maxRunTime);\"},{\"line\":206,\"text\":\"\"},{\"line\":207,\"text\":\"\\t\\tswitch ($result->result)\"},{\"line\":208,\"text\":\"\\t\\t{\"},{\"line\":209,\"text\":\"\\t\\t\\tcase JobResult::RESULT_COMPLETED:\"},{\"line\":210,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":211,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tcase JobResult::RESULT_RESUME:\"},{\"line\":214,\"text\":\"\\t\\t\\tcase JobResult::RESULT_REATTEMPT:\"},{\"line\":215,\"text\":\"\\t\\t\\t\\t$update = [\"},{\"line\":216,\"text\":\"\\t\\t\\t\\t\\t'execute_data' => serialize($result->data),\"},{\"line\":217,\"text\":\"\\t\\t\\t\\t\\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],\"},{\"line\":218,\"text\":\"\\t\\t\\t\\t\\t'last_run_date' => time(),\"},{\"line\":219,\"text\":\"\\t\\t\\t\\t];\"},{\"line\":220,\"text\":\"\"},{\"line\":221,\"text\":\"\\t\\t\\t\\tif ($result->result === JobResult::RESULT_REATTEMPT)\"},{\"line\":222,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":223,\"text\":\"\\t\\t\\t\\t\\t$update['attempts'] = $job['attempts'] + 1;\"},{\"line\":224,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":225,\"text\":\"\"},{\"line\":226,\"text\":\"\\t\\t\\t\\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);\"},{\"line\":227,\"text\":\"\"},{\"line\":228,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":229,\"text\":\"\"},{\"line\":230,\"text\":\"\\t\\t\\tcase JobResult::RESULT_FAILED:\"},{\"line\":231,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":232,\"text\":\"\"},{\"line\":233,\"text\":\"\\t\\t\\t\\tif ($result->exception)\"},{\"line\":234,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":235,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging = $job;\"},{\"line\":236,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging['execute_data'] = serialize($result->data);\"},{\"line\":237,\"text\":\"\\t\\t\\t\\t\\t$this->logFailedJob($jobForLogging, $result->exception);\"},{\"line\":238,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":239,\"text\":\"\"},{\"line\":240,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":241,\"text\":\"\\t\\t}\"},{\"line\":242,\"text\":\"\"},{\"line\":243,\"text\":\"\\t\\tif (!$job['manual_execute'])\"},{\"line\":244,\"text\":\"\\t\\t{\"},{\"line\":245,\"text\":\"\\t\\t\\t$this->scheduleRunTimeUpdate();\"},{\"line\":246,\"text\":\"\\t\\t}\"},{\"line\":247,\"text\":\"\"},{\"line\":248,\"text\":\"\\t\\treturn $result;\"},{\"line\":249,\"text\":\"\\t}\"}],\"start\":193},\"runQueue\":{\"end\":93,\"excerpt\":[{\"line\":70,\"text\":\"\\tpublic function runQueue($manual, $maxRunTime)\"},{\"line\":71,\"text\":\"\\t{\"},{\"line\":72,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":73,\"text\":\"\\t\\t{\"},{\"line\":74,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":75,\"text\":\"\\t\\t}\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t$runnable = $this->getRunnable($manual);\"},{\"line\":78,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":79,\"text\":\"\\t\\t$result = null;\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\tforeach ($runnable AS $job)\"},{\"line\":82,\"text\":\"\\t\\t{\"},{\"line\":83,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":84,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":85,\"text\":\"\\t\\t\\t{\"},{\"line\":86,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":87,\"text\":\"\\t\\t\\t}\"},{\"line\":88,\"text\":\"\"},{\"line\":89,\"text\":\"\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":90,\"text\":\"\\t\\t}\"},{\"line\":91,\"text\":\"\"},{\"line\":92,\"text\":\"\\t\\treturn $result;\"},{\"line\":93,\"text\":\"\\t}\"}],\"start\":70}},\"manager_sha256\":\"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9\",\"patched_sha_production\":\"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0\",\"patched_sha_staging\":\"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0\",\"production_error_ids\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],\"production_jobs\":[2324,2325,2326,2327,2328,2329,2330,2331]}\nNEWFI112_DECISION=PASS_CONTENTINDEXNOW_JOBMANAGER_SEMANTICS_CAPTURED\nNEWFI112_NEXT_GATE=COMPLETE_HOTFIX_ACCEPTANCE_AND_REMOVE_ONLY_PROVEN_STALE_ROWS\n" +} diff --git a/runtime/history/NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112.txt b/runtime/history/NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112.txt new file mode 100644 index 00000000..9d267513 --- /dev/null +++ b/runtime/history/NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112.txt @@ -0,0 +1,39 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=newfi-newfdom-contentindexnow-jobmanager-semantics-readonly +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=91c6d213f03dd756e7d98ffc978a277df1a7b265ebac81ff022fb0b6af52f527 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=0cda876282b18beff61dc397bbdb0f847d5cf6d20170e0df2d682a7aafa6967b +SANITIZED_OUTPUT_SHA256=0cda876282b18beff61dc397bbdb0f847d5cf6d20170e0df2d682a7aafa6967b +OUTPUT_BEGIN +NEWFI112_BEGIN +COMMAND_ID=NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112 +NEWFI112_STAGING={"contentindex":{"excerpt":[{"line":40,"text":"\t\tif (!$contentUrl)"},{"line":41,"text":"\t\t{"},{"line":42,"text":"\t\t\t/** @var Entity $content */"},{"line":43,"text":"\t\t\t$content = $this->app->findByContentType($contentType, $contentId);"},{"line":44,"text":""},{"line":45,"text":"\t\t\tif (!$content instanceof Entity)"},{"line":46,"text":"\t\t\t{"},{"line":47,"text":"\t\t\t\t// content probably deleted"},{"line":48,"text":"\t\t\t\treturn $this->complete();"},{"line":49,"text":"\t\t\t}"},{"line":50,"text":""},{"line":51,"text":"\t\t\tif (!method_exists($content, 'canView'))"},{"line":52,"text":"\t\t\t{"},{"line":53,"text":"\t\t\t\tthrow new \\LogicException("},{"line":54,"text":"\t\t\t\t\t'Could not determine content viewability; Implement XF\\Entity\\ViewableInterface for ' . get_class($content)"},{"line":55,"text":"\t\t\t\t);"},{"line":56,"text":"\t\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t\tif (!$content instanceof LinkableInterface)"},{"line":59,"text":"\t\t\t{"},{"line":60,"text":"\t\t\t\tthrow new \\LogicException("},{"line":61,"text":"\t\t\t\t\t'Implement XF\\Entity\\LinkableInterface for ' . get_class($content)"},{"line":62,"text":"\t\t\t\t);"},{"line":63,"text":"\t\t\t}"},{"line":64,"text":""},{"line":65,"text":"\t\t\t$guestUser = \\XF::repository(UserRepository::class)->getGuestUser();"},{"line":66,"text":"\t\t\t$canView = \\XF::asVisitor($guestUser, function () use ($guestUser, $content)"},{"line":67,"text":"\t\t\t{"},{"line":68,"text":"\t\t\t\tif (!$guestUser->hasPermission('general', 'view'))"},{"line":69,"text":"\t\t\t\t{"},{"line":70,"text":"\t\t\t\t\treturn false;"},{"line":71,"text":"\t\t\t\t}"},{"line":72,"text":""},{"line":73,"text":"\t\t\t\treturn $content->canView($content);"},{"line":74,"text":"\t\t\t});"},{"line":75,"text":"\t\t\tif (!$canView)"},{"line":76,"text":"\t\t\t{"},{"line":77,"text":"\t\t\t\treturn $this->complete();"},{"line":78,"text":"\t\t\t}"},{"line":79,"text":""},{"line":80,"text":"\t\t\t$contentUrl = $content->getContentUrl(true);"},{"line":81,"text":"\t\t}"},{"line":82,"text":""}],"sha256":"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0"},"counts":{"drafts":0,"resources":6,"tag_content":18,"tags":15,"updates":6,"versions":6},"errors":{"ids":[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],"old_fp":"e739c2c309539a508e20eba89b0ebc688640ef6ff9f919bbb419b2faad819f80","rows":[{"error_id":33,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)"},{"error_id":34,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)"},{"error_id":35,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)"},{"error_id":36,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)"},{"error_id":37,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)"},{"error_id":38,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)"},{"error_id":39,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)"},{"error_id":40,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)"},{"error_id":41,"exception_type":"XF\\PrintableException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal"},{"error_id":42,"exception_type":"LogicException","filename":"src/XF/Mvc/Entity/Entity.php","line":645,"message":"Attempted to set 'type' while a save was pending without forceSet"},{"error_id":43,"exception_type":"ErrorException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Fatal Error: Uncaught XF\\PrintableException: Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal in /var/www/forums/newfi/public/src/XF/Mvc/Entity/Entity.php:1276 Stack trace: #0 Command line code(31): XF\\Mvc\\Entity\\Entity->save(true, false) #1 {main} thrown"},{"error_id":44,"exception_type":"ErrorException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"Fatal Error: Uncaught XF\\Db\\InvalidQueryException: MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\\'Gram/Support\\'' at line 1 in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\Db\\AbstractStatement->getException('...', 1064, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\Db\\Mysqli\\Statement->getException('...', 1064, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\Db\\Mysqli\\Statement->prepare() #3 /var/www"},{"error_id":45,"exception_type":"XF\\PrintableException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Пожалуйста, введите корректный префикс роутинга."},{"error_id":46,"exception_type":"ErrorException","filename":"Command line code","line":5,"message":"Fatal Error: Uncaught ReflectionException: Method XF\\AddOn\\AbstractSetup::applyGlobalPermissionByGroup() does not exist in Command line code:5 Stack trace: #0 Command line code(5): ReflectionMethod->__construct('...', '...') #1 {main} thrown"},{"error_id":47,"exception_type":"XF\\Db\\InvalidQueryException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1"},{"error_id":48,"exception_type":"XF\\Db\\InvalidQueryException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1"},{"error_id":49,"exception_type":"XF\\Db\\Exception","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1054]: Unknown column 'sub_name_format' in 'SELECT'"},{"error_id":50,"exception_type":"XF\\Db\\Exception","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT'"},{"error_id":51,"exception_type":"ErrorException","filename":"Command line code","line":32,"message":"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:32 Stack trace: #0 Command line code(32): XF::handlePhpError(2, '...', '...', 32) #1 {main} thrown"},{"error_id":52,"exception_type":"ErrorException","filename":"Command line code","line":16,"message":"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:16 Stack trace: #0 Command line code(16): XF::handlePhpError(2, '...', '...', 16) #1 {main} thrown"},{"error_id":53,"exception_type":"ErrorException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"Fatal Error: Uncaught XF\\Db\\Exception: MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT' in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\Db\\AbstractStatement->getException('...', 1054, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\Db\\Mysqli\\Statement->getException('...', 1054, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\Db\\Mysqli\\Statement->prepare() #3 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(96): XF\\Db\\Mysqli\\Statement->execute() #4 /var/www/forums/newfi/public/src/XF/Db/"},{"error_id":54,"exception_type":"ErrorException","filename":"src/XF/Service/ValidateAndSavableTrait.php","line":36,"message":"Fatal Error: Uncaught LogicException: Cannot save with validation errors. Use validate() to ensure there are no errors. (First error: Пожалуйста, укажите корректную версию.) in /var/www/forums/newfi/public/src/XF/Service/ValidateAndSavableTrait.php:36 Stack trace: #0 Command line code(4): XFRM\\Service\\ResourceItem\\Create->save() #1 /var/www/forums/newfi/public/src/XF.php(950): {closure}() #2 Command line code(4): XF::asVisitor(Object(XFRM\\XF\\Entity\\User), Object(Closure)) #3 {main} thrown"}]},"jobs":[],"manager":{"class":"XF\\Job\\Manager","file":"/var/www/forums/newfi/public/src/XF/Job/Manager.php","methods":{"cancelUniqueJob":{"end":414,"excerpt":[{"line":402,"text":"\tpublic function cancelUniqueJob($uniqueId)"},{"line":403,"text":"\t{"},{"line":404,"text":"\t\t$job = $this->getUniqueJob($uniqueId);"},{"line":405,"text":"\t\tif ($job)"},{"line":406,"text":"\t\t{"},{"line":407,"text":"\t\t\t$this->cancelJob($job);"},{"line":408,"text":"\t\t\treturn true;"},{"line":409,"text":"\t\t}"},{"line":410,"text":"\t\telse"},{"line":411,"text":"\t\t{"},{"line":412,"text":"\t\t\treturn false;"},{"line":413,"text":"\t\t}"},{"line":414,"text":"\t}"}],"start":402},"runByIds":{"end":138,"excerpt":[{"line":100,"text":"\tpublic function runByIds(array $ids, $maxRunTime)"},{"line":101,"text":"\t{"},{"line":102,"text":"\t\tif ($maxRunTime < 2)"},{"line":103,"text":"\t\t{"},{"line":104,"text":"\t\t\t$maxRunTime = 2;"},{"line":105,"text":"\t\t}"},{"line":106,"text":""},{"line":107,"text":"\t\t$startTime = microtime(true);"},{"line":108,"text":"\t\t$result = null;"},{"line":109,"text":""},{"line":110,"text":"\t\tforeach ($ids AS $k => $id)"},{"line":111,"text":"\t\t{"},{"line":112,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":113,"text":"\t\t\tif ($remaining < 1)"},{"line":114,"text":"\t\t\t{"},{"line":115,"text":"\t\t\t\tbreak;"},{"line":116,"text":"\t\t\t}"},{"line":117,"text":""},{"line":118,"text":"\t\t\t$job = $this->getJob($id);"},{"line":119,"text":"\t\t\tif ($job && $job['trigger_date'] <= time())"},{"line":120,"text":"\t\t\t{"},{"line":121,"text":"\t\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":122,"text":"\t\t\t}"},{"line":123,"text":"\t\t\telse"},{"line":124,"text":"\t\t\t{"},{"line":125,"text":"\t\t\t\t$result = null;"},{"line":126,"text":"\t\t\t}"},{"line":127,"text":""},{"line":128,"text":"\t\t\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)"},{"line":129,"text":"\t\t\t{"},{"line":130,"text":"\t\t\t\tunset($ids[$k]);"},{"line":131,"text":"\t\t\t}"},{"line":132,"text":"\t\t}"},{"line":133,"text":""},{"line":134,"text":"\t\treturn ["},{"line":135,"text":"\t\t\t'result' => $result,"},{"line":136,"text":"\t\t\t'remaining' => $ids,"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"start":100},"runJobEntry":{"end":249,"excerpt":[{"line":193,"text":"\tpublic function runJobEntry(array $job, $maxRunTime)"},{"line":194,"text":"\t{"},{"line":195,"text":"\t\t$affected = $this->db->update('xf_job', ["},{"line":196,"text":"\t\t\t'trigger_date' => time() + 15 * 60,"},{"line":197,"text":"\t\t\t'last_run_date' => time(),"},{"line":198,"text":"\t\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);"},{"line":199,"text":"\t\tif (!$affected)"},{"line":200,"text":"\t\t{"},{"line":201,"text":"\t\t\t// job has already been taken, treat it as complete"},{"line":202,"text":"\t\t\treturn JobResult::newComplete($job['job_id']);"},{"line":203,"text":"\t\t}"},{"line":204,"text":""},{"line":205,"text":"\t\t$result = $this->runJobInternal($job, $maxRunTime);"},{"line":206,"text":""},{"line":207,"text":"\t\tswitch ($result->result)"},{"line":208,"text":"\t\t{"},{"line":209,"text":"\t\t\tcase JobResult::RESULT_COMPLETED:"},{"line":210,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":211,"text":"\t\t\t\tbreak;"},{"line":212,"text":""},{"line":213,"text":"\t\t\tcase JobResult::RESULT_RESUME:"},{"line":214,"text":"\t\t\tcase JobResult::RESULT_REATTEMPT:"},{"line":215,"text":"\t\t\t\t$update = ["},{"line":216,"text":"\t\t\t\t\t'execute_data' => serialize($result->data),"},{"line":217,"text":"\t\t\t\t\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],"},{"line":218,"text":"\t\t\t\t\t'last_run_date' => time(),"},{"line":219,"text":"\t\t\t\t];"},{"line":220,"text":""},{"line":221,"text":"\t\t\t\tif ($result->result === JobResult::RESULT_REATTEMPT)"},{"line":222,"text":"\t\t\t\t{"},{"line":223,"text":"\t\t\t\t\t$update['attempts'] = $job['attempts'] + 1;"},{"line":224,"text":"\t\t\t\t}"},{"line":225,"text":""},{"line":226,"text":"\t\t\t\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);"},{"line":227,"text":""},{"line":228,"text":"\t\t\t\tbreak;"},{"line":229,"text":""},{"line":230,"text":"\t\t\tcase JobResult::RESULT_FAILED:"},{"line":231,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":232,"text":""},{"line":233,"text":"\t\t\t\tif ($result->exception)"},{"line":234,"text":"\t\t\t\t{"},{"line":235,"text":"\t\t\t\t\t$jobForLogging = $job;"},{"line":236,"text":"\t\t\t\t\t$jobForLogging['execute_data'] = serialize($result->data);"},{"line":237,"text":"\t\t\t\t\t$this->logFailedJob($jobForLogging, $result->exception);"},{"line":238,"text":"\t\t\t\t}"},{"line":239,"text":""},{"line":240,"text":"\t\t\t\tbreak;"},{"line":241,"text":"\t\t}"},{"line":242,"text":""},{"line":243,"text":"\t\tif (!$job['manual_execute'])"},{"line":244,"text":"\t\t{"},{"line":245,"text":"\t\t\t$this->scheduleRunTimeUpdate();"},{"line":246,"text":"\t\t}"},{"line":247,"text":""},{"line":248,"text":"\t\treturn $result;"},{"line":249,"text":"\t}"}],"start":193},"runQueue":{"end":93,"excerpt":[{"line":70,"text":"\tpublic function runQueue($manual, $maxRunTime)"},{"line":71,"text":"\t{"},{"line":72,"text":"\t\tif ($maxRunTime < 2)"},{"line":73,"text":"\t\t{"},{"line":74,"text":"\t\t\t$maxRunTime = 2;"},{"line":75,"text":"\t\t}"},{"line":76,"text":""},{"line":77,"text":"\t\t$runnable = $this->getRunnable($manual);"},{"line":78,"text":"\t\t$startTime = microtime(true);"},{"line":79,"text":"\t\t$result = null;"},{"line":80,"text":""},{"line":81,"text":"\t\tforeach ($runnable AS $job)"},{"line":82,"text":"\t\t{"},{"line":83,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":84,"text":"\t\t\tif ($remaining < 1)"},{"line":85,"text":"\t\t\t{"},{"line":86,"text":"\t\t\t\tbreak;"},{"line":87,"text":"\t\t\t}"},{"line":88,"text":""},{"line":89,"text":"\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":90,"text":"\t\t}"},{"line":91,"text":""},{"line":92,"text":"\t\treturn $result;"},{"line":93,"text":"\t}"}],"start":70}},"sha256":"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9"}} +NEWFI112_PRODUCTION={"contentindex":{"excerpt":[{"line":40,"text":"\t\tif (!$contentUrl)"},{"line":41,"text":"\t\t{"},{"line":42,"text":"\t\t\t/** @var Entity $content */"},{"line":43,"text":"\t\t\t$content = $this->app->findByContentType($contentType, $contentId);"},{"line":44,"text":""},{"line":45,"text":"\t\t\tif (!$content instanceof Entity)"},{"line":46,"text":"\t\t\t{"},{"line":47,"text":"\t\t\t\t// content probably deleted"},{"line":48,"text":"\t\t\t\treturn $this->complete();"},{"line":49,"text":"\t\t\t}"},{"line":50,"text":""},{"line":51,"text":"\t\t\tif (!method_exists($content, 'canView'))"},{"line":52,"text":"\t\t\t{"},{"line":53,"text":"\t\t\t\tthrow new \\LogicException("},{"line":54,"text":"\t\t\t\t\t'Could not determine content viewability; Implement XF\\Entity\\ViewableInterface for ' . get_class($content)"},{"line":55,"text":"\t\t\t\t);"},{"line":56,"text":"\t\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t\tif (!$content instanceof LinkableInterface)"},{"line":59,"text":"\t\t\t{"},{"line":60,"text":"\t\t\t\tthrow new \\LogicException("},{"line":61,"text":"\t\t\t\t\t'Implement XF\\Entity\\LinkableInterface for ' . get_class($content)"},{"line":62,"text":"\t\t\t\t);"},{"line":63,"text":"\t\t\t}"},{"line":64,"text":""},{"line":65,"text":"\t\t\t$guestUser = \\XF::repository(UserRepository::class)->getGuestUser();"},{"line":66,"text":"\t\t\t$canView = \\XF::asVisitor($guestUser, function () use ($guestUser, $content)"},{"line":67,"text":"\t\t\t{"},{"line":68,"text":"\t\t\t\tif (!$guestUser->hasPermission('general', 'view'))"},{"line":69,"text":"\t\t\t\t{"},{"line":70,"text":"\t\t\t\t\treturn false;"},{"line":71,"text":"\t\t\t\t}"},{"line":72,"text":""},{"line":73,"text":"\t\t\t\treturn $content->canView($content);"},{"line":74,"text":"\t\t\t});"},{"line":75,"text":"\t\t\tif (!$canView)"},{"line":76,"text":"\t\t\t{"},{"line":77,"text":"\t\t\t\treturn $this->complete();"},{"line":78,"text":"\t\t\t}"},{"line":79,"text":""},{"line":80,"text":"\t\t\t$contentUrl = $content->getContentUrl(true);"},{"line":81,"text":"\t\t}"},{"line":82,"text":""}],"sha256":"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0"},"counts":{"drafts":0,"resources":6,"tag_content":18,"tags":15,"updates":6,"versions":6},"errors":{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"old_fp":"737935e0f156defd5fcd89c9e05899bb3577964371bc436e65db7c7e461be69b","rows":[{"error_id":1,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":2,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":3,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":4,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":5,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":6,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":7,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":8,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":9,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":10,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":11,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":12,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":13,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":14,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":15,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":16,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":17,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":18,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":19,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":20,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":21,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":22,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":23,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":24,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":25,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":26,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":27,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":28,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":29,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":30,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":31,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":32,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":33,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":34,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":35,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":36,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":37,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":38,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":39,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":40,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"}]},"jobs":[{"decoded":{"content_id":8,"content_type":"resource_update"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2324,"manual_execute":0,"sha":"591830a19f29b2c3e29b892e964de5b94f7fae02f06c93bd80b932322f9004ef","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":8,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2325,"manual_execute":0,"sha":"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":8,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2326,"manual_execute":0,"sha":"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":9,"content_type":"resource_update"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2327,"manual_execute":0,"sha":"ca7e861203d277dcebcfe938cbd8b9ba6e2807f563a5a76e4abe0099208de304","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":9,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2328,"manual_execute":0,"sha":"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":9,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2329,"manual_execute":0,"sha":"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":8,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2330,"manual_execute":0,"sha":"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":9,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2331,"manual_execute":0,"sha":"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea","trigger_date":1789770301,"unique_key":null}],"manager":{"class":"XF\\Job\\Manager","file":"/var/www/forums/newfi/public/src/XF/Job/Manager.php","methods":{"cancelUniqueJob":{"end":414,"excerpt":[{"line":402,"text":"\tpublic function cancelUniqueJob($uniqueId)"},{"line":403,"text":"\t{"},{"line":404,"text":"\t\t$job = $this->getUniqueJob($uniqueId);"},{"line":405,"text":"\t\tif ($job)"},{"line":406,"text":"\t\t{"},{"line":407,"text":"\t\t\t$this->cancelJob($job);"},{"line":408,"text":"\t\t\treturn true;"},{"line":409,"text":"\t\t}"},{"line":410,"text":"\t\telse"},{"line":411,"text":"\t\t{"},{"line":412,"text":"\t\t\treturn false;"},{"line":413,"text":"\t\t}"},{"line":414,"text":"\t}"}],"start":402},"runByIds":{"end":138,"excerpt":[{"line":100,"text":"\tpublic function runByIds(array $ids, $maxRunTime)"},{"line":101,"text":"\t{"},{"line":102,"text":"\t\tif ($maxRunTime < 2)"},{"line":103,"text":"\t\t{"},{"line":104,"text":"\t\t\t$maxRunTime = 2;"},{"line":105,"text":"\t\t}"},{"line":106,"text":""},{"line":107,"text":"\t\t$startTime = microtime(true);"},{"line":108,"text":"\t\t$result = null;"},{"line":109,"text":""},{"line":110,"text":"\t\tforeach ($ids AS $k => $id)"},{"line":111,"text":"\t\t{"},{"line":112,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":113,"text":"\t\t\tif ($remaining < 1)"},{"line":114,"text":"\t\t\t{"},{"line":115,"text":"\t\t\t\tbreak;"},{"line":116,"text":"\t\t\t}"},{"line":117,"text":""},{"line":118,"text":"\t\t\t$job = $this->getJob($id);"},{"line":119,"text":"\t\t\tif ($job && $job['trigger_date'] <= time())"},{"line":120,"text":"\t\t\t{"},{"line":121,"text":"\t\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":122,"text":"\t\t\t}"},{"line":123,"text":"\t\t\telse"},{"line":124,"text":"\t\t\t{"},{"line":125,"text":"\t\t\t\t$result = null;"},{"line":126,"text":"\t\t\t}"},{"line":127,"text":""},{"line":128,"text":"\t\t\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)"},{"line":129,"text":"\t\t\t{"},{"line":130,"text":"\t\t\t\tunset($ids[$k]);"},{"line":131,"text":"\t\t\t}"},{"line":132,"text":"\t\t}"},{"line":133,"text":""},{"line":134,"text":"\t\treturn ["},{"line":135,"text":"\t\t\t'result' => $result,"},{"line":136,"text":"\t\t\t'remaining' => $ids,"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"start":100},"runJobEntry":{"end":249,"excerpt":[{"line":193,"text":"\tpublic function runJobEntry(array $job, $maxRunTime)"},{"line":194,"text":"\t{"},{"line":195,"text":"\t\t$affected = $this->db->update('xf_job', ["},{"line":196,"text":"\t\t\t'trigger_date' => time() + 15 * 60,"},{"line":197,"text":"\t\t\t'last_run_date' => time(),"},{"line":198,"text":"\t\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);"},{"line":199,"text":"\t\tif (!$affected)"},{"line":200,"text":"\t\t{"},{"line":201,"text":"\t\t\t// job has already been taken, treat it as complete"},{"line":202,"text":"\t\t\treturn JobResult::newComplete($job['job_id']);"},{"line":203,"text":"\t\t}"},{"line":204,"text":""},{"line":205,"text":"\t\t$result = $this->runJobInternal($job, $maxRunTime);"},{"line":206,"text":""},{"line":207,"text":"\t\tswitch ($result->result)"},{"line":208,"text":"\t\t{"},{"line":209,"text":"\t\t\tcase JobResult::RESULT_COMPLETED:"},{"line":210,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":211,"text":"\t\t\t\tbreak;"},{"line":212,"text":""},{"line":213,"text":"\t\t\tcase JobResult::RESULT_RESUME:"},{"line":214,"text":"\t\t\tcase JobResult::RESULT_REATTEMPT:"},{"line":215,"text":"\t\t\t\t$update = ["},{"line":216,"text":"\t\t\t\t\t'execute_data' => serialize($result->data),"},{"line":217,"text":"\t\t\t\t\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],"},{"line":218,"text":"\t\t\t\t\t'last_run_date' => time(),"},{"line":219,"text":"\t\t\t\t];"},{"line":220,"text":""},{"line":221,"text":"\t\t\t\tif ($result->result === JobResult::RESULT_REATTEMPT)"},{"line":222,"text":"\t\t\t\t{"},{"line":223,"text":"\t\t\t\t\t$update['attempts'] = $job['attempts'] + 1;"},{"line":224,"text":"\t\t\t\t}"},{"line":225,"text":""},{"line":226,"text":"\t\t\t\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);"},{"line":227,"text":""},{"line":228,"text":"\t\t\t\tbreak;"},{"line":229,"text":""},{"line":230,"text":"\t\t\tcase JobResult::RESULT_FAILED:"},{"line":231,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":232,"text":""},{"line":233,"text":"\t\t\t\tif ($result->exception)"},{"line":234,"text":"\t\t\t\t{"},{"line":235,"text":"\t\t\t\t\t$jobForLogging = $job;"},{"line":236,"text":"\t\t\t\t\t$jobForLogging['execute_data'] = serialize($result->data);"},{"line":237,"text":"\t\t\t\t\t$this->logFailedJob($jobForLogging, $result->exception);"},{"line":238,"text":"\t\t\t\t}"},{"line":239,"text":""},{"line":240,"text":"\t\t\t\tbreak;"},{"line":241,"text":"\t\t}"},{"line":242,"text":""},{"line":243,"text":"\t\tif (!$job['manual_execute'])"},{"line":244,"text":"\t\t{"},{"line":245,"text":"\t\t\t$this->scheduleRunTimeUpdate();"},{"line":246,"text":"\t\t}"},{"line":247,"text":""},{"line":248,"text":"\t\treturn $result;"},{"line":249,"text":"\t}"}],"start":193},"runQueue":{"end":93,"excerpt":[{"line":70,"text":"\tpublic function runQueue($manual, $maxRunTime)"},{"line":71,"text":"\t{"},{"line":72,"text":"\t\tif ($maxRunTime < 2)"},{"line":73,"text":"\t\t{"},{"line":74,"text":"\t\t\t$maxRunTime = 2;"},{"line":75,"text":"\t\t}"},{"line":76,"text":""},{"line":77,"text":"\t\t$runnable = $this->getRunnable($manual);"},{"line":78,"text":"\t\t$startTime = microtime(true);"},{"line":79,"text":"\t\t$result = null;"},{"line":80,"text":""},{"line":81,"text":"\t\tforeach ($runnable AS $job)"},{"line":82,"text":"\t\t{"},{"line":83,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":84,"text":"\t\t\tif ($remaining < 1)"},{"line":85,"text":"\t\t\t{"},{"line":86,"text":"\t\t\t\tbreak;"},{"line":87,"text":"\t\t\t}"},{"line":88,"text":""},{"line":89,"text":"\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":90,"text":"\t\t}"},{"line":91,"text":""},{"line":92,"text":"\t\treturn $result;"},{"line":93,"text":"\t}"}],"start":70}},"sha256":"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9"}} +NEWFI112_SAFE_REPORT={"changes_made":false,"decision":"PASS_CONTENTINDEXNOW_JOBMANAGER_SEMANTICS_CAPTURED","git_head":"e8f15ac7d52daa18470f4b2377a60aa3c2582b76","manager_methods":{"cancelUniqueJob":{"end":414,"excerpt":[{"line":402,"text":"\tpublic function cancelUniqueJob($uniqueId)"},{"line":403,"text":"\t{"},{"line":404,"text":"\t\t$job = $this->getUniqueJob($uniqueId);"},{"line":405,"text":"\t\tif ($job)"},{"line":406,"text":"\t\t{"},{"line":407,"text":"\t\t\t$this->cancelJob($job);"},{"line":408,"text":"\t\t\treturn true;"},{"line":409,"text":"\t\t}"},{"line":410,"text":"\t\telse"},{"line":411,"text":"\t\t{"},{"line":412,"text":"\t\t\treturn false;"},{"line":413,"text":"\t\t}"},{"line":414,"text":"\t}"}],"start":402},"runByIds":{"end":138,"excerpt":[{"line":100,"text":"\tpublic function runByIds(array $ids, $maxRunTime)"},{"line":101,"text":"\t{"},{"line":102,"text":"\t\tif ($maxRunTime < 2)"},{"line":103,"text":"\t\t{"},{"line":104,"text":"\t\t\t$maxRunTime = 2;"},{"line":105,"text":"\t\t}"},{"line":106,"text":""},{"line":107,"text":"\t\t$startTime = microtime(true);"},{"line":108,"text":"\t\t$result = null;"},{"line":109,"text":""},{"line":110,"text":"\t\tforeach ($ids AS $k => $id)"},{"line":111,"text":"\t\t{"},{"line":112,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":113,"text":"\t\t\tif ($remaining < 1)"},{"line":114,"text":"\t\t\t{"},{"line":115,"text":"\t\t\t\tbreak;"},{"line":116,"text":"\t\t\t}"},{"line":117,"text":""},{"line":118,"text":"\t\t\t$job = $this->getJob($id);"},{"line":119,"text":"\t\t\tif ($job && $job['trigger_date'] <= time())"},{"line":120,"text":"\t\t\t{"},{"line":121,"text":"\t\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":122,"text":"\t\t\t}"},{"line":123,"text":"\t\t\telse"},{"line":124,"text":"\t\t\t{"},{"line":125,"text":"\t\t\t\t$result = null;"},{"line":126,"text":"\t\t\t}"},{"line":127,"text":""},{"line":128,"text":"\t\t\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)"},{"line":129,"text":"\t\t\t{"},{"line":130,"text":"\t\t\t\tunset($ids[$k]);"},{"line":131,"text":"\t\t\t}"},{"line":132,"text":"\t\t}"},{"line":133,"text":""},{"line":134,"text":"\t\treturn ["},{"line":135,"text":"\t\t\t'result' => $result,"},{"line":136,"text":"\t\t\t'remaining' => $ids,"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"start":100},"runJobEntry":{"end":249,"excerpt":[{"line":193,"text":"\tpublic function runJobEntry(array $job, $maxRunTime)"},{"line":194,"text":"\t{"},{"line":195,"text":"\t\t$affected = $this->db->update('xf_job', ["},{"line":196,"text":"\t\t\t'trigger_date' => time() + 15 * 60,"},{"line":197,"text":"\t\t\t'last_run_date' => time(),"},{"line":198,"text":"\t\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);"},{"line":199,"text":"\t\tif (!$affected)"},{"line":200,"text":"\t\t{"},{"line":201,"text":"\t\t\t// job has already been taken, treat it as complete"},{"line":202,"text":"\t\t\treturn JobResult::newComplete($job['job_id']);"},{"line":203,"text":"\t\t}"},{"line":204,"text":""},{"line":205,"text":"\t\t$result = $this->runJobInternal($job, $maxRunTime);"},{"line":206,"text":""},{"line":207,"text":"\t\tswitch ($result->result)"},{"line":208,"text":"\t\t{"},{"line":209,"text":"\t\t\tcase JobResult::RESULT_COMPLETED:"},{"line":210,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":211,"text":"\t\t\t\tbreak;"},{"line":212,"text":""},{"line":213,"text":"\t\t\tcase JobResult::RESULT_RESUME:"},{"line":214,"text":"\t\t\tcase JobResult::RESULT_REATTEMPT:"},{"line":215,"text":"\t\t\t\t$update = ["},{"line":216,"text":"\t\t\t\t\t'execute_data' => serialize($result->data),"},{"line":217,"text":"\t\t\t\t\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],"},{"line":218,"text":"\t\t\t\t\t'last_run_date' => time(),"},{"line":219,"text":"\t\t\t\t];"},{"line":220,"text":""},{"line":221,"text":"\t\t\t\tif ($result->result === JobResult::RESULT_REATTEMPT)"},{"line":222,"text":"\t\t\t\t{"},{"line":223,"text":"\t\t\t\t\t$update['attempts'] = $job['attempts'] + 1;"},{"line":224,"text":"\t\t\t\t}"},{"line":225,"text":""},{"line":226,"text":"\t\t\t\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);"},{"line":227,"text":""},{"line":228,"text":"\t\t\t\tbreak;"},{"line":229,"text":""},{"line":230,"text":"\t\t\tcase JobResult::RESULT_FAILED:"},{"line":231,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":232,"text":""},{"line":233,"text":"\t\t\t\tif ($result->exception)"},{"line":234,"text":"\t\t\t\t{"},{"line":235,"text":"\t\t\t\t\t$jobForLogging = $job;"},{"line":236,"text":"\t\t\t\t\t$jobForLogging['execute_data'] = serialize($result->data);"},{"line":237,"text":"\t\t\t\t\t$this->logFailedJob($jobForLogging, $result->exception);"},{"line":238,"text":"\t\t\t\t}"},{"line":239,"text":""},{"line":240,"text":"\t\t\t\tbreak;"},{"line":241,"text":"\t\t}"},{"line":242,"text":""},{"line":243,"text":"\t\tif (!$job['manual_execute'])"},{"line":244,"text":"\t\t{"},{"line":245,"text":"\t\t\t$this->scheduleRunTimeUpdate();"},{"line":246,"text":"\t\t}"},{"line":247,"text":""},{"line":248,"text":"\t\treturn $result;"},{"line":249,"text":"\t}"}],"start":193},"runQueue":{"end":93,"excerpt":[{"line":70,"text":"\tpublic function runQueue($manual, $maxRunTime)"},{"line":71,"text":"\t{"},{"line":72,"text":"\t\tif ($maxRunTime < 2)"},{"line":73,"text":"\t\t{"},{"line":74,"text":"\t\t\t$maxRunTime = 2;"},{"line":75,"text":"\t\t}"},{"line":76,"text":""},{"line":77,"text":"\t\t$runnable = $this->getRunnable($manual);"},{"line":78,"text":"\t\t$startTime = microtime(true);"},{"line":79,"text":"\t\t$result = null;"},{"line":80,"text":""},{"line":81,"text":"\t\tforeach ($runnable AS $job)"},{"line":82,"text":"\t\t{"},{"line":83,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":84,"text":"\t\t\tif ($remaining < 1)"},{"line":85,"text":"\t\t\t{"},{"line":86,"text":"\t\t\t\tbreak;"},{"line":87,"text":"\t\t\t}"},{"line":88,"text":""},{"line":89,"text":"\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":90,"text":"\t\t}"},{"line":91,"text":""},{"line":92,"text":"\t\treturn $result;"},{"line":93,"text":"\t}"}],"start":70}},"manager_sha256":"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9","patched_sha_production":"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0","patched_sha_staging":"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0","production_error_ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"production_jobs":[2324,2325,2326,2327,2328,2329,2330,2331]} +NEWFI112_DECISION=PASS_CONTENTINDEXNOW_JOBMANAGER_SEMANTICS_CAPTURED +NEWFI112_NEXT_GATE=COMPLETE_HOTFIX_ACCEPTANCE_AND_REMOVE_ONLY_PROVEN_STALE_ROWS + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 9cc0face..fbb45a21 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SUPPORT-260919-INFRA-3VPS-ROLE-APP-MANIFEST-READONLY-565R3", + "command_id": "NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", - "component": "infra-3vps-role-app-manifest-readonly", - "started_at_utc": "2026-09-18T22:10:26Z", - "finished_at_utc": "2026-09-18T22:10:39Z", + "component": "newfi-newfdom-contentindexnow-jobmanager-semantics-readonly", + "started_at_utc": "2026-09-18T22:12:40Z", + "finished_at_utc": "2026-09-18T22:12:43Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "8b95b5ad9f325496f9077fc89f26ef35da79be257f5dff5a73865e3f3cb8dff7", + "command_sha256": "91c6d213f03dd756e7d98ffc978a277df1a7b265ebac81ff022fb0b6af52f527", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "f11059f1611ba216b2edab0ab16877fba2fe11da84ad42d1cae52278a8535de5", - "sanitized_output_sha256": "f11059f1611ba216b2edab0ab16877fba2fe11da84ad42d1cae52278a8535de5", + "raw_evidence_sha256": "0cda876282b18beff61dc397bbdb0f847d5cf6d20170e0df2d682a7aafa6967b", + "sanitized_output_sha256": "0cda876282b18beff61dc397bbdb0f847d5cf6d20170e0df2d682a7aafa6967b", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "ERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nTARGET_BEGIN=MOLDOVA\nMOLDOVA_SSH_RC=0\nROLE_MANIFEST_BEGIN\nHOSTNAME=relay\nUID=0\nUSER=root\nAPT_MANUAL_COUNT=138\nAPT_MANUAL_001=adduser\nAPT_MANUAL_002=apparmor\nAPT_MANUAL_003=apt\nAPT_MANUAL_004=apt-listchanges\nAPT_MANUAL_005=apt-utils\nAPT_MANUAL_006=base-files\nAPT_MANUAL_007=base-passwd\nAPT_MANUAL_008=bash\nAPT_MANUAL_009=bash-completion\nAPT_MANUAL_010=bind9-host\nAPT_MANUAL_011=bsdutils\nAPT_MANUAL_012=ca-certificates\nAPT_MANUAL_013=chrony\nAPT_MANUAL_014=cloud-guest-utils\nAPT_MANUAL_015=cloud-init\nAPT_MANUAL_016=cloud-initramfs-growroot\nAPT_MANUAL_017=coreutils\nAPT_MANUAL_018=curl\nAPT_MANUAL_019=dash\nAPT_MANUAL_020=debconf\nAPT_MANUAL_021=debian-archive-keyring\nAPT_MANUAL_022=debianutils\nAPT_MANUAL_023=diffutils\nAPT_MANUAL_024=dnsutils\nAPT_MANUAL_025=dpkg\nAPT_MANUAL_026=e2fsprogs\nAPT_MANUAL_027=ethtool\nAPT_MANUAL_028=findutils\nAPT_MANUAL_029=gcc-12-base\nAPT_MANUAL_030=gnupg\nAPT_MANUAL_031=gpgv\nAPT_MANUAL_032=grep\nAPT_MANUAL_033=grub-cloud-amd64\nAPT_MANUAL_034=gzip\nAPT_MANUAL_035=hostname\nAPT_MANUAL_036=init\nAPT_MANUAL_037=init-system-helpers\nAPT_MANUAL_038=iptables\nAPT_MANUAL_039=iputils-ping\nAPT_MANUAL_040=jq\nAPT_MANUAL_041=less\nAPT_MANUAL_042=libacl1\nAPT_MANUAL_043=libapt-pkg6.0\nAPT_MANUAL_044=libattr1\nAPT_MANUAL_045=libaudit-common\nAPT_MANUAL_046=libaudit1\nAPT_MANUAL_047=libblkid1\nAPT_MANUAL_048=libbz2-1.0\nAPT_MANUAL_049=libc-bin\nAPT_MANUAL_050=libc6\nAPT_MANUAL_051=libcap-ng0\nAPT_MANUAL_052=libcap2\nAPT_MANUAL_053=libcom-err2\nAPT_MANUAL_054=libcrypt1\nAPT_MANUAL_055=libdb5.3\nAPT_MANUAL_056=libdebconfclient0\nAPT_MANUAL_057=libext2fs2\nAPT_MANUAL_058=libffi8\nAPT_MANUAL_059=libgcc-s1\nAPT_MANUAL_060=libgcrypt20\nAPT_MANUAL_061=libgmp10\nAPT_MANUAL_062=libgnutls30\nAPT_MANUAL_063=libgpg-error0\nAPT_MANUAL_064=libhogweed6\nAPT_MANUAL_065=libidn2-0\nAPT_MANUAL_066=liblz4-1\nAPT_MANUAL_067=liblzma5\nAPT_MANUAL_068=libmd0\nAPT_MANUAL_069=libmount1\nAPT_MANUAL_070=libnettle8\nAPT_MANUAL_071=libnss-resolve\nAPT_MANUAL_072=libp11-kit0\nAPT_MANUAL_073=libpam-modules\nAPT_MANUAL_074=libpam-modules-bin\nAPT_MANUAL_075=libpam-runtime\nAPT_MANUAL_076=libpam-systemd\nAPT_MANUAL_077=libpam0g\nAPT_MANUAL_078=libpcre2-8-0\nAPT_MANUAL_079=libseccomp2\nAPT_MANUAL_080=libselinux1\nAPT_MANUAL_081=libsemanage-common\nAPT_MANUAL_082=libsemanage2\nAPT_MANUAL_083=libsepol2\nAPT_MANUAL_084=libsmartcols1\nAPT_MANUAL_085=libss2\nAPT_MANUAL_086=libssl3\nAPT_MANUAL_087=libstdc++6\nAPT_MANUAL_088=libsystemd0\nAPT_MANUAL_089=libtasn1-6\nAPT_MANUAL_090=libtinfo6\nAPT_MANUAL_091=libudev1\nAPT_MANUAL_092=libunistring2\nAPT_MANUAL_093=libuuid1\nAPT_MANUAL_094=libxxhash0\nAPT_MANUAL_095=libzstd1\nAPT_MANUAL_096=linux-image-amd64\nAPT_MANUAL_097=login\nAPT_MANUAL_098=logsave\nAPT_MANUAL_099=man-db\nAPT_MANUAL_100=manpages\nAPT_MANUAL_101=mawk\nAPT_MANUAL_102=mount\nAPT_MANUAL_103=nano\nAPT_MANUAL_104=ncurses-base\nAPT_MANUAL_105=ncurses-bin\nAPT_MANUAL_106=netbase\nAPT_MANUAL_107=netbird\nAPT_MANUAL_108=netcat-openbsd\nAPT_MANUAL_109=netplan.io\nAPT_MANUAL_110=nftables\nAPT_MANUAL_111=openssh-server\nAPT_MANUAL_112=openssl\nAPT_MANUAL_113=passwd\nAPT_MANUAL_114=pciutils\nAPT_MANUAL_115=perl-base\nAPT_MANUAL_116=polkitd\nAPT_MANUAL_117=psmisc\nAPT_MANUAL_118=reportbug\nAPT_MANUAL_119=screen\nAPT_MANUAL_120=sed\nAPT_MANUAL_121=socat\nAPT_MANUAL_122=sudo\nAPT_MANUAL_123=sysvinit-utils\nAPT_MANUAL_124=tar\nAPT_MANUAL_125=tcpdump\nAPT_MANUAL_126=traceroute\nAPT_MANUAL_127=tzdata\nAPT_MANUAL_128=unattended-upgrades\nAPT_MANUAL_129=usr-is-merged\nAPT_MANUAL_130=util-linux\nAPT_MANUAL_131=util-linux-extra\nAPT_MANUAL_132=uuid-runtime\nAPT_MANUAL_133=vim\nAPT_MANUAL_134=vim-tiny\nAPT_MANUAL_135=whiptail\nAPT_MANUAL_136=xz-utils\nAPT_MANUAL_137=zlib1g\nAPT_MANUAL_138=zstd\nENABLED_UNIT_COUNT=26\nENABLED_UNIT_001=apparmor.service enabled enabled\nENABLED_UNIT_002=chrony.service enabled enabled\nENABLED_UNIT_003=cloud-config.service enabled enabled\nENABLED_UNIT_004=cloud-final.service enabled enabled\nENABLED_UNIT_005=cloud-init-local.service enabled enabled\nENABLED_UNIT_006=cloud-init.service enabled enabled\nENABLED_UNIT_007=e2scrub_reap.service enabled enabled\nENABLED_UNIT_008=getty@.service enabled enabled\nENABLED_UNIT_009=netbird.service enabled enabled\nENABLED_UNIT_010=nftables.service enabled enabled\nENABLED_UNIT_011=ssh.service enabled enabled\nENABLED_UNIT_012=systemd-network-generator.service enabled enabled\nENABLED_UNIT_013=systemd-networkd-wait-online.service enabled disabled\nENABLED_UNIT_014=systemd-networkd.service enabled enabled\nENABLED_UNIT_015=systemd-pstore.service enabled enabled\nENABLED_UNIT_016=systemd-resolved.service enabled enabled\nENABLED_UNIT_017=unattended-upgrades.service enabled enabled\nENABLED_UNIT_018=cloud-init-hotplugd.socket enabled enabled\nENABLED_UNIT_019=systemd-networkd.socket enabled enabled\nENABLED_UNIT_020=uuidd.socket enabled enabled\nENABLED_UNIT_021=remote-fs.target enabled enabled\nENABLED_UNIT_022=dpkg-db-backup.timer enabled enabled\nENABLED_UNIT_023=e2scrub_all.timer enabled enabled\nENABLED_UNIT_024=fstrim.timer enabled enabled\nENABLED_UNIT_025=man-db.timer enabled enabled\nENABLED_UNIT_026=pvepro-relay-healthcheck.timer enabled enabled\nRUNNING_SERVICE_COUNT=14\nRUNNING_SERVICE_001=chrony.service loaded active running chrony, an NTP client/server\nRUNNING_SERVICE_002=dbus.service loaded active running D-Bus System Message Bus\nRUNNING_SERVICE_003=getty@tty1.service loaded active running Getty on tty1\nRUNNING_SERVICE_004=netbird.service loaded active running NetBird mesh network client\nRUNNING_SERVICE_005=serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0\nRUNNING_SERVICE_006=ssh.service loaded active running OpenBSD Secure Shell server\nRUNNING_SERVICE_007=systemd-journald.service loaded active running Journal Service\nRUNNING_SERVICE_008=systemd-logind.service loaded active running User Login Management\nRUNNING_SERVICE_009=systemd-networkd.service loaded active running Network Configuration\nRUNNING_SERVICE_010=systemd-resolved.service loaded active running Network Name Resolution\nRUNNING_SERVICE_011=systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files\nRUNNING_SERVICE_012=unattended-upgrades.service loaded active running Unattended Upgrades Shutdown\nRUNNING_SERVICE_013=user@0.service loaded active running User Manager for UID 0\nRUNNING_SERVICE_014=user@1000.service loaded active running User Manager for UID 1000\nCUSTOM_UNIT_COUNT=32\nCUSTOM_UNIT_001_BEGIN\nPATH=/etc/systemd/system/chronyd.service\nSHA256=834875cafa028d9bbfebd90a7f8aa554d5188160437c961e6571b3d0b7d4df2d\nDescription=chrony, an NTP client/server\nUser=_chrony\nExecStart=!/usr/sbin/chronyd $DAEMON_OPTS\nCUSTOM_UNIT_001_END\nCUSTOM_UNIT_002_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-config.service\nSHA256=c4c0701388bb8f07020284875c0174bdd5eaa2f6aa04431d83a1f53f8121c320\nDescription=Apply the settings specified in cloud-config\nExecStart=/usr/bin/cloud-init modules\nCUSTOM_UNIT_002_END\nCUSTOM_UNIT_003_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-final.service\nSHA256=6783232c8b5e9c58958e8016e3ef2894c09e10e81e991e95c84d38809a58650e\nDescription=Execute cloud user/final scripts\nExecStart=/usr/bin/cloud-init modules\nCUSTOM_UNIT_003_END\nCUSTOM_UNIT_004_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-hotplugd.socket\nSHA256=6cfc7f2dc395125d6e88856a3b454067fdd3f7919621d4410f876218e0fc762a\nDescription=cloud-init hotplug hook socket\nCUSTOM_UNIT_004_END\nCUSTOM_UNIT_005_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service\nSHA256=9f7500022a35cde177bc5b7c05fe3b6daacd5cb7b9a0f6de8fdfd869032a7175\nDescription=Initial cloud-init job (pre-networking)\nExecStart=/usr/bin/cloud-init init\nCUSTOM_UNIT_005_END\nCUSTOM_UNIT_006_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init.service\nSHA256=c055f762ef371d9a6885220fd1303d11f6f6827a98c6db50a58ccdc8b041b63e\nDescription=Initial cloud-init job (metadata service crawler)\nExecStart=/usr/bin/cloud-init init\nCUSTOM_UNIT_006_END\nCUSTOM_UNIT_007_BEGIN\nPATH=/etc/systemd/system/dbus-org.freedesktop.network1.service\nSHA256=0e1616169cce28c239371ce5bb627d33a57d4c84fea3fccce0c939017b37c5bd\nDescription=Network Configuration\nExecStart=!!/lib/systemd/systemd-networkd\nUser=systemd-network\nCUSTOM_UNIT_007_END\nCUSTOM_UNIT_008_BEGIN\nPATH=/etc/systemd/system/dbus-org.freedesktop.resolve1.service\nSHA256=710b62d8b24508e45510323ac72d140256c6f145e3296fc3351c1057ddf21c56\nDescription=Network Name Resolution\nExecStart=!!/lib/systemd/systemd-resolved\nUser=systemd-resolve\nCUSTOM_UNIT_008_END\nCUSTOM_UNIT_009_BEGIN\nPATH=/etc/systemd/system/getty.target.wants/getty@tty1.service\nSHA256=699d14804ee2bc42bb88196c71a9dad503ebe744ae9092f6afc8488fb00f5d16\nDescription=Getty on %I\nExecStart=-/sbin/agetty -o\nCUSTOM_UNIT_009_END\nCUSTOM_UNIT_010_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/chrony.service\nSHA256=834875cafa028d9bbfebd90a7f8aa554d5188160437c961e6571b3d0b7d4df2d\nDescription=chrony, an NTP client/server\nUser=_chrony\nExecStart=!/usr/sbin/chronyd $DAEMON_OPTS\nCUSTOM_UNIT_010_END\nCUSTOM_UNIT_011_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/e2scrub_reap.service\nSHA256=35405e2a877fe17ccf05c96db2e037a29605f8719ba3e4b2f1670c721aa7b5aa\nDescription=Remove Stale Online ext4 Metadata Check Snapshots\nWorkingDirectory=/\nUser=root\nExecStart=/sbin/e2scrub_all -A\nCUSTOM_UNIT_011_END\nCUSTOM_UNIT_012_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/netbird.service\nSHA256=9487974b120df840fd4fb2874daa21f4d99a3d05a6ea66d94430b3d76e1c644b\nDescription=NetBird mesh network client\nExecStart=/usr/bin/netbird service\nCUSTOM_UNIT_012_END\nCUSTOM_UNIT_013_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/ssh.service\nSHA256=35b2858970feb78e985900b33ba8cb84249dfadbf296155e5639cafcf1dd40a3\nDescription=OpenBSD Secure Shell server\nExecStartPre=/usr/sbin/sshd -t\nExecStart=/usr/sbin/sshd -D\nCUSTOM_UNIT_013_END\nCUSTOM_UNIT_014_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/systemd-networkd.service\nSHA256=0e1616169cce28c239371ce5bb627d33a57d4c84fea3fccce0c939017b37c5bd\nDescription=Network Configuration\nExecStart=!!/lib/systemd/systemd-networkd\nUser=systemd-network\nCUSTOM_UNIT_014_END\nCUSTOM_UNIT_015_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/unattended-upgrades.service\nSHA256=642331d3861bcc5e41342b9b93ad96b1852447d5b10533b9b2988531cfd2860a\nDescription=Unattended Upgrades Shutdown\nExecStart=/usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal\nCUSTOM_UNIT_015_END\nCUSTOM_UNIT_016_BEGIN\nPATH=/etc/systemd/system/netbird.service\nSHA256=9487974b120df840fd4fb2874daa21f4d99a3d05a6ea66d94430b3d76e1c644b\nDescription=NetBird mesh network client\nExecStart=/usr/bin/netbird service\nCUSTOM_UNIT_016_END\nCUSTOM_UNIT_017_BEGIN\nPATH=/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service\nSHA256=768f8d5033d2b57053b9c9ada48344010f025c856f7aa6ffdd657c969255d874\nDescription=Wait for Network to be Configured\nExecStart=/lib/systemd/systemd-networkd-wait-online\nCUSTOM_UNIT_017_END\nCUSTOM_UNIT_018_BEGIN\nPATH=/etc/systemd/system/pvepro-relay-healthcheck.service\nSHA256=4c51e2ae2835fefd32b4a60ff135eb07a65abdc031a8b7e71f149a65f0ff9f64\nDescription=PVEPro relay healthcheck\nExecStart=/usr/local/sbin/pvepro-relay-healthcheck\nCUSTOM_UNIT_018_END\nCUSTOM_UNIT_019_BEGIN\nPATH=/etc/systemd/system/pvepro-relay-healthcheck.timer\nSHA256=d81a5e3ba6e1a6a42ca3193a4f6e19b4f74af141d83bbd4652b6fbd0a9a33e43\nDescription=Run PVEPro relay healthcheck every 5 minutes\nCUSTOM_UNIT_019_END\nCUSTOM_UNIT_020_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/systemd-networkd.socket\nSHA256=cb8f907e9c4234b08d5000cb99b143ada9aad336c59225250baa9e135f9bd448\nDescription=Network Service Netlink Socket\nCUSTOM_UNIT_020_END\nCUSTOM_UNIT_021_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/uuidd.socket\nSHA256=21f7cc7b5ffaf73b27f00689e628797a2be947df144b1a0f7ba9356c8d0a4897\nDescription=UUID daemon activation socket\nCUSTOM_UNIT_021_END\nCUSTOM_UNIT_022_BEGIN\nPATH=/etc/systemd/system/sshd.service\nSHA256=35b2858970feb78e985900b33ba8cb84249dfadbf296155e5639cafcf1dd40a3\nDescription=OpenBSD Secure Shell server\nExecStartPre=/usr/sbin/sshd -t\nExecStart=/usr/sbin/sshd -D\nCUSTOM_UNIT_022_END\nCUSTOM_UNIT_023_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/apparmor.service\nSHA256=02c4d752e9f13dde845cab6c067a790c7af61b3c414b82781d29881a37ec5e19\nDescription=Load AppArmor profiles\nExecStart=/lib/apparmor/apparmor.systemd reload\nExecStop=/bin/true\nCUSTOM_UNIT_023_END\nCUSTOM_UNIT_024_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/nftables.service\nSHA256=e040269f9010bb805d21a7c7b61af5b06530857967cdb2e2fbcf9a470fdf1810\nDescription=nftables\nExecStart=/usr/sbin/nft -f\nExecStop=/usr/sbin/nft flush\nCUSTOM_UNIT_024_END\nCUSTOM_UNIT_025_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-network-generator.service\nSHA256=ae773fb67e108f12bb36dc010bb88db628d0903a57323ed4f76a86012cab9473\nDescription=Generate network units from Kernel command line\nExecStart=/lib/systemd/systemd-network-generator\nCUSTOM_UNIT_025_END\nCUSTOM_UNIT_026_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-pstore.service\nSHA256=f39fa5c39ffdb894a3fb3736c63e3ee3f69608b41aee4c1fbaa3fb6d58d081ff\nDescription=Platform Persistent Storage Archival\nExecStart=/lib/systemd/systemd-pstore\nCUSTOM_UNIT_026_END\nCUSTOM_UNIT_027_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-resolved.service\nSHA256=710b62d8b24508e45510323ac72d140256c6f145e3296fc3351c1057ddf21c56\nDescription=Network Name Resolution\nExecStart=!!/lib/systemd/systemd-resolved\nUser=systemd-resolve\nCUSTOM_UNIT_027_END\nCUSTOM_UNIT_028_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/dpkg-db-backup.timer\nSHA256=53f7ed8aadfaf61d9decda9565b65f68d5b5a66be4ee8f87741e47163839b4a6\nDescription=Daily dpkg database backup timer\nCUSTOM_UNIT_028_END\nCUSTOM_UNIT_029_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/e2scrub_all.timer\nSHA256=23f20fb6edc9fd54bf4754ef4311f88cba45ba65c6aecfa1885e8fb99531c211\nDescription=Periodic ext4 Online Metadata Check for All Filesystems\nCUSTOM_UNIT_029_END\nCUSTOM_UNIT_030_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/fstrim.timer\nSHA256=b15bcc0d8fc3698701087264a834bc6c495780ed27b68e0a8e3eb10d02bef74a\nDescription=Discard unused blocks once a week\nCUSTOM_UNIT_030_END\nCUSTOM_UNIT_031_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/man-db.timer\nSHA256=3a3a1ca2ab2c92fe74bae1257e4c666e5dd0a31f441221dfa809bc0cf6540774\nDescription=Daily man-db regeneration\nCUSTOM_UNIT_031_END\nCUSTOM_UNIT_032_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/pvepro-relay-healthcheck.timer\nSHA256=d81a5e3ba6e1a6a42ca3193a4f6e19b4f74af141d83bbd4652b6fbd0a9a33e43\nDescription=Run PVEPro relay healthcheck every 5 minutes\nCUSTOM_UNIT_032_END\nUSR_LOCAL_COUNT=2\nUSR_LOCAL_001=/usr/local/sbin/pvepro-relay-healthcheck|3703|b57eeb18fe25a182475edf8b075cecc40f3be40291c9554c9286b53659f1548e\nUSR_LOCAL_002=/usr/local/sbin/pvepro-relay-notifier|5329|dfb4f5ee90a4cff2780f3dbd6474ae81792bc2b405d7eb666273bf1eb591ed1a\nAPPROOT_OPT=\nAPPROOT_SRV=\nAPPROOT_VAR_WWW=\nAPPROOT_ROOT=.bash_history,.bashrc,.config/,.lesshst,.profile,.sudo_as_admin_successful,MOLDOVA_DIRECT_AUDIT_20260817T200610Z.txt,evidence/,pvepro-relay-healthcheck.pre-netbird-migration.20260818T195534Z,pvepro-relay-healthcheck.pre-v3.20260818T212442Z,pvepro-relay-notifier-install-20260818T215755Z/,pvepro-relay-notifier-install-20260818T220847Z/\nAPPROOT_HOME=ops/\nDEPLOYMENT_MARKER_COUNT=0\nCRON_FILE_COUNT=5\nCRON_FILE_001=/etc/cron.d/e2scrub_all\nCRON_FILE_002=/etc/cron.daily/apt-compat\nCRON_FILE_003=/etc/cron.daily/dpkg\nCRON_FILE_004=/etc/cron.daily/man-db\nCRON_FILE_005=/etc/cron.weekly/man-db\nCRONTAB_CURRENT_COUNT=0\nCRONTAB_ROOT_COUNT=0\nDOCKER_PRESENT=False\nPODMAN_PRESENT=False\nPIP_COUNT=0\nPIPX_COUNT=0\nNPM_GLOBAL_COUNT=0\nGEM_COUNT=0\nSNAP_COUNT=0\nFLATPAK_COUNT=0\nNGINX_CONFIG_FILE_COUNT=0\nHAPROXY_CONFIG_FILE_COUNT=0\nWIREGUARD_CONFIG_FILE_COUNT=0\nNETBIRD_CONFIG_FILE_COUNT=1\nNETBIRD_CONFIG_FILE_001=/etc/netbird/install.conf\nROLE_MANIFEST_END\nTARGET_END=MOLDOVA\nTARGET_BEGIN=USA\nUSA_SSH_RC=0\nROLE_MANIFEST_BEGIN\nHOSTNAME=pvepro\nUID=0\nUSER=root\nAPT_MANUAL_COUNT=138\nAPT_MANUAL_001=adduser\nAPT_MANUAL_002=apparmor\nAPT_MANUAL_003=apt\nAPT_MANUAL_004=apt-listchanges\nAPT_MANUAL_005=apt-utils\nAPT_MANUAL_006=base-files\nAPT_MANUAL_007=base-passwd\nAPT_MANUAL_008=bash\nAPT_MANUAL_009=bash-completion\nAPT_MANUAL_010=bind9-host\nAPT_MANUAL_011=bsdutils\nAPT_MANUAL_012=ca-certificates\nAPT_MANUAL_013=cloud-guest-utils\nAPT_MANUAL_014=cloud-init\nAPT_MANUAL_015=cloud-initramfs-growroot\nAPT_MANUAL_016=containerd.io\nAPT_MANUAL_017=coreutils\nAPT_MANUAL_018=curl\nAPT_MANUAL_019=dash\nAPT_MANUAL_020=debconf\nAPT_MANUAL_021=debian-archive-keyring\nAPT_MANUAL_022=debianutils\nAPT_MANUAL_023=diffutils\nAPT_MANUAL_024=docker-buildx-plugin\nAPT_MANUAL_025=docker-ce\nAPT_MANUAL_026=docker-ce-cli\nAPT_MANUAL_027=docker-compose-plugin\nAPT_MANUAL_028=dpkg\nAPT_MANUAL_029=e2fsprogs\nAPT_MANUAL_030=ethtool\nAPT_MANUAL_031=findutils\nAPT_MANUAL_032=gcc-12-base\nAPT_MANUAL_033=gpgv\nAPT_MANUAL_034=grep\nAPT_MANUAL_035=grub-cloud-amd64\nAPT_MANUAL_036=gzip\nAPT_MANUAL_037=hostname\nAPT_MANUAL_038=init\nAPT_MANUAL_039=init-system-helpers\nAPT_MANUAL_040=iptables\nAPT_MANUAL_041=iputils-ping\nAPT_MANUAL_042=less\nAPT_MANUAL_043=libacl1\nAPT_MANUAL_044=libapt-pkg6.0\nAPT_MANUAL_045=libattr1\nAPT_MANUAL_046=libaudit-common\nAPT_MANUAL_047=libaudit1\nAPT_MANUAL_048=libblkid1\nAPT_MANUAL_049=libbz2-1.0\nAPT_MANUAL_050=libc-bin\nAPT_MANUAL_051=libc6\nAPT_MANUAL_052=libcap-ng0\nAPT_MANUAL_053=libcap2\nAPT_MANUAL_054=libcom-err2\nAPT_MANUAL_055=libcrypt1\nAPT_MANUAL_056=libdb5.3\nAPT_MANUAL_057=libdebconfclient0\nAPT_MANUAL_058=libext2fs2\nAPT_MANUAL_059=libffi8\nAPT_MANUAL_060=libgcc-s1\nAPT_MANUAL_061=libgcrypt20\nAPT_MANUAL_062=libgmp10\nAPT_MANUAL_063=libgnutls30\nAPT_MANUAL_064=libgpg-error0\nAPT_MANUAL_065=libhogweed6\nAPT_MANUAL_066=libidn2-0\nAPT_MANUAL_067=liblz4-1\nAPT_MANUAL_068=liblzma5\nAPT_MANUAL_069=libmd0\nAPT_MANUAL_070=libmount1\nAPT_MANUAL_071=libnettle8\nAPT_MANUAL_072=libnss-resolve\nAPT_MANUAL_073=libp11-kit0\nAPT_MANUAL_074=libpam-modules\nAPT_MANUAL_075=libpam-modules-bin\nAPT_MANUAL_076=libpam-runtime\nAPT_MANUAL_077=libpam-systemd\nAPT_MANUAL_078=libpam0g\nAPT_MANUAL_079=libpcre2-8-0\nAPT_MANUAL_080=libseccomp2\nAPT_MANUAL_081=libselinux1\nAPT_MANUAL_082=libsemanage-common\nAPT_MANUAL_083=libsemanage2\nAPT_MANUAL_084=libsepol2\nAPT_MANUAL_085=libsmartcols1\nAPT_MANUAL_086=libss2\nAPT_MANUAL_087=libssl3\nAPT_MANUAL_088=libstdc++6\nAPT_MANUAL_089=libsystemd0\nAPT_MANUAL_090=libtasn1-6\nAPT_MANUAL_091=libtinfo6\nAPT_MANUAL_092=libudev1\nAPT_MANUAL_093=libunistring2\nAPT_MANUAL_094=libuuid1\nAPT_MANUAL_095=libxxhash0\nAPT_MANUAL_096=libzstd1\nAPT_MANUAL_097=linux-image-amd64\nAPT_MANUAL_098=login\nAPT_MANUAL_099=logsave\nAPT_MANUAL_100=man-db\nAPT_MANUAL_101=manpages\nAPT_MANUAL_102=mawk\nAPT_MANUAL_103=mount\nAPT_MANUAL_104=nano\nAPT_MANUAL_105=ncurses-base\nAPT_MANUAL_106=ncurses-bin\nAPT_MANUAL_107=netbase\nAPT_MANUAL_108=netplan.io\nAPT_MANUAL_109=openssh-server\nAPT_MANUAL_110=openssl\nAPT_MANUAL_111=passwd\nAPT_MANUAL_112=pciutils\nAPT_MANUAL_113=perl-base\nAPT_MANUAL_114=polkitd\nAPT_MANUAL_115=psmisc\nAPT_MANUAL_116=reportbug\nAPT_MANUAL_117=screen\nAPT_MANUAL_118=sed\nAPT_MANUAL_119=socat\nAPT_MANUAL_120=sqlite3\nAPT_MANUAL_121=sudo\nAPT_MANUAL_122=systemd-timesyncd\nAPT_MANUAL_123=sysvinit-utils\nAPT_MANUAL_124=tar\nAPT_MANUAL_125=tcpdump\nAPT_MANUAL_126=traceroute\nAPT_MANUAL_127=tzdata\nAPT_MANUAL_128=unattended-upgrades\nAPT_MANUAL_129=usr-is-merged\nAPT_MANUAL_130=util-linux\nAPT_MANUAL_131=util-linux-extra\nAPT_MANUAL_132=uuid-runtime\nAPT_MANUAL_133=vim\nAPT_MANUAL_134=vim-tiny\nAPT_MANUAL_135=whiptail\nAPT_MANUAL_136=xz-utils\nAPT_MANUAL_137=zlib1g\nAPT_MANUAL_138=zstd\nENABLED_UNIT_COUNT=28\nENABLED_UNIT_001=apparmor.service enabled enabled\nENABLED_UNIT_002=cloud-config.service enabled enabled\nENABLED_UNIT_003=cloud-final.service enabled enabled\nENABLED_UNIT_004=cloud-init-local.service enabled enabled\nENABLED_UNIT_005=cloud-init.service enabled enabled\nENABLED_UNIT_006=containerd.service enabled enabled\nENABLED_UNIT_007=docker.service enabled enabled\nENABLED_UNIT_008=e2scrub_reap.service enabled enabled\nENABLED_UNIT_009=getty@.service enabled enabled\nENABLED_UNIT_010=ssh.service enabled enabled\nENABLED_UNIT_011=systemd-network-generator.service enabled enabled\nENABLED_UNIT_012=systemd-networkd-wait-online.service enabled disabled\nENABLED_UNIT_013=systemd-networkd.service enabled enabled\nENABLED_UNIT_014=systemd-pstore.service enabled enabled\nENABLED_UNIT_015=systemd-resolved.service enabled enabled\nENABLED_UNIT_016=systemd-timesyncd.service enabled enabled\nENABLED_UNIT_017=unattended-upgrades.service enabled enabled\nENABLED_UNIT_018=cloud-init-hotplugd.socket enabled enabled\nENABLED_UNIT_019=docker.socket enabled enabled\nENABLED_UNIT_020=systemd-networkd.socket enabled enabled\nENABLED_UNIT_021=uuidd.socket enabled enabled\nENABLED_UNIT_022=remote-fs.target enabled enabled\nENABLED_UNIT_023=apt-daily-upgrade.timer enabled enabled\nENABLED_UNIT_024=apt-daily.timer enabled enabled\nENABLED_UNIT_025=dpkg-db-backup.timer enabled enabled\nENABLED_UNIT_026=e2scrub_all.timer enabled enabled\nENABLED_UNIT_027=fstrim.timer enabled enabled\nENABLED_UNIT_028=man-db.timer enabled enabled\nRUNNING_SERVICE_COUNT=14\nRUNNING_SERVICE_001=containerd.service loaded active running containerd container runtime\nRUNNING_SERVICE_002=dbus.service loaded active running D-Bus System Message Bus\nRUNNING_SERVICE_003=docker.service loaded active running Docker Application Container Engine\nRUNNING_SERVICE_004=getty@tty1.service loaded active running Getty on tty1\nRUNNING_SERVICE_005=serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0\nRUNNING_SERVICE_006=ssh.service loaded active running OpenBSD Secure Shell server\nRUNNING_SERVICE_007=systemd-journald.service loaded active running Journal Service\nRUNNING_SERVICE_008=systemd-logind.service loaded active running User Login Management\nRUNNING_SERVICE_009=systemd-networkd.service loaded active running Network Configuration\nRUNNING_SERVICE_010=systemd-resolved.service loaded active running Network Name Resolution\nRUNNING_SERVICE_011=systemd-timesyncd.service loaded active running Network Time Synchronization\nRUNNING_SERVICE_012=systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files\nRUNNING_SERVICE_013=unattended-upgrades.service loaded active running Unattended Upgrades Shutdown\nRUNNING_SERVICE_014=user@0.service loaded active running User Manager for UID 0\nCUSTOM_UNIT_COUNT=31\nCUSTOM_UNIT_001_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-config.service\nSHA256=c4c0701388bb8f07020284875c0174bdd5eaa2f6aa04431d83a1f53f8121c320\nDescription=Apply the settings specified in cloud-config\nExecStart=/usr/bin/cloud-init modules\nCUSTOM_UNIT_001_END\nCUSTOM_UNIT_002_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-final.service\nSHA256=6783232c8b5e9c58958e8016e3ef2894c09e10e81e991e95c84d38809a58650e\nDescription=Execute cloud user/final scripts\nExecStart=/usr/bin/cloud-init modules\nCUSTOM_UNIT_002_END\nCUSTOM_UNIT_003_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-hotplugd.socket\nSHA256=bc5fba4b6b7e6dba9073e1819c2613153990f64b507e8a14f363b7311faf505b\nDescription=cloud-init hotplug hook socket\nCUSTOM_UNIT_003_END\nCUSTOM_UNIT_004_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service\nSHA256=9f7500022a35cde177bc5b7c05fe3b6daacd5cb7b9a0f6de8fdfd869032a7175\nDescription=Initial cloud-init job (pre-networking)\nExecStart=/usr/bin/cloud-init init\nCUSTOM_UNIT_004_END\nCUSTOM_UNIT_005_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init.service\nSHA256=c055f762ef371d9a6885220fd1303d11f6f6827a98c6db50a58ccdc8b041b63e\nDescription=Initial cloud-init job (metadata service crawler)\nExecStart=/usr/bin/cloud-init init\nCUSTOM_UNIT_005_END\nCUSTOM_UNIT_006_BEGIN\nPATH=/etc/systemd/system/dbus-org.freedesktop.network1.service\nSHA256=f241eb7c744396fdf84ec784e559f9c2b35d113e227a3290a7cab5190ee1335d\nDescription=Network Configuration\nExecStart=!!/lib/systemd/systemd-networkd\nUser=systemd-network\nCUSTOM_UNIT_006_END\nCUSTOM_UNIT_007_BEGIN\nPATH=/etc/systemd/system/dbus-org.freedesktop.resolve1.service\nSHA256=c30f7daf759f98535953f9dc598b08c43bf776af64c0079c2a926a6271cec841\nDescription=Network Name Resolution\nExecStart=!!/lib/systemd/systemd-resolved\nUser=systemd-resolve\nCUSTOM_UNIT_007_END\nCUSTOM_UNIT_008_BEGIN\nPATH=/etc/systemd/system/dbus-org.freedesktop.timesync1.service\nSHA256=0e2cc5ea697a01cf8eef93cbadaaa029d23fb9759af459315ee0b3a349214303\nDescription=Network Time Synchronization\nExecStart=!!/lib/systemd/systemd-timesyncd\nUser=systemd-timesync\nCUSTOM_UNIT_008_END\nCUSTOM_UNIT_009_BEGIN\nPATH=/etc/systemd/system/getty.target.wants/getty@tty1.service\nSHA256=04abf57d1d60d3a4b745bae2d109010d29605fff11f979dbffb4e1a0df455365\nDescription=Getty on %I\nExecStart=-/sbin/agetty -o\nCUSTOM_UNIT_009_END\nCUSTOM_UNIT_010_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/containerd.service\nSHA256=bd1effcf6d9cd564c232b631b353b2758f174160e3d8c078a792363b59f113d0\nDescription=containerd container runtime\nExecStartPre=-/sbin/modprobe overlay\nExecStart=/usr/bin/containerd\nCUSTOM_UNIT_010_END\nCUSTOM_UNIT_011_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/docker.service\nSHA256=a12d90fd03761bf79659a185c4a2c40e08934d7ada9e05130e64bd5eb4d634aa\nDescription=Docker Application Container Engine\nExecStart=/usr/bin/dockerd -H\nCUSTOM_UNIT_011_END\nCUSTOM_UNIT_012_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/e2scrub_reap.service\nSHA256=35405e2a877fe17ccf05c96db2e037a29605f8719ba3e4b2f1670c721aa7b5aa\nDescription=Remove Stale Online ext4 Metadata Check Snapshots\nWorkingDirectory=/\nUser=root\nExecStart=/sbin/e2scrub_all -A\nCUSTOM_UNIT_012_END\nCUSTOM_UNIT_013_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/ssh.service\nSHA256=35b2858970feb78e985900b33ba8cb84249dfadbf296155e5639cafcf1dd40a3\nDescription=OpenBSD Secure Shell server\nExecStartPre=/usr/sbin/sshd -t\nExecStart=/usr/sbin/sshd -D\nCUSTOM_UNIT_013_END\nCUSTOM_UNIT_014_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/systemd-networkd.service\nSHA256=f241eb7c744396fdf84ec784e559f9c2b35d113e227a3290a7cab5190ee1335d\nDescription=Network Configuration\nExecStart=!!/lib/systemd/systemd-networkd\nUser=systemd-network\nCUSTOM_UNIT_014_END\nCUSTOM_UNIT_015_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/unattended-upgrades.service\nSHA256=642331d3861bcc5e41342b9b93ad96b1852447d5b10533b9b2988531cfd2860a\nDescription=Unattended Upgrades Shutdown\nExecStart=/usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal\nCUSTOM_UNIT_015_END\nCUSTOM_UNIT_016_BEGIN\nPATH=/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service\nSHA256=768f8d5033d2b57053b9c9ada48344010f025c856f7aa6ffdd657c969255d874\nDescription=Wait for Network to be Configured\nExecStart=/lib/systemd/systemd-networkd-wait-online\nCUSTOM_UNIT_016_END\nCUSTOM_UNIT_017_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/docker.socket\nSHA256=96cd0d89474816ddfb03893b44c36e7d744254aed1bf6d30eca65ff396114656\nDescription=Docker Socket for the API\nCUSTOM_UNIT_017_END\nCUSTOM_UNIT_018_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/systemd-networkd.socket\nSHA256=cb8f907e9c4234b08d5000cb99b143ada9aad336c59225250baa9e135f9bd448\nDescription=Network Service Netlink Socket\nCUSTOM_UNIT_018_END\nCUSTOM_UNIT_019_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/uuidd.socket\nSHA256=21f7cc7b5ffaf73b27f00689e628797a2be947df144b1a0f7ba9356c8d0a4897\nDescription=UUID daemon activation socket\nCUSTOM_UNIT_019_END\nCUSTOM_UNIT_020_BEGIN\nPATH=/etc/systemd/system/sshd.service\nSHA256=35b2858970feb78e985900b33ba8cb84249dfadbf296155e5639cafcf1dd40a3\nDescription=OpenBSD Secure Shell server\nExecStartPre=/usr/sbin/sshd -t\nExecStart=/usr/sbin/sshd -D\nCUSTOM_UNIT_020_END\nCUSTOM_UNIT_021_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/apparmor.service\nSHA256=02c4d752e9f13dde845cab6c067a790c7af61b3c414b82781d29881a37ec5e19\nDescription=Load AppArmor profiles\nExecStart=/lib/apparmor/apparmor.systemd reload\nExecStop=/bin/true\nCUSTOM_UNIT_021_END\nCUSTOM_UNIT_022_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-network-generator.service\nSHA256=ae773fb67e108f12bb36dc010bb88db628d0903a57323ed4f76a86012cab9473\nDescription=Generate network units from Kernel command line\nExecStart=/lib/systemd/systemd-network-generator\nCUSTOM_UNIT_022_END\nCUSTOM_UNIT_023_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-pstore.service\nSHA256=f39fa5c39ffdb894a3fb3736c63e3ee3f69608b41aee4c1fbaa3fb6d58d081ff\nDescription=Platform Persistent Storage Archival\nExecStart=/lib/systemd/systemd-pstore\nCUSTOM_UNIT_023_END\nCUSTOM_UNIT_024_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-resolved.service\nSHA256=c30f7daf759f98535953f9dc598b08c43bf776af64c0079c2a926a6271cec841\nDescription=Network Name Resolution\nExecStart=!!/lib/systemd/systemd-resolved\nUser=systemd-resolve\nCUSTOM_UNIT_024_END\nCUSTOM_UNIT_025_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service\nSHA256=0e2cc5ea697a01cf8eef93cbadaaa029d23fb9759af459315ee0b3a349214303\nDescription=Network Time Synchronization\nExecStart=!!/lib/systemd/systemd-timesyncd\nUser=systemd-timesync\nCUSTOM_UNIT_025_END\nCUSTOM_UNIT_026_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer\nSHA256=b804d7bab8eb41202384f9270e25d5383346ace8b3d7c4f5029c150638d77bcd\nDescription=Daily apt upgrade and clean activities\nCUSTOM_UNIT_026_END\nCUSTOM_UNIT_027_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/apt-daily.timer\nSHA256=0075e974af4e3a94757e219ba50ccb8348d4d1a8834d938f6cc9b1f4fd1db4e5\nDescription=Daily apt download activities\nCUSTOM_UNIT_027_END\nCUSTOM_UNIT_028_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/dpkg-db-backup.timer\nSHA256=53f7ed8aadfaf61d9decda9565b65f68d5b5a66be4ee8f87741e47163839b4a6\nDescription=Daily dpkg database backup timer\nCUSTOM_UNIT_028_END\nCUSTOM_UNIT_029_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/e2scrub_all.timer\nSHA256=23f20fb6edc9fd54bf4754ef4311f88cba45ba65c6aecfa1885e8fb99531c211\nDescription=Periodic ext4 Online Metadata Check for All Filesystems\nCUSTOM_UNIT_029_END\nCUSTOM_UNIT_030_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/fstrim.timer\nSHA256=b15bcc0d8fc3698701087264a834bc6c495780ed27b68e0a8e3eb10d02bef74a\nDescription=Discard unused blocks once a week\nCUSTOM_UNIT_030_END\nCUSTOM_UNIT_031_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/man-db.timer\nSHA256=3a3a1ca2ab2c92fe74bae1257e4c666e5dd0a31f441221dfa809bc0cf6540774\nDescription=Daily man-db regeneration\nCUSTOM_UNIT_031_END\nUSR_LOCAL_COUNT=0\nAPPROOT_OPT=containerd/,netbird/\nAPPROOT_SRV=\nAPPROOT_VAR_WWW=\nAPPROOT_ROOT=.bash_history,.bashrc,.local/,.profile,netbird-cutover-20260818T141447Z/,netbird-cutover-20260818T143410Z/,netbird-cutover-20260818T145807Z/,p0-ssh-rollback-cmd1337.log,retired-mailcow-backups/\nAPPROOT_HOME=\nDEPLOYMENT_MARKER_COUNT=3\nDEPLOYMENT_MARKER_001=/opt/netbird/docker-compose.yml\nDEPLOYMENT_MARKER_002=/root/netbird-cutover-20260818T141447Z/docker-compose.yml\nDEPLOYMENT_MARKER_003=/root/netbird-cutover-20260818T143410Z/docker-compose.yml\nCRON_FILE_COUNT=5\nCRON_FILE_001=/etc/cron.d/e2scrub_all\nCRON_FILE_002=/etc/cron.daily/apt-compat\nCRON_FILE_003=/etc/cron.daily/dpkg\nCRON_FILE_004=/etc/cron.daily/man-db\nCRON_FILE_005=/etc/cron.weekly/man-db\nCRONTAB_CURRENT_COUNT=0\nCRONTAB_ROOT_COUNT=0\nDOCKER_PRESENT=True\nDOCKER_CONTAINERS_COUNT=3\nDOCKER_CONTAINERS_001=netbird-traefik|traefik:v3.6|Up 3 weeks|46.16.34.129:80->80/tcp, 46.16.34.129:443->443/tcp\nDOCKER_CONTAINERS_002=netbird-dashboard|netbirdio/dashboard:latest|Up 3 weeks|80/tcp, 443/tcp\nDOCKER_CONTAINERS_003=netbird-server|netbirdio/netbird-server:latest|Up 3 weeks|46.16.34.129:3478->3478/udp\nDOCKER_IMAGES_COUNT=4\nDOCKER_IMAGES_001=netbirdio/dashboard:latest|05022a0ab704|209MB\nDOCKER_IMAGES_002=traefik:v3.6|850b1b348451|245MB\nDOCKER_IMAGES_003=netbirdio/netbird-server:latest|efa4e50dbc55|303MB\nDOCKER_IMAGES_004=hello-world:latest|5dd0d3e6e255|25.9kB\nDOCKER_VOLUMES_COUNT=2\nDOCKER_VOLUMES_001=netbird_netbird_data|local\nDOCKER_VOLUMES_002=netbird_netbird_traefik_letsencrypt|local\nDOCKER_NETWORKS_COUNT=4\nDOCKER_NETWORKS_001=bridge|bridge|local\nDOCKER_NETWORKS_002=host|host|local\nDOCKER_NETWORKS_003=netbird_netbird|bridge|local\nDOCKER_NETWORKS_004=none|null|local\nDOCKER_COMPOSE_COUNT=3\nDOCKER_COMPOSE_001=netbird-traefik|project=netbird|workdir=/opt/netbird|config=/opt/netbird/docker-compose.yml\nDOCKER_COMPOSE_002=netbird-dashboard|project=netbird|workdir=/opt/netbird|config=/opt/netbird/docker-compose.yml\nDOCKER_COMPOSE_003=netbird-server|project=netbird|workdir=/opt/netbird|config=/opt/netbird/docker-compose.yml\nPODMAN_PRESENT=False\nPIP_COUNT=0\nPIPX_COUNT=0\nNPM_GLOBAL_COUNT=0\nGEM_COUNT=0\nSNAP_COUNT=0\nFLATPAK_COUNT=0\nNGINX_CONFIG_FILE_COUNT=0\nHAPROXY_CONFIG_FILE_COUNT=0\nWIREGUARD_CONFIG_FILE_COUNT=0\nNETBIRD_CONFIG_FILE_COUNT=0\nROLE_MANIFEST_END\nTARGET_END=USA\nTARGET_BEGIN=PITER\nPITER_SSH_RC=0\nROLE_MANIFEST_BEGIN\nHOSTNAME=edge01\nUID=1000\nUSER=edgeadmin\nAPT_MANUAL_COUNT=86\nAPT_MANUAL_001=7zip\nAPT_MANUAL_002=apt-transport-https\nAPT_MANUAL_003=bash\nAPT_MANUAL_004=bash-completion\nAPT_MANUAL_005=beget-agent\nAPT_MANUAL_006=bind9-dnsutils\nAPT_MANUAL_007=binutils\nAPT_MANUAL_008=byobu\nAPT_MANUAL_009=bzip2\nAPT_MANUAL_010=ca-certificates\nAPT_MANUAL_011=certbot\nAPT_MANUAL_012=cloud-guest-utils\nAPT_MANUAL_013=cloud-init\nAPT_MANUAL_014=cloud-init-base\nAPT_MANUAL_015=curl\nAPT_MANUAL_016=dash\nAPT_MANUAL_017=diffutils\nAPT_MANUAL_018=eatmydata\nAPT_MANUAL_019=fail2ban\nAPT_MANUAL_020=fdisk\nAPT_MANUAL_021=findutils\nAPT_MANUAL_022=gdisk\nAPT_MANUAL_023=git\nAPT_MANUAL_024=gnupg2\nAPT_MANUAL_025=grep\nAPT_MANUAL_026=grub-pc\nAPT_MANUAL_027=gzip\nAPT_MANUAL_028=haproxy\nAPT_MANUAL_029=hostname\nAPT_MANUAL_030=htop\nAPT_MANUAL_031=ifupdown\nAPT_MANUAL_032=init\nAPT_MANUAL_033=ipset\nAPT_MANUAL_034=jq\nAPT_MANUAL_035=libeatmydata1\nAPT_MANUAL_036=libjs-sphinxdoc\nAPT_MANUAL_037=libwrap0\nAPT_MANUAL_038=linux-virtual\nAPT_MANUAL_039=mtr-tiny\nAPT_MANUAL_040=nano\nAPT_MANUAL_041=ncdu\nAPT_MANUAL_042=ncurses-base\nAPT_MANUAL_043=ncurses-bin\nAPT_MANUAL_044=ncurses-term\nAPT_MANUAL_045=net-tools\nAPT_MANUAL_046=network-manager\nAPT_MANUAL_047=nginx\nAPT_MANUAL_048=ntpsec-ntpdate\nAPT_MANUAL_049=openssh-server\nAPT_MANUAL_050=openssh-sftp-server\nAPT_MANUAL_051=patch\nAPT_MANUAL_052=psmisc\nAPT_MANUAL_053=python-babel-localedata\nAPT_MANUAL_054=python3-apt\nAPT_MANUAL_055=python3-babel\nAPT_MANUAL_056=python3-debian\nAPT_MANUAL_057=python3-jinja2\nAPT_MANUAL_058=python3-json-pointer\nAPT_MANUAL_059=python3-jsonpatch\nAPT_MANUAL_060=python3-jsonschema\nAPT_MANUAL_061=python3-jsonschema-specifications\nAPT_MANUAL_062=python3-markupsafe\nAPT_MANUAL_063=python3-passlib\nAPT_MANUAL_064=python3-pip\nAPT_MANUAL_065=python3-referencing\nAPT_MANUAL_066=python3-requests\nAPT_MANUAL_067=python3-rpds-py\nAPT_MANUAL_068=python3-serial\nAPT_MANUAL_069=python3-simplejson\nAPT_MANUAL_070=python3-urllib3\nAPT_MANUAL_071=shim-signed\nAPT_MANUAL_072=software-properties-common\nAPT_MANUAL_073=ssh-import-id\nAPT_MANUAL_074=sysstat\nAPT_MANUAL_075=tcpdump\nAPT_MANUAL_076=tmux\nAPT_MANUAL_077=ubuntu-minimal\nAPT_MANUAL_078=ubuntu-server\nAPT_MANUAL_079=ubuntu-standard\nAPT_MANUAL_080=unattended-upgrades\nAPT_MANUAL_081=unzip\nAPT_MANUAL_082=util-linux\nAPT_MANUAL_083=vim\nAPT_MANUAL_084=wget\nAPT_MANUAL_085=wireguard-tools\nAPT_MANUAL_086=zip\nENABLED_UNIT_COUNT=85\nENABLED_UNIT_001=apport-autoreport.path enabled enabled\nENABLED_UNIT_002=tpm-udev.path enabled enabled\nENABLED_UNIT_003=apparmor.service enabled enabled\nENABLED_UNIT_004=apport.service enabled enabled\nENABLED_UNIT_005=beget-agent.service enabled enabled\nENABLED_UNIT_006=blk-availability.service enabled enabled\nENABLED_UNIT_007=chrony.service enabled enabled\nENABLED_UNIT_008=cloud-config.service enabled enabled\nENABLED_UNIT_009=cloud-final.service enabled enabled\nENABLED_UNIT_010=cloud-init-local.service enabled enabled\nENABLED_UNIT_011=cloud-init-main.service enabled enabled\nENABLED_UNIT_012=cloud-init-network.service enabled enabled\nENABLED_UNIT_013=console-setup.service enabled enabled\nENABLED_UNIT_014=cron.service enabled enabled\nENABLED_UNIT_015=dmesg.service enabled enabled\nENABLED_UNIT_016=e2scrub_reap.service enabled enabled\nENABLED_UNIT_017=fail2ban.service enabled enabled\nENABLED_UNIT_018=finalrd.service enabled enabled\nENABLED_UNIT_019=getty@.service enabled enabled\nENABLED_UNIT_020=grub-initrd-fallback.service enabled enabled\nENABLED_UNIT_021=grub2-common.service enabled enabled\nENABLED_UNIT_022=keyboard-setup.service enabled enabled\nENABLED_UNIT_023=lvm2-monitor.service enabled enabled\nENABLED_UNIT_024=ModemManager.service enabled enabled\nENABLED_UNIT_025=multipathd.service enabled enabled\nENABLED_UNIT_026=netplan-configure.service enabled enabled\nENABLED_UNIT_027=networkd-dispatcher.service enabled enabled\nENABLED_UNIT_028=networking.service enabled enabled\nENABLED_UNIT_029=NetworkManager-dispatcher.service enabled enabled\nENABLED_UNIT_030=NetworkManager-wait-online.service enabled enabled\nENABLED_UNIT_031=NetworkManager.service enabled enabled\nENABLED_UNIT_032=nftables.service enabled enabled\nENABLED_UNIT_033=nginx.service enabled enabled\nENABLED_UNIT_034=open-iscsi.service enabled enabled\nENABLED_UNIT_035=open-vm-tools.service enabled enabled\nENABLED_UNIT_036=rsyslog.service enabled enabled\nENABLED_UNIT_037=secureboot-db.service enabled enabled\nENABLED_UNIT_038=setvtrgb.service enabled enabled\nENABLED_UNIT_039=sshd-keygen.service enabled enabled\nENABLED_UNIT_040=sysstat.service enabled enabled\nENABLED_UNIT_041=systemd-pstore.service enabled enabled\nENABLED_UNIT_042=systemd-resolved.service enabled enabled\nENABLED_UNIT_043=ua-reboot-cmds.service enabled enabled\nENABLED_UNIT_044=ubuntu-advantage.service enabled enabled\nENABLED_UNIT_045=udisks2.service enabled enabled\nENABLED_UNIT_046=ufw.service enabled enabled\nENABLED_UNIT_047=unattended-upgrades.service enabled enabled\nENABLED_UNIT_048=vgauth.service enabled enabled\nENABLED_UNIT_049=system-xfs_scrub.slice enabled enabled\nENABLED_UNIT_050=apport-forward.socket enabled enabled\nENABLED_UNIT_051=cloud-init-hotplugd.socket enabled enabled\nENABLED_UNIT_052=dm-event.socket enabled enabled\nENABLED_UNIT_053=iscsid.socket enabled enabled\nENABLED_UNIT_054=lvm2-lvmpolld.socket enabled enabled\nENABLED_UNIT_055=lxd-installer.socket enabled enabled\nENABLED_UNIT_056=polkit-agent-helper.socket enabled enabled\nENABLED_UNIT_057=ssh.socket enabled enabled\nENABLED_UNIT_058=systemd-resolved-monitor.socket enabled enabled\nENABLED_UNIT_059=systemd-resolved-varlink.socket enabled enabled\nENABLED_UNIT_060=uuidd.socket enabled enabled\nENABLED_UNIT_061=remote-fs.target enabled enabled\nENABLED_UNIT_062=apport-autoreport.timer enabled enabled\nENABLED_UNIT_063=apt-daily-upgrade.timer enabled enabled\nENABLED_UNIT_064=apt-daily.timer enabled enabled\nENABLED_UNIT_065=certbot.timer enabled enabled\nENABLED_UNIT_066=dpkg-db-backup.timer enabled enabled\nENABLED_UNIT_067=e2scrub_all.timer enabled enabled\nENABLED_UNIT_068=fstrim.timer enabled enabled\nENABLED_UNIT_069=fwupd-refresh.timer enabled enabled\nENABLED_UNIT_070=homelab-gitea-publisher-v3.timer enabled enabled\nENABLED_UNIT_071=homelab-oai-searchbot-observer.timer enabled enabled\nENABLED_UNIT_072=homelab-oai-searchbot-ranges.timer enabled enabled\nENABLED_UNIT_073=logrotate.timer enabled enabled\nENABLED_UNIT_074=man-db.timer enabled enabled\nENABLED_UNIT_075=mdcheck_continue.timer enabled enabled\nENABLED_UNIT_076=mdcheck_start.timer enabled enabled\nENABLED_UNIT_077=mdmonitor-oneshot.timer enabled enabled\nENABLED_UNIT_078=motd-news.timer enabled enabled\nENABLED_UNIT_079=sysstat-collect.timer enabled enabled\nENABLED_UNIT_080=sysstat-rotate.timer enabled enabled\nENABLED_UNIT_081=sysstat-summary.timer enabled enabled\nENABLED_UNIT_082=ua-timer.timer enabled enabled\nENABLED_UNIT_083=update-notifier-download.timer enabled enabled\nENABLED_UNIT_084=update-notifier-motd.timer enabled enabled\nENABLED_UNIT_085=xfs_scrub_all.timer enabled enabled\nRUNNING_SERVICE_COUNT=22\nRUNNING_SERVICE_001=beget-agent.service loaded active running Beget VPS guest agent\nRUNNING_SERVICE_002=chrony.service loaded active running chrony, an NTP client/server\nRUNNING_SERVICE_003=cron.service loaded active running Regular background program processing daemon\nRUNNING_SERVICE_004=dbus.service loaded active running D-Bus System Message Bus\nRUNNING_SERVICE_005=fail2ban.service loaded active running Fail2Ban Service\nRUNNING_SERVICE_006=getty@tty1.service loaded active running Getty on tty1\nRUNNING_SERVICE_007=ModemManager.service loaded active running Modem Manager\nRUNNING_SERVICE_008=multipathd.service loaded active running Device-Mapper Multipath Device Controller\nRUNNING_SERVICE_009=networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd\nRUNNING_SERVICE_010=NetworkManager.service loaded active running Network Manager\nRUNNING_SERVICE_011=nginx.service loaded active running A high performance web server and a reverse proxy server\nRUNNING_SERVICE_012=polkit.service loaded active running Authorization Manager\nRUNNING_SERVICE_013=rsyslog.service loaded active running System Logging Service\nRUNNING_SERVICE_014=serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0\nRUNNING_SERVICE_015=ssh.service loaded active running OpenBSD Secure Shell server\nRUNNING_SERVICE_016=systemd-journald.service loaded active running Journal Service\nRUNNING_SERVICE_017=systemd-logind.service loaded active running User Login Management\nRUNNING_SERVICE_018=systemd-resolved.service loaded active running Network Name Resolution\nRUNNING_SERVICE_019=systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files\nRUNNING_SERVICE_020=udisks2.service loaded active running Disk Manager\nRUNNING_SERVICE_021=unattended-upgrades.service loaded active running Unattended Upgrades Shutdown\nRUNNING_SERVICE_022=user@1000.service loaded active running User Manager for UID 1000\nCUSTOM_UNIT_COUNT=113\nCUSTOM_UNIT_001_BEGIN\nPATH=/etc/systemd/system/chronyd.service\nSHA256=a13aa0e542b57cc75a0b87f2b15785f53e4e86f03dc3db7b572ea056f31c2218\nDescription=chrony, an NTP client/server\nUser=_chrony\nExecStart=!/usr/lib/systemd/scripts/chronyd-starter.sh -n\nCUSTOM_UNIT_001_END\nCUSTOM_UNIT_002_BEGIN\nPATH=/etc/systemd/system/cloud-config.target.wants/cloud-init-hotplugd.socket\nSHA256=1810b1c81f31103442b594cd117fe65bbe72730d89e1d5150954cc948d794fa8\nDescription=cloud-init hotplug hook socket\nCUSTOM_UNIT_002_END\nCUSTOM_UNIT_003_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-config.service\nSHA256=6cd84a65fdf53697f552fae5527b38f10863372aa58bfcbf9aa15b87ebc20e43\nDescription=Cloud-init: Config Stage\nExecStart=sh -c\nCUSTOM_UNIT_003_END\nCUSTOM_UNIT_004_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-final.service\nSHA256=3c2de66f60b26e3482d441f1580068fd2019ee2623fe648ca9a4f5d8e406ce14\nDescription=Cloud-init: Final Stage\nExecStart=sh -c\nCUSTOM_UNIT_004_END\nCUSTOM_UNIT_005_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service\nSHA256=36130771749618b30dac345ad344b20e7ba58ce8ca924e2c4829e8d6e652096d\nDescription=Cloud-init: Local Stage (pre-network)\nExecStart=sh -c\nCUSTOM_UNIT_005_END\nCUSTOM_UNIT_006_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service\nSHA256=d27b6d41b68370bbc8572f9bd5c311803fa8a3c1491a4297fd48f2fa4fc929d0\nDescription=Cloud-init: Single Process\nExecStart=/usr/bin/cloud-init --all-stages\nCUSTOM_UNIT_006_END\nCUSTOM_UNIT_007_BEGIN\nPATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service\nSHA256=b7fd53cb5e503397266f24fc64a68c107f87160892587101e2ce37200120d6bb\nDescription=Cloud-init: Network Stage\nExecStart=sh -c\nCUSTOM_UNIT_007_END\nCUSTOM_UNIT_008_BEGIN\nPATH=/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service\nSHA256=7440e1296cf610dd3847641c2bc93cadf210b4021964d07b7a59b6cf3d5aee06\nDescription=Modem Manager\nExecStart=/usr/sbin/ModemManager\nUser=root\nCUSTOM_UNIT_008_END\nCUSTOM_UNIT_009_BEGIN\nPATH=/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service\nSHA256=7c3f412c01d22660e82f9507ed70dab3a90b863094b46c3a9a715eecb92ba8ac\nDescription=Network Manager Script Dispatcher Service\nExecStart=/usr/libexec/nm-dispatcher\nCUSTOM_UNIT_009_END\nCUSTOM_UNIT_010_BEGIN\nPATH=/etc/systemd/system/dbus-org.freedesktop.resolve1.service\nSHA256=6e66096d01f2b41865f2ee25334d595316d425ea433f03e5eef9870676f8b58a\nDescription=Network Name Resolution\nExecStart=/usr/lib/systemd/systemd-resolved\nUser=systemd-resolve\nCUSTOM_UNIT_010_END\nCUSTOM_UNIT_011_BEGIN\nPATH=/etc/systemd/system/emergency.target.wants/grub-initrd-fallback.service\nSHA256=1d01ee1b57f8301b01b1aa9cb10a0116608827a3e0c27a817b46024e8395d807\nDescription=GRUB failed boot detection\nExecStart=/usr/bin/grub-editenv /boot/grub/grubenv\nExecStart=/usr/bin/grub-editenv /boot/grub/grubenv\nCUSTOM_UNIT_011_END\nCUSTOM_UNIT_012_BEGIN\nPATH=/etc/systemd/system/getty.target.wants/getty@tty1.service\nSHA256=988eaaf6676a10fa3d34548eb25bd9e73c6544ee0674bf0b374f56a9019b5d1e\nDescription=Getty on %I\nExecStart=-/usr/sbin/agetty --noreset\nCUSTOM_UNIT_012_END\nCUSTOM_UNIT_013_BEGIN\nPATH=/etc/systemd/system/graphical.target.wants/udisks2.service\nSHA256=edbe6a50b0f8bdbd29f01fba10e96333c3523c2c1cbb6d91c1326da99b2ff3c2\nDescription=Disk Manager\nExecStart=/usr/libexec/udisks2/udisksd\nCUSTOM_UNIT_013_END\nCUSTOM_UNIT_014_BEGIN\nPATH=/etc/systemd/system/hibernate.target.wants/grub2-common.service\nSHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a\nDescription=Record successful boot for GRUB\nExecStartPre=/bin/sh -c\nExecStart=grub-editenv /boot/grub/grubenv\nExecStartPost=/bin/sh -c\nCUSTOM_UNIT_014_END\nCUSTOM_UNIT_015_BEGIN\nPATH=/etc/systemd/system/homelab-gitea-publisher-v3.service\nSHA256=09c0cf0dde75a066a526d656406bc1fd2abeeba095ebad9883ad996686e86b83\nDescription=Homelab Gitea EDGE Publisher V3\nExecStart=/usr/local/sbin/homelab-gitea-publisher-v3 --base\nUser=root\nGroup=root\nCUSTOM_UNIT_015_END\nCUSTOM_UNIT_016_BEGIN\nPATH=/etc/systemd/system/homelab-gitea-publisher-v3.timer\nSHA256=59bcebd5bcbdeb60d6b1130c4e927210693eb20718cafda996751e136db8804b\nDescription=Refresh Homelab Gitea EDGE Publisher V3 every 5 minutes\nCUSTOM_UNIT_016_END\nCUSTOM_UNIT_017_BEGIN\nPATH=/etc/systemd/system/homelab-gitea-root-snapshot-v2.service\nSHA256=1f3292d63fcc6849387976ba45de26f7ec3e6325e3a13873540795e3d83b7051\nDescription=Homelab Gitea one-root live read-only snapshot v2\nExecStart=/usr/local/sbin/homelab-gitea-root-snapshot-v2\nUser=root\nGroup=root\nCUSTOM_UNIT_017_END\nCUSTOM_UNIT_018_BEGIN\nPATH=/etc/systemd/system/homelab-gitea-root-snapshot-v2.timer\nSHA256=c08254f384c9b37c1b29ba0223e426c613cf5130edd83d5d9e8149b81ed4f348\nDescription=Refresh Homelab Gitea one-root snapshot every 5 minutes\nCUSTOM_UNIT_018_END\nCUSTOM_UNIT_019_BEGIN\nPATH=/etc/systemd/system/homelab-oai-searchbot-observer.service\nSHA256=4094b80b2d8972dd4f3ae52f7848c3eddd6b65c9e1b537c257c9d9ab01e8301f\nDescription=Observe verified OpenAI SearchBot requests to git-read\nExecStart=/usr/local/libexec/homelab-oai-searchbot-observer\nUser=root\nGroup=root\nCUSTOM_UNIT_019_END\nCUSTOM_UNIT_020_BEGIN\nPATH=/etc/systemd/system/homelab-oai-searchbot-observer.timer\nSHA256=facc817f6044eff6f5712def5e9629121e233a0b986acbce0bf8f26f3f394ee1\nDescription=Observe OpenAI SearchBot requests every 15 minutes\nCUSTOM_UNIT_020_END\nCUSTOM_UNIT_021_BEGIN\nPATH=/etc/systemd/system/homelab-oai-searchbot-ranges.service\nSHA256=bdeefb20da2e39e5b207a1b0e793f7305cd58ad604560038b9c685ee2a5aef45\nDescription=Refresh official OpenAI SearchBot ranges\nExecStart=/usr/local/libexec/homelab-oai-searchbot-ranges\nUser=root\nGroup=root\nCUSTOM_UNIT_021_END\nCUSTOM_UNIT_022_BEGIN\nPATH=/etc/systemd/system/homelab-oai-searchbot-ranges.timer\nSHA256=eab3f2223c4d0fed2365fee42c2743d5fd3f6d3a776610548d531cbe25c360f6\nDescription=Refresh official OpenAI SearchBot ranges daily\nCUSTOM_UNIT_022_END\nCUSTOM_UNIT_023_BEGIN\nPATH=/etc/systemd/system/hybrid-sleep.target.wants/grub2-common.service\nSHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a\nDescription=Record successful boot for GRUB\nExecStartPre=/bin/sh -c\nExecStart=grub-editenv /boot/grub/grubenv\nExecStartPost=/bin/sh -c\nCUSTOM_UNIT_023_END\nCUSTOM_UNIT_024_BEGIN\nPATH=/etc/systemd/system/iscsi.service\nSHA256=3da09513f8fa765eca49e2612c0bbf28b819e5e852f098992d20eaefe74a571e\nDescription=Login to default iSCSI targets\nExecStart=/usr/sbin/iscsiadm -m\nExecStart=/usr/lib/open-iscsi/activate-storage.sh\nExecStop=/usr/lib/open-iscsi/umountiscsi.sh\nExecStop=/bin/sync\nExecStop=/usr/lib/open-iscsi/logout-all.sh\nCUSTOM_UNIT_024_END\nCUSTOM_UNIT_025_BEGIN\nPATH=/etc/systemd/system/mdmonitor.service.wants/mdcheck_continue.timer\nSHA256=ac74139084b5dad3c222bed6d5845397a3e11763a2788a39211fc61da0dfd6be\nDescription=MD array scrubbing - continuation\nCUSTOM_UNIT_025_END\nCUSTOM_UNIT_026_BEGIN\nPATH=/etc/systemd/system/mdmonitor.service.wants/mdcheck_start.timer\nSHA256=7db685a2674e68167851e90b12db1d744db50e796a7f538eca21cacc69f379ed\nDescription=MD array scrubbing\nCUSTOM_UNIT_026_END\nCUSTOM_UNIT_027_BEGIN\nPATH=/etc/systemd/system/mdmonitor.service.wants/mdmonitor-oneshot.timer\nSHA256=f5826525ccab035198e0c266a588ded548a70b05ca10a983bc51279228faa9e2\nDescription=Reminder for degraded MD arrays\nCUSTOM_UNIT_027_END\nCUSTOM_UNIT_028_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/ModemManager.service\nSHA256=7440e1296cf610dd3847641c2bc93cadf210b4021964d07b7a59b6cf3d5aee06\nDescription=Modem Manager\nExecStart=/usr/sbin/ModemManager\nUser=root\nCUSTOM_UNIT_028_END\nCUSTOM_UNIT_029_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/NetworkManager.service\nSHA256=0234192800f45e2dadad8aa896a6f6b40024fd248615371ce889772a63268edd\nDescription=Network Manager\nExecStart=/usr/sbin/NetworkManager --no-daemon\nCUSTOM_UNIT_029_END\nCUSTOM_UNIT_030_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/apport.service\nSHA256=c2026a8f813776108e2d91629f51ff0cf5bf013fac03314164cabcda6c9698aa\nDescription=automatic crash report generation\nExecStart=/usr/share/apport/apport --start\nExecStop=/usr/share/apport/apport --stop\nCUSTOM_UNIT_030_END\nCUSTOM_UNIT_031_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/beget-agent.service\nSHA256=014d08e0377db2fcaa3b8d6fe0c1c0fa15a29ec2b99ab2cc15f77d130b22c10c\nDescription=Beget VPS guest agent\nExecStart=/usr/sbin/beget-agent\nCUSTOM_UNIT_031_END\nCUSTOM_UNIT_032_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/chrony.service\nSHA256=a13aa0e542b57cc75a0b87f2b15785f53e4e86f03dc3db7b572ea056f31c2218\nDescription=chrony, an NTP client/server\nUser=_chrony\nExecStart=!/usr/lib/systemd/scripts/chronyd-starter.sh -n\nCUSTOM_UNIT_032_END\nCUSTOM_UNIT_033_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/console-setup.service\nSHA256=2e7a84c20b1dd1773d906c3684e96c6c5356eefed1a00b3982899f7ab63b4220\nDescription=Set console font and keymap\nExecStart=/lib/console-setup/console-setup.sh\nCUSTOM_UNIT_033_END\nCUSTOM_UNIT_034_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/cron.service\nSHA256=bbcd656457d22e12d8983ed0c253b5bd8cc6b12308fd16d9324400040de68e6f\nDescription=Regular background program processing daemon\nExecStart=/usr/sbin/cron -f\nCUSTOM_UNIT_034_END\nCUSTOM_UNIT_035_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/dmesg.service\nSHA256=9a9364d95eef682c52aa385851924ef5695625d7e93c7ee97f377e62e8133673\nDescription=Save initial kernel messages after boot\nExecStartPre=-/usr/bin/savelog -m640\nExecStart=/bin/journalctl --boot\nExecStartPost=/bin/chgrp adm\nExecStartPost=/bin/chmod 0640\nCUSTOM_UNIT_035_END\nCUSTOM_UNIT_036_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/e2scrub_reap.service\nSHA256=35405e2a877fe17ccf05c96db2e037a29605f8719ba3e4b2f1670c721aa7b5aa\nDescription=Remove Stale Online ext4 Metadata Check Snapshots\nWorkingDirectory=/\nUser=root\nExecStart=/sbin/e2scrub_all -A\nCUSTOM_UNIT_036_END\nCUSTOM_UNIT_037_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/fail2ban.service\nSHA256=1ce60983492b5059aea6ae74ac24b118ce00a18b40c3677d56ce3eba02551119\nDescription=Fail2Ban Service\nExecStart=/usr/bin/fail2ban-server -xf\nExecStop=/usr/bin/fail2ban-client stop\nCUSTOM_UNIT_037_END\nCUSTOM_UNIT_038_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/grub-initrd-fallback.service\nSHA256=1d01ee1b57f8301b01b1aa9cb10a0116608827a3e0c27a817b46024e8395d807\nDescription=GRUB failed boot detection\nExecStart=/usr/bin/grub-editenv /boot/grub/grubenv\nExecStart=/usr/bin/grub-editenv /boot/grub/grubenv\nCUSTOM_UNIT_038_END\nCUSTOM_UNIT_039_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/grub2-common.service\nSHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a\nDescription=Record successful boot for GRUB\nExecStartPre=/bin/sh -c\nExecStart=grub-editenv /boot/grub/grubenv\nExecStartPost=/bin/sh -c\nCUSTOM_UNIT_039_END\nCUSTOM_UNIT_040_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/lxd-installer.socket\nSHA256=74c0bb0414ca365a389d4f69908e0ab43166452ff55bdc7d9cdd1becca56611e\nDescription=Helper to install lxd snap on demand\nCUSTOM_UNIT_040_END\nCUSTOM_UNIT_041_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/networkd-dispatcher.service\nSHA256=c5b2f43bfbb0f22bc6010dec59c2b450bc10483513ea972fb7d4ef666a2e9859\nDescription=Dispatcher daemon for systemd-networkd\nExecStart=/usr/bin/networkd-dispatcher $networkd_dispatcher_args\nCUSTOM_UNIT_041_END\nCUSTOM_UNIT_042_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/networking.service\nSHA256=d7f33aaeeda2baf387cab680dfe3453d6140e55da055adcd79b436c365339654\nDescription=Raise network interfaces\nExecStart=/usr/sbin/ifup -a\nExecStart=-/bin/sh -c\nExecStop=/usr/sbin/ifdown -a\nCUSTOM_UNIT_042_END\nCUSTOM_UNIT_043_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/nginx.service\nSHA256=6c759c229d4dacf65c1f98c1733646f8b979d3e75e13a98bfbcfe26f8a2f793c\nDescription=A high performance web server and a reverse proxy server\nExecStartPre=/usr/sbin/nginx -t\nExecStart=/usr/sbin/nginx -g\nExecStop=-/sbin/start-stop-daemon --quiet\nCUSTOM_UNIT_043_END\nCUSTOM_UNIT_044_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/open-vm-tools.service\nSHA256=8eeef9026c706c3ccca5a0f28bfcdad6fe1fc3fb787cdda17648360743a1b599\nDescription=Service for virtual machines hosted on VMware\nExecStart=/usr/bin/vmtoolsd\nCUSTOM_UNIT_044_END\nCUSTOM_UNIT_045_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/rsyslog.service\nSHA256=2728f43f3e86d6eb2480d6cbc38a977e185b369c3733351459f40a9fc7581b2c\nDescription=System Logging Service\nExecStartPre=/usr/lib/rsyslog/reload-apparmor-profile\nExecStart=/usr/sbin/rsyslogd -n\nCUSTOM_UNIT_045_END\nCUSTOM_UNIT_046_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/secureboot-db.service\nSHA256=40df52764374d46a3c084a6b161918dbfe82ef6cf4da401fd4f20ea7e45d7379\nDescription=Secure Boot updates for DB and DBX\nExecStartPre=-/usr/bin/chattr -i\nExecStartPre=-/usr/bin/chattr -i\nExecStartPre=-/usr/bin/chattr -i\nExecStart=/usr/bin/sbkeysync --no-default-keystores\nCUSTOM_UNIT_046_END\nCUSTOM_UNIT_047_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/sysstat.service\nSHA256=38d5ddb7705e2b4e6b9b4eafcd7e68cf3ebdc02826c9df64a9acc1fe4fbca685\nDescription=Resets System Activity Logs\nUser=root\nExecStart=/usr/libexec/sysstat/sa1 --boot\nCUSTOM_UNIT_047_END\nCUSTOM_UNIT_048_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/systemd-networkd.service\nSHA256=95b2e19b3c8a44d2fdcb03cbd3e9248fab087aeb85deb2db53c52026a3371af0\nDescription=Network Management\nExecStart=/usr/lib/systemd/systemd-networkd\nUser=systemd-network\nCUSTOM_UNIT_048_END\nCUSTOM_UNIT_049_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/ua-reboot-cmds.service\nSHA256=2a45a02c40999e98f57e84ebf001b355c083e2d5e41faa3a2efbce512aad6af4\nDescription=Ubuntu Pro reboot cmds\nExecStart=/usr/bin/python3 /usr/lib/ubuntu-advantage/reboot_cmds.py\nCUSTOM_UNIT_049_END\nCUSTOM_UNIT_050_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/ubuntu-advantage.service\nSHA256=30708eea0adfbd42d9122218e59318552ba7392077bc1763df0207be595bdd20\nDescription=Ubuntu Pro Background Auto Attach\nExecStart=/usr/bin/python3 /usr/lib/ubuntu-advantage/daemon.py\nWorkingDirectory=/var/lib/ubuntu-advantage/\nCUSTOM_UNIT_050_END\nCUSTOM_UNIT_051_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/ufw.service\nSHA256=efece4d41e747407ed7a02d217420cef9aa60ee84326a145de528400dc63419d\nDescription=Uncomplicated firewall\nExecStart=/usr/lib/ufw/ufw-init start\nExecStop=/usr/lib/ufw/ufw-init stop\nCUSTOM_UNIT_051_END\nCUSTOM_UNIT_052_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/unattended-upgrades.service\nSHA256=642331d3861bcc5e41342b9b93ad96b1852447d5b10533b9b2988531cfd2860a\nDescription=Unattended Upgrades Shutdown\nExecStart=/usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal\nCUSTOM_UNIT_052_END\nCUSTOM_UNIT_053_BEGIN\nPATH=/etc/systemd/system/multi-user.target.wants/wg-quick@wg-home.service\nSHA256=2a7a894a2f396894d061f260f8373809ade98bb78d6d00c44d3ba305c12152cd\nDescription=WireGuard via wg-quick(8) for %I\nExecStart=/usr/bin/wg-quick up\nExecStop=/usr/bin/wg-quick down\nCUSTOM_UNIT_053_END\nCUSTOM_UNIT_054_BEGIN\nPATH=/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service\nSHA256=8a816455b4711821c740bfa676e14b5275dde2d8897bfc96b0c93557df1cb7f6\nDescription=Network Manager Wait Online\nExecStart=/usr/bin/nm-online -s\nCUSTOM_UNIT_054_END\nCUSTOM_UNIT_055_BEGIN\nPATH=/etc/systemd/system/network-online.target.wants/networking.service\nSHA256=d7f33aaeeda2baf387cab680dfe3453d6140e55da055adcd79b436c365339654\nDescription=Raise network interfaces\nExecStart=/usr/sbin/ifup -a\nExecStart=-/bin/sh -c\nExecStop=/usr/sbin/ifdown -a\nCUSTOM_UNIT_055_END\nCUSTOM_UNIT_056_BEGIN\nPATH=/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service\nSHA256=486f5c44545130238fa689d1def7fb8b836ffef2aa98819f7df474dc1ba6c0f0\nDescription=Wait for Network to be Online\nExecStart=/usr/lib/systemd/systemd-networkd-wait-online\nCUSTOM_UNIT_056_END\nCUSTOM_UNIT_057_BEGIN\nPATH=/etc/systemd/system/open-vm-tools.service.requires/vgauth.service\nSHA256=7b7e67025ffa1422406e6284263dc4cfee7336b5c01ef24db23f487bfa4dc9b0\nDescription=Authentication service for virtual machines hosted on VMware\nExecStart=/usr/bin/VGAuthService\nCUSTOM_UNIT_057_END\nCUSTOM_UNIT_058_BEGIN\nPATH=/etc/systemd/system/paths.target.wants/apport-autoreport.path\nSHA256=22df838805217bd3c7381e87a8e7aff7db11eec6977b75a892db1e6dc42b4e8a\nDescription=Process error reports when automatic reporting is enabled (file watch)\nCUSTOM_UNIT_058_END\nCUSTOM_UNIT_059_BEGIN\nPATH=/etc/systemd/system/paths.target.wants/tpm-udev.path\nSHA256=a6b8053ea748341299c318274f94b23afb3f018529c1ac2721e59147328442b4\nDescription=Handle dynamically added tpm devices\nCUSTOM_UNIT_059_END\nCUSTOM_UNIT_060_BEGIN\nPATH=/etc/systemd/system/rescue.target.wants/grub-initrd-fallback.service\nSHA256=1d01ee1b57f8301b01b1aa9cb10a0116608827a3e0c27a817b46024e8395d807\nDescription=GRUB failed boot detection\nExecStart=/usr/bin/grub-editenv /boot/grub/grubenv\nExecStart=/usr/bin/grub-editenv /boot/grub/grubenv\nCUSTOM_UNIT_060_END\nCUSTOM_UNIT_061_BEGIN\nPATH=/etc/systemd/system/sleep.target.wants/grub-initrd-fallback.service\nSHA256=1d01ee1b57f8301b01b1aa9cb10a0116608827a3e0c27a817b46024e8395d807\nDescription=GRUB failed boot detection\nExecStart=/usr/bin/grub-editenv /boot/grub/grubenv\nExecStart=/usr/bin/grub-editenv /boot/grub/grubenv\nCUSTOM_UNIT_061_END\nCUSTOM_UNIT_062_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/apport-forward.socket\nSHA256=d3b7d68269d8a0d051e1ab63680abdfffb1b4ad12fb503997fb6da4ceaf1c083\nDescription=Unix socket for apport crash forwarding\nCUSTOM_UNIT_062_END\nCUSTOM_UNIT_063_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/dm-event.socket\nSHA256=4c555dfe91f8b8807ab5d16d0398c1494be6e2a737385c02bd0913485afb8769\nDescription=Device-mapper event daemon FIFOs\nCUSTOM_UNIT_063_END\nCUSTOM_UNIT_064_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/iscsid.socket\nSHA256=e3eeff482cdd196045015e49ba823781a61f41fb96a9a6be5b25d23f519ff75a\nDescription=Open-iSCSI iscsid Socket\nCUSTOM_UNIT_064_END\nCUSTOM_UNIT_065_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/polkit-agent-helper.socket\nSHA256=26bf0e77112dc5e890d3de0ad783a39e806d117c05eaecd40bbaf7cb062086a9\nDescription=Authorization Manager Agent Helper\nCUSTOM_UNIT_065_END\nCUSTOM_UNIT_066_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/ssh.socket\nSHA256=a79db2fe39bb1b452c260370e7a1ba6d13bed16fad0df8f18177802760b3d196\nDescription=OpenBSD Secure Shell server socket\nCUSTOM_UNIT_066_END\nCUSTOM_UNIT_067_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/systemd-networkd.socket\nSHA256=6ed74e30d9fc76faec3b58bfb8b14cc9645089d550ecca30f03909a630ec52ab\nDescription=Network Management Netlink Socket\nCUSTOM_UNIT_067_END\nCUSTOM_UNIT_068_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/systemd-resolved-monitor.socket\nSHA256=3fd777a3c0703fd42453370d57a942733eaa6ca9d1cf0fbe18ceaa5044db5b08\nDescription=Resolve Monitor Varlink Socket\nCUSTOM_UNIT_068_END\nCUSTOM_UNIT_069_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/systemd-resolved-varlink.socket\nSHA256=6aa37d888c12e929b8bc0958e765a4c10735984a4116881adfe2d170ad545bf8\nDescription=Resolve Service Varlink Socket\nCUSTOM_UNIT_069_END\nCUSTOM_UNIT_070_BEGIN\nPATH=/etc/systemd/system/sockets.target.wants/uuidd.socket\nSHA256=21f7cc7b5ffaf73b27f00689e628797a2be947df144b1a0f7ba9356c8d0a4897\nDescription=UUID daemon activation socket\nCUSTOM_UNIT_070_END\nCUSTOM_UNIT_071_BEGIN\nPATH=/etc/systemd/system/ssh.service.requires/ssh.socket\nSHA256=a79db2fe39bb1b452c260370e7a1ba6d13bed16fad0df8f18177802760b3d196\nDescription=OpenBSD Secure Shell server socket\nCUSTOM_UNIT_071_END\nCUSTOM_UNIT_072_BEGIN\nPATH=/etc/systemd/system/ssh.service.wants/sshd-keygen.service\nSHA256=229006e93cdb44d2ee4d8f43bcea346e4566b443455f1fa71aa636505d2e17b0\nDescription=Generate sshd host keys on first boot\nExecStart=ssh-keygen -A\nCUSTOM_UNIT_072_END\nCUSTOM_UNIT_073_BEGIN\nPATH=/etc/systemd/system/ssh.socket.wants/sshd-keygen.service\nSHA256=229006e93cdb44d2ee4d8f43bcea346e4566b443455f1fa71aa636505d2e17b0\nDescription=Generate sshd host keys on first boot\nExecStart=ssh-keygen -A\nCUSTOM_UNIT_073_END\nCUSTOM_UNIT_074_BEGIN\nPATH=/etc/systemd/system/sshd.service.wants/sshd-keygen.service\nSHA256=229006e93cdb44d2ee4d8f43bcea346e4566b443455f1fa71aa636505d2e17b0\nDescription=Generate sshd host keys on first boot\nExecStart=ssh-keygen -A\nCUSTOM_UNIT_074_END\nCUSTOM_UNIT_075_BEGIN\nPATH=/etc/systemd/system/sshd@.service.wants/sshd-keygen.service\nSHA256=229006e93cdb44d2ee4d8f43bcea346e4566b443455f1fa71aa636505d2e17b0\nDescription=Generate sshd host keys on first boot\nExecStart=ssh-keygen -A\nCUSTOM_UNIT_075_END\nCUSTOM_UNIT_076_BEGIN\nPATH=/etc/systemd/system/suspend-then-hibernate.target.wants/grub2-common.service\nSHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a\nDescription=Record successful boot for GRUB\nExecStartPre=/bin/sh -c\nExecStart=grub-editenv /boot/grub/grubenv\nExecStartPost=/bin/sh -c\nCUSTOM_UNIT_076_END\nCUSTOM_UNIT_077_BEGIN\nPATH=/etc/systemd/system/suspend.target.wants/grub2-common.service\nSHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a\nDescription=Record successful boot for GRUB\nExecStartPre=/bin/sh -c\nExecStart=grub-editenv /boot/grub/grubenv\nExecStartPost=/bin/sh -c\nCUSTOM_UNIT_077_END\nCUSTOM_UNIT_078_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/apparmor.service\nSHA256=281b4d583889077bbd52630d128b790a1502bbabe514d81f36ec17187d2084b1\nDescription=Load AppArmor profiles\nExecStart=/lib/apparmor/apparmor.systemd reload\nExecStop=/bin/true\nCUSTOM_UNIT_078_END\nCUSTOM_UNIT_079_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/blk-availability.service\nSHA256=065f84abb2b1ef4881b7191fb061c4b9f88035d5cfe3e26e03ffc8a2a022a1f8\nDescription=Availability of block devices\nExecStart=/usr/bin/true\nExecStop=/usr/sbin/blkdeactivate -u\nCUSTOM_UNIT_079_END\nCUSTOM_UNIT_080_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/finalrd.service\nSHA256=0074df722fd46bb47143f47e0ce4151465cd197040afcdf5153b8531ff3678a8\nDescription=Create final runtime dir for shutdown pivot root\nExecStart=/bin/true\nExecStop=/usr/bin/finalrd\nCUSTOM_UNIT_080_END\nCUSTOM_UNIT_081_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/keyboard-setup.service\nSHA256=7bfae47456a8ccfd36c05494a6ec80256b4b2454fd737892c09e6c3c83b87e73\nDescription=Set the console keyboard layout\nExecStart=/lib/console-setup/keyboard-setup.sh\nCUSTOM_UNIT_081_END\nCUSTOM_UNIT_082_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket\nSHA256=a9c45602d9bc5f14583d7dfb27c3db6d3f07ae99dbc455e59bceaf401d446bce\nDescription=LVM2 poll daemon socket\nCUSTOM_UNIT_082_END\nCUSTOM_UNIT_083_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/lvm2-monitor.service\nSHA256=ac67901163a482de3ffb72aca8057d1c23eff341555f0e115fd652b0b7e33086\nDescription=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling\nExecStart=/usr/sbin/lvm vgchange\nExecStop=/usr/sbin/lvm vgchange\nCUSTOM_UNIT_083_END\nCUSTOM_UNIT_084_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/multipathd.service\nSHA256=38799340a0fcc78afbf534f3343943e595795967540ed3827873f560a3c2de7b\nDescription=Device-Mapper Multipath Device Controller\nExecStart=/usr/sbin/multipathd -d\nCUSTOM_UNIT_084_END\nCUSTOM_UNIT_085_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/netplan-configure.service\nSHA256=6893fca2c14d53951c73f396f7528b0b1baa9f570ca9cf099dc1c71df1aa2724\nDescription=Netplan Backend Configuration\nExecStart=/usr/libexec/netplan/configure\nExecStartPost=udevadm control\nExecStartPost=udevadm trigger\nCUSTOM_UNIT_085_END\nCUSTOM_UNIT_086_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/nftables.service\nSHA256=e040269f9010bb805d21a7c7b61af5b06530857967cdb2e2fbcf9a470fdf1810\nDescription=nftables\nExecStart=/usr/sbin/nft -f\nExecStop=/usr/sbin/nft flush\nCUSTOM_UNIT_086_END\nCUSTOM_UNIT_087_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/open-iscsi.service\nSHA256=3da09513f8fa765eca49e2612c0bbf28b819e5e852f098992d20eaefe74a571e\nDescription=Login to default iSCSI targets\nExecStart=/usr/sbin/iscsiadm -m\nExecStart=/usr/lib/open-iscsi/activate-storage.sh\nExecStop=/usr/lib/open-iscsi/umountiscsi.sh\nExecStop=/bin/sync\nExecStop=/usr/lib/open-iscsi/logout-all.sh\nCUSTOM_UNIT_087_END\nCUSTOM_UNIT_088_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/setvtrgb.service\nSHA256=32e83e016d68d15c28f1d55f4c25ab742abe11851fbad32ae615d74c82fa63cc\nDescription=Set console scheme\nExecStart=/sbin/setvtrgb /etc/vtrgb\nCUSTOM_UNIT_088_END\nCUSTOM_UNIT_089_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-pstore.service\nSHA256=6480e7b711ee6f6f4c2a96d0c197f4ee32601743d97de421b4a6d40f73fa851e\nDescription=Platform Persistent Storage Archival\nExecStart=/usr/lib/systemd/systemd-pstore\nCUSTOM_UNIT_089_END\nCUSTOM_UNIT_090_BEGIN\nPATH=/etc/systemd/system/sysinit.target.wants/systemd-resolved.service\nSHA256=6e66096d01f2b41865f2ee25334d595316d425ea433f03e5eef9870676f8b58a\nDescription=Network Name Resolution\nExecStart=/usr/lib/systemd/systemd-resolved\nUser=systemd-resolve\nCUSTOM_UNIT_090_END\nCUSTOM_UNIT_091_BEGIN\nPATH=/etc/systemd/system/syslog.service\nSHA256=2728f43f3e86d6eb2480d6cbc38a977e185b369c3733351459f40a9fc7581b2c\nDescription=System Logging Service\nExecStartPre=/usr/lib/rsyslog/reload-apparmor-profile\nExecStart=/usr/sbin/rsyslogd -n\nCUSTOM_UNIT_091_END\nCUSTOM_UNIT_092_BEGIN\nPATH=/etc/systemd/system/sysstat.service.wants/sysstat-collect.timer\nSHA256=b66aab387fc2046e762ed10482665e8ff2b288b65a7b95cc3a08d06879c4d8b8\nDescription=Run system activity accounting tool every 10 minutes\nCUSTOM_UNIT_092_END\nCUSTOM_UNIT_093_BEGIN\nPATH=/etc/systemd/system/sysstat.service.wants/sysstat-rotate.timer\nSHA256=d952ae6fc1a252ed40c9b054992bd8b18e60b07d6e4b63f2ac36ecbbda481e4a\nDescription=Rotate daily system activity data file at midnight\nCUSTOM_UNIT_093_END\nCUSTOM_UNIT_094_BEGIN\nPATH=/etc/systemd/system/sysstat.service.wants/sysstat-summary.timer\nSHA256=151d08f951267d07fe3fe021e651aefee42bf89577ce0607eaff0550f0af5ca4\nDescription=Generate summary of yesterday's process accounting\nCUSTOM_UNIT_094_END\nCUSTOM_UNIT_095_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/apport-autoreport.timer\nSHA256=72e4700854d2c3babee612f6dda7c1c61caf37878b7adf9663ddbcbbc3e4c9c5\nDescription=Process error reports when automatic reporting is enabled (timer based)\nCUSTOM_UNIT_095_END\nCUSTOM_UNIT_096_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer\nSHA256=b804d7bab8eb41202384f9270e25d5383346ace8b3d7c4f5029c150638d77bcd\nDescription=Daily apt upgrade and clean activities\nCUSTOM_UNIT_096_END\nCUSTOM_UNIT_097_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/apt-daily.timer\nSHA256=0075e974af4e3a94757e219ba50ccb8348d4d1a8834d938f6cc9b1f4fd1db4e5\nDescription=Daily apt download activities\nCUSTOM_UNIT_097_END\nCUSTOM_UNIT_098_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/certbot.timer\nSHA256=c93a2347a3d8a526daf8fda2dd59297fac3f96030872c2fee246a80a0445a40d\nDescription=Run certbot twice daily\nCUSTOM_UNIT_098_END\nCUSTOM_UNIT_099_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/dpkg-db-backup.timer\nSHA256=2e0dd766329313bfabd86b1acbd40069510afcfef3935cdea010168b503afde1\nDescription=Daily dpkg database backup timer\nCUSTOM_UNIT_099_END\nCUSTOM_UNIT_100_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/e2scrub_all.timer\nSHA256=23f20fb6edc9fd54bf4754ef4311f88cba45ba65c6aecfa1885e8fb99531c211\nDescription=Periodic ext4 Online Metadata Check for All Filesystems\nCUSTOM_UNIT_100_END\nCUSTOM_UNIT_101_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/fstrim.timer\nSHA256=699161252ffaa35a0272aae055e51332df694ff4d28c39f8b666d47ecced3397\nDescription=Discard unused filesystem blocks once a week\nCUSTOM_UNIT_101_END\nCUSTOM_UNIT_102_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/fwupd-refresh.timer\nSHA256=8d90cd120f922b7471e47cca994ff3e23860a1975f09af41ca2b22c474f2ad17\nDescription=Refresh fwupd metadata regularly\nCUSTOM_UNIT_102_END\nCUSTOM_UNIT_103_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/homelab-gitea-publisher-v3.timer\nSHA256=59bcebd5bcbdeb60d6b1130c4e927210693eb20718cafda996751e136db8804b\nDescription=Refresh Homelab Gitea EDGE Publisher V3 every 5 minutes\nCUSTOM_UNIT_103_END\nCUSTOM_UNIT_104_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/homelab-oai-searchbot-observer.timer\nSHA256=facc817f6044eff6f5712def5e9629121e233a0b986acbce0bf8f26f3f394ee1\nDescription=Observe OpenAI SearchBot requests every 15 minutes\nCUSTOM_UNIT_104_END\nCUSTOM_UNIT_105_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/homelab-oai-searchbot-ranges.timer\nSHA256=eab3f2223c4d0fed2365fee42c2743d5fd3f6d3a776610548d531cbe25c360f6\nDescription=Refresh official OpenAI SearchBot ranges daily\nCUSTOM_UNIT_105_END\nCUSTOM_UNIT_106_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/logrotate.timer\nSHA256=ba28702033efe64e93052900d3e0f4a30650395050224a6496e65511ce8d5b7b\nDescription=Daily rotation of log files\nCUSTOM_UNIT_106_END\nCUSTOM_UNIT_107_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/man-db.timer\nSHA256=3a3a1ca2ab2c92fe74bae1257e4c666e5dd0a31f441221dfa809bc0cf6540774\nDescription=Daily man-db regeneration\nCUSTOM_UNIT_107_END\nCUSTOM_UNIT_108_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/motd-news.timer\nSHA256=f18dbd0f64344440d7d6e8f1ff302d26fe383921be2a3f13948a8e2e2545ee58\nDescription=Message of the Day\nCUSTOM_UNIT_108_END\nCUSTOM_UNIT_109_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/ua-timer.timer\nSHA256=298cb263192451d1db12687202a5db3d849f2335db8bec0fc8d99a89f5897175\nDescription=Ubuntu Pro Timer for running repeated jobs\nCUSTOM_UNIT_109_END\nCUSTOM_UNIT_110_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/update-notifier-download.timer\nSHA256=78f01ff5be8b01eee4c438d6a7971dcb9f34687cb75bd0d61f754eb5eb42ad22\nDescription=Download data for packages that failed at package install time\nCUSTOM_UNIT_110_END\nCUSTOM_UNIT_111_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/update-notifier-motd.timer\nSHA256=7e5fa1f167ad72cf1bd0421d72ca3017ccb5a62f98d91ec3f9e25efd46c2a9ef\nDescription=Check to see whether there is a new version of Ubuntu available\nCUSTOM_UNIT_111_END\nCUSTOM_UNIT_112_BEGIN\nPATH=/etc/systemd/system/timers.target.wants/xfs_scrub_all.timer\nSHA256=8a1e33239d50f70df49cd9ce50a9699fa1f8d833f8b8e8c06c66e3ba4d4756e8\nDescription=Periodic XFS Online Metadata Check for All Filesystems\nCUSTOM_UNIT_112_END\nCUSTOM_UNIT_113_BEGIN\nPATH=/etc/systemd/system/vmtoolsd.service\nSHA256=8eeef9026c706c3ccca5a0f28bfcdad6fe1fc3fb787cdda17648360743a1b599\nDescription=Service for virtual machines hosted on VMware\nExecStart=/usr/bin/vmtoolsd\nCUSTOM_UNIT_113_END\nUSR_LOCAL_COUNT=6\nUSR_LOCAL_001=/usr/local/bin/rar|634632|6c941d06c6d11d7468f44f7e9607c8bb50d0afcc6ed51c7845eeebbf071f225b\nUSR_LOCAL_002=/usr/local/bin/unrar|351256|0738be881a88ec83d2754e1164f7b07c49b72df165a784ffe663470b2c2cd8a7\nUSR_LOCAL_003=/usr/local/sbin/homelab-gitea-publisher-v3|16841|7d0b73460562f2ac62d902010c1181051abae2eee7dd2a8f2131d1e7a380bd3c\nUSR_LOCAL_004=/usr/local/sbin/homelab-gitea-root-snapshot-v2|5817|f28eeb43cd5c21e3e1955c2f5aca63d1348d59a46c8a4b96a87f02a4326f3c9e\nUSR_LOCAL_005=/usr/local/libexec/homelab-oai-searchbot-observer|7951|d6ef8d8dde34d0c037a135eaa04072ee6f7924820419f41bf5918a9c63cb4dbe\nUSR_LOCAL_006=/usr/local/libexec/homelab-oai-searchbot-ranges|7668|6f95e6cb8170ff4d86d949c5d58a515b31df8e28e9e7faba2e3c73508bb94327\nAPPROOT_OPT=\nAPPROOT_SRV=\nAPPROOT_VAR_WWW=acme/,chat-edge-acme/,git-read/,html/\nAPPROOT_ROOT=\nAPPROOT_HOME=edgeadmin/\nDEPLOYMENT_MARKER_COUNT=0\nCRON_FILE_COUNT=13\nCRON_FILE_001=/etc/cron.d/.placeholder\nCRON_FILE_002=/etc/cron.d/certbot\nCRON_FILE_003=/etc/cron.d/e2scrub_all\nCRON_FILE_004=/etc/cron.hourly/.placeholder\nCRON_FILE_005=/etc/cron.daily/.placeholder\nCRON_FILE_006=/etc/cron.daily/apport\nCRON_FILE_007=/etc/cron.daily/apt-compat\nCRON_FILE_008=/etc/cron.daily/dpkg\nCRON_FILE_009=/etc/cron.daily/logrotate\nCRON_FILE_010=/etc/cron.daily/man-db\nCRON_FILE_011=/etc/cron.weekly/.placeholder\nCRON_FILE_012=/etc/cron.weekly/man-db\nCRON_FILE_013=/etc/cron.monthly/.placeholder\nCRONTAB_CURRENT_COUNT=0\nCRONTAB_ROOT_COUNT=0\nDOCKER_PRESENT=False\nPODMAN_PRESENT=False\nPIP_COUNT=99\nPIP_001=acme==4.0.0\nPIP_002=attrs==25.4.0\nPIP_003=autocommand==2.2.2\nPIP_004=Automat==25.4.16\nPIP_005=babel==2.17.0\nPIP_006=bcc==0.35.0\nPIP_007=bcrypt==5.0.0\nPIP_008=blinker==1.9.0\nPIP_009=boto3==1.40.72\nPIP_010=botocore==1.40.72\nPIP_011=certbot==4.0.0\nPIP_012=certifi==2026.1.4\nPIP_013=chardet==5.2.0\nPIP_014=click==8.1.8\nPIP_015=command-not-found==0.3\nPIP_016=ConfigArgParse==1.7\nPIP_017=configobj==5.0.9\nPIP_018=constantly==23.10.4\nPIP_019=cryptography==46.0.5\nPIP_020=dbus-python==1.4.0\nPIP_021=distro==1.9.0\nPIP_022=distro-info==1.15\nPIP_023=fail2ban==1.1.0\nPIP_024=httplib2==0.22.0\nPIP_025=hyperlink==21.0.0\nPIP_026=idna==3.11\nPIP_027=incremental==24.7.2\nPIP_028=inflect==7.5.0\nPIP_029=jaraco.context==6.0.1\nPIP_030=jaraco.functools==4.1.0\nPIP_031=jaraco.text==4.0.0\nPIP_032=Jinja2==3.1.6\nPIP_033=jmespath==1.0.1\nPIP_034=josepy==2.2.0\nPIP_035=jsonpatch==1.32\nPIP_036=jsonpointer==2.4\nPIP_037=jsonschema==4.19.2\nPIP_038=jsonschema-specifications==2023.12.1\nPIP_039=launchpadlib==2.1.0\nPIP_040=lazr.restfulclient==0.14.6\nPIP_041=lazr.uri==1.0.6\nPIP_042=libpass==1.9.3\nPIP_043=linkify-it-py==2.0.3\nPIP_044=markdown-it-py==3.0.0\nPIP_045=MarkupSafe==3.0.3\nPIP_046=mdurl==0.1.2\nPIP_047=more-itertools==10.8.0\nPIP_048=netaddr==1.3.0\nPIP_049=netifaces==0.11.0\nPIP_050=ntpsec==1.2.3\nPIP_051=oauthlib==3.3.1\nPIP_052=packaging==26.0\nPIP_053=parsedatetime==2.6\nPIP_054=pexpect==4.9.0\nPIP_055=pip==25.1.1\nPIP_056=ptyprocess==0.7.0\nPIP_057=pyasn1==0.6.3\nPIP_058=pyasn1_modules==0.4.1\nPIP_059=pyasyncore==1.0.2\nPIP_060=Pygments==2.19.2\nPIP_061=PyGObject==3.56.2\nPIP_062=PyHamcrest==2.1.0\nPIP_063=pyicu==2.16.1\nPIP_064=pyinotify==0.9.6\nPIP_065=PyJWT==2.10.1\nPIP_066=pyOpenSSL==25.3.0\nPIP_067=pyparsing==3.3.2\nPIP_068=pyRFC3339==2.0.1\nPIP_069=pyserial==3.5\nPIP_070=python-apt==3.1.0+ubuntu1\nPIP_071=python-dateutil==2.9.0\nPIP_072=python-debian==1.0.1+ubuntu2\nPIP_073=python-magic==0.4.27\nPIP_074=pytz==2025.2\nPIP_075=PyYAML==6.0.3\nPIP_076=referencing==0.36.2\nPIP_077=requests==2.32.5\nPIP_078=rich==13.9.4\nPIP_079=rpds-py==0.27.1\nPIP_080=s3transfer==0.14.0\nPIP_081=service-identity==24.2.0\nPIP_082=setuptools==78.1.1\nPIP_083=simplejson==3.20.2\nPIP_084=six==1.17.0\nPIP_085=sos==4.10.2\nPIP_086=ssh-import-id==5.11\nPIP_087=systemd-python==235\nPIP_088=Twisted==25.5.0\nPIP_089=typeguard==4.4.4\nPIP_090=typing_extensions==4.15.0\nPIP_091=ubuntu-pro-client==8001\nPIP_092=uc-micro-py==1.0.3\nPIP_093=ufw==0.36.2\nPIP_094=unattended-upgrades==0.1\nPIP_095=urllib3==2.6.3\nPIP_096=wadllib==2.0.0\nPIP_097=wheel==0.46.3\nPIP_098=zipp==3.23.0\nPIP_099=zope.interface==8.2\nPIPX_COUNT=0\nNPM_GLOBAL_COUNT=0\nGEM_COUNT=0\nSNAP_COUNT=0\nFLATPAK_COUNT=0\nNGINX_CONFIG_FILE_COUNT=47\nNGINX_CONFIG_FILE_001=/etc/nginx/conf.d/00-edge-common.conf\nNGINX_CONFIG_FILE_002=/etc/nginx/conf.d/00-git-read-v3-log-format.conf\nNGINX_CONFIG_FILE_003=/etc/nginx/fastcgi.conf\nNGINX_CONFIG_FILE_004=/etc/nginx/fastcgi_params\nNGINX_CONFIG_FILE_005=/etc/nginx/koi-utf\nNGINX_CONFIG_FILE_006=/etc/nginx/koi-win\nNGINX_CONFIG_FILE_007=/etc/nginx/mime.types\nNGINX_CONFIG_FILE_008=/etc/nginx/nginx.conf\nNGINX_CONFIG_FILE_009=/etc/nginx/proxy_params\nNGINX_CONFIG_FILE_010=/etc/nginx/scgi_params\nNGINX_CONFIG_FILE_011=/etc/nginx/sites-available/chat.gram1.ru.conf\nNGINX_CONFIG_FILE_012=/etc/nginx/sites-available/codevipe-http.conf\nNGINX_CONFIG_FILE_013=/etc/nginx/sites-available/codevipe-https.conf\nNGINX_CONFIG_FILE_014=/etc/nginx/sites-available/default\nNGINX_CONFIG_FILE_015=/etc/nginx/sites-available/dsmods.ru-http.conf\nNGINX_CONFIG_FILE_016=/etc/nginx/sites-available/dsmods.ru-https.conf\nNGINX_CONFIG_FILE_017=/etc/nginx/sites-available/gamevipe.ru-http.conf\nNGINX_CONFIG_FILE_018=/etc/nginx/sites-available/gamevipe.ru-https.conf\nNGINX_CONFIG_FILE_019=/etc/nginx/sites-available/git-edge-test.conf\nNGINX_CONFIG_FILE_020=/etc/nginx/sites-available/git-read-edge-test.conf\nNGINX_CONFIG_FILE_021=/etc/nginx/sites-available/git-read.gram1.ru.conf\nNGINX_CONFIG_FILE_022=/etc/nginx/sites-available/git.gram1.ru.conf\nNGINX_CONFIG_FILE_023=/etc/nginx/sites-available/gram1.ru-http.conf\nNGINX_CONFIG_FILE_024=/etc/nginx/sites-available/gram1.ru-https.conf\nNGINX_CONFIG_FILE_025=/etc/nginx/sites-available/hapusya.ru-http.conf\nNGINX_CONFIG_FILE_026=/etc/nginx/sites-available/hapusya.ru-https.conf\nNGINX_CONFIG_FILE_027=/etc/nginx/sites-available/hbarhub.ru-http.conf\nNGINX_CONFIG_FILE_028=/etc/nginx/sites-available/hbarhub.ru-https.conf\nNGINX_CONFIG_FILE_029=/etc/nginx/sites-available/hkmods.ru-http.conf\nNGINX_CONFIG_FILE_030=/etc/nginx/sites-available/hkmods.ru-https.conf\nNGINX_CONFIG_FILE_031=/etc/nginx/sites-available/kingofwolk.ru-http.conf\nNGINX_CONFIG_FILE_032=/etc/nginx/sites-available/kingofwolk.ru-https.conf\nNGINX_CONFIG_FILE_033=/etc/nginx/sites-available/newfi.ru-http.conf\nNGINX_CONFIG_FILE_034=/etc/nginx/sites-available/newfi.ru-https.conf\nNGINX_CONFIG_FILE_035=/etc/nginx/sites-available/newfilya.ru-http.conf\nNGINX_CONFIG_FILE_036=/etc/nginx/sites-available/newfilya.ru-https.conf\nNGINX_CONFIG_FILE_037=/etc/nginx/sites-available/pvepro.ru-http.conf\nNGINX_CONFIG_FILE_038=/etc/nginx/sites-available/pvepro.ru-https.conf\nNGINX_CONFIG_FILE_039=/etc/nginx/sites-available/taftauto.ru-http.conf\nNGINX_CONFIG_FILE_040=/etc/nginx/sites-available/taftauto.ru-https.conf\nNGINX_CONFIG_FILE_041=/etc/nginx/sites-available/zakrutim.ru-http.conf\nNGINX_CONFIG_FILE_042=/etc/nginx/sites-available/zakrutim.ru-https.conf\nNGINX_CONFIG_FILE_043=/etc/nginx/snippets/fastcgi-php.conf\nNGINX_CONFIG_FILE_044=/etc/nginx/snippets/git-read-server-observer-v3.conf\nNGINX_CONFIG_FILE_045=/etc/nginx/snippets/snakeoil.conf\nNGINX_CONFIG_FILE_046=/etc/nginx/uwsgi_params\nNGINX_CONFIG_FILE_047=/etc/nginx/win-utf\nHAPROXY_CONFIG_FILE_COUNT=8\nHAPROXY_CONFIG_FILE_001=/etc/haproxy/errors/400.http\nHAPROXY_CONFIG_FILE_002=/etc/haproxy/errors/403.http\nHAPROXY_CONFIG_FILE_003=/etc/haproxy/errors/408.http\nHAPROXY_CONFIG_FILE_004=/etc/haproxy/errors/500.http\nHAPROXY_CONFIG_FILE_005=/etc/haproxy/errors/502.http\nHAPROXY_CONFIG_FILE_006=/etc/haproxy/errors/503.http\nHAPROXY_CONFIG_FILE_007=/etc/haproxy/errors/504.http\nHAPROXY_CONFIG_FILE_008=/etc/haproxy/haproxy.cfg\nWIREGUARD_CONFIG_FILE_COUNT=0\nNETBIRD_CONFIG_FILE_COUNT=0\nROLE_MANIFEST_END\nTARGET_END=PITER\nROLE_MANIFEST_TARGETS_OK=3\nVPS565R3_DECISION=PASS_ALL_3_ROLE_APP_MANIFEST\nVPS565R3_NEXT_GATE=FINAL_ROLE_CAPACITY_COST_ANALYSIS\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SUPPORT-260919-INFRA-3VPS-ROLE-APP-MANIFEST-READONLY-565R3\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" + "output": "NEWFI112_BEGIN\nCOMMAND_ID=NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112\nNEWFI112_STAGING={\"contentindex\":{\"excerpt\":[{\"line\":40,\"text\":\"\\t\\tif (!$contentUrl)\"},{\"line\":41,\"text\":\"\\t\\t{\"},{\"line\":42,\"text\":\"\\t\\t\\t/** @var Entity $content */\"},{\"line\":43,\"text\":\"\\t\\t\\t$content = $this->app->findByContentType($contentType, $contentId);\"},{\"line\":44,\"text\":\"\"},{\"line\":45,\"text\":\"\\t\\t\\tif (!$content instanceof Entity)\"},{\"line\":46,\"text\":\"\\t\\t\\t{\"},{\"line\":47,\"text\":\"\\t\\t\\t\\t// content probably deleted\"},{\"line\":48,\"text\":\"\\t\\t\\t\\treturn $this->complete();\"},{\"line\":49,\"text\":\"\\t\\t\\t}\"},{\"line\":50,\"text\":\"\"},{\"line\":51,\"text\":\"\\t\\t\\tif (!method_exists($content, 'canView'))\"},{\"line\":52,\"text\":\"\\t\\t\\t{\"},{\"line\":53,\"text\":\"\\t\\t\\t\\tthrow new \\\\LogicException(\"},{\"line\":54,\"text\":\"\\t\\t\\t\\t\\t'Could not determine content viewability; Implement XF\\\\Entity\\\\ViewableInterface for ' . get_class($content)\"},{\"line\":55,\"text\":\"\\t\\t\\t\\t);\"},{\"line\":56,\"text\":\"\\t\\t\\t}\"},{\"line\":57,\"text\":\"\"},{\"line\":58,\"text\":\"\\t\\t\\tif (!$content instanceof LinkableInterface)\"},{\"line\":59,\"text\":\"\\t\\t\\t{\"},{\"line\":60,\"text\":\"\\t\\t\\t\\tthrow new \\\\LogicException(\"},{\"line\":61,\"text\":\"\\t\\t\\t\\t\\t'Implement XF\\\\Entity\\\\LinkableInterface for ' . get_class($content)\"},{\"line\":62,\"text\":\"\\t\\t\\t\\t);\"},{\"line\":63,\"text\":\"\\t\\t\\t}\"},{\"line\":64,\"text\":\"\"},{\"line\":65,\"text\":\"\\t\\t\\t$guestUser = \\\\XF::repository(UserRepository::class)->getGuestUser();\"},{\"line\":66,\"text\":\"\\t\\t\\t$canView = \\\\XF::asVisitor($guestUser, function () use ($guestUser, $content)\"},{\"line\":67,\"text\":\"\\t\\t\\t{\"},{\"line\":68,\"text\":\"\\t\\t\\t\\tif (!$guestUser->hasPermission('general', 'view'))\"},{\"line\":69,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":70,\"text\":\"\\t\\t\\t\\t\\treturn false;\"},{\"line\":71,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":72,\"text\":\"\"},{\"line\":73,\"text\":\"\\t\\t\\t\\treturn $content->canView($content);\"},{\"line\":74,\"text\":\"\\t\\t\\t});\"},{\"line\":75,\"text\":\"\\t\\t\\tif (!$canView)\"},{\"line\":76,\"text\":\"\\t\\t\\t{\"},{\"line\":77,\"text\":\"\\t\\t\\t\\treturn $this->complete();\"},{\"line\":78,\"text\":\"\\t\\t\\t}\"},{\"line\":79,\"text\":\"\"},{\"line\":80,\"text\":\"\\t\\t\\t$contentUrl = $content->getContentUrl(true);\"},{\"line\":81,\"text\":\"\\t\\t}\"},{\"line\":82,\"text\":\"\"}],\"sha256\":\"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0\"},\"counts\":{\"drafts\":0,\"resources\":6,\"tag_content\":18,\"tags\":15,\"updates\":6,\"versions\":6},\"errors\":{\"ids\":[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],\"old_fp\":\"e739c2c309539a508e20eba89b0ebc688640ef6ff9f919bbb419b2faad819f80\",\"rows\":[{\"error_id\":33,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":34,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":35,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":36,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":37,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":38,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":39,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":40,\"exception_type\":\"XF\\\\CssRenderException\",\"filename\":\"src/XF/CssRenderException.php\",\"line\":89,\"message\":\"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)\"},{\"error_id\":41,\"exception_type\":\"XF\\\\PrintableException\",\"filename\":\"src/XF/Mvc/Entity/Entity.php\",\"line\":1276,\"message\":\"Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal\"},{\"error_id\":42,\"exception_type\":\"LogicException\",\"filename\":\"src/XF/Mvc/Entity/Entity.php\",\"line\":645,\"message\":\"Attempted to set 'type' while a save was pending without forceSet\"},{\"error_id\":43,\"exception_type\":\"ErrorException\",\"filename\":\"src/XF/Mvc/Entity/Entity.php\",\"line\":1276,\"message\":\"Fatal Error: Uncaught XF\\\\PrintableException: Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal in /var/www/forums/newfi/public/src/XF/Mvc/Entity/Entity.php:1276 Stack trace: #0 Command line code(31): XF\\\\Mvc\\\\Entity\\\\Entity->save(true, false) #1 {main} thrown\"},{\"error_id\":44,\"exception_type\":\"ErrorException\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"Fatal Error: Uncaught XF\\\\Db\\\\InvalidQueryException: MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\\\\'Gram/Support\\\\'' at line 1 in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\\\Db\\\\AbstractStatement->getException('...', 1064, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\\\Db\\\\Mysqli\\\\Statement->getException('...', 1064, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\\\Db\\\\Mysqli\\\\Statement->prepare() #3 /var/www\"},{\"error_id\":45,\"exception_type\":\"XF\\\\PrintableException\",\"filename\":\"src/XF/Mvc/Entity/Entity.php\",\"line\":1276,\"message\":\"Пожалуйста, введите корректный префикс роутинга.\"},{\"error_id\":46,\"exception_type\":\"ErrorException\",\"filename\":\"Command line code\",\"line\":5,\"message\":\"Fatal Error: Uncaught ReflectionException: Method XF\\\\AddOn\\\\AbstractSetup::applyGlobalPermissionByGroup() does not exist in Command line code:5 Stack trace: #0 Command line code(5): ReflectionMethod->__construct('...', '...') #1 {main} thrown\"},{\"error_id\":47,\"exception_type\":\"XF\\\\Db\\\\InvalidQueryException\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1\"},{\"error_id\":48,\"exception_type\":\"XF\\\\Db\\\\InvalidQueryException\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1\"},{\"error_id\":49,\"exception_type\":\"XF\\\\Db\\\\Exception\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"MySQL statement prepare error [1054]: Unknown column 'sub_name_format' in 'SELECT'\"},{\"error_id\":50,\"exception_type\":\"XF\\\\Db\\\\Exception\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT'\"},{\"error_id\":51,\"exception_type\":\"ErrorException\",\"filename\":\"Command line code\",\"line\":32,\"message\":\"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:32 Stack trace: #0 Command line code(32): XF::handlePhpError(2, '...', '...', 32) #1 {main} thrown\"},{\"error_id\":52,\"exception_type\":\"ErrorException\",\"filename\":\"Command line code\",\"line\":16,\"message\":\"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:16 Stack trace: #0 Command line code(16): XF::handlePhpError(2, '...', '...', 16) #1 {main} thrown\"},{\"error_id\":53,\"exception_type\":\"ErrorException\",\"filename\":\"src/XF/Db/AbstractStatement.php\",\"line\":225,\"message\":\"Fatal Error: Uncaught XF\\\\Db\\\\Exception: MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT' in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\\\Db\\\\AbstractStatement->getException('...', 1054, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\\\Db\\\\Mysqli\\\\Statement->getException('...', 1054, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\\\Db\\\\Mysqli\\\\Statement->prepare() #3 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(96): XF\\\\Db\\\\Mysqli\\\\Statement->execute() #4 /var/www/forums/newfi/public/src/XF/Db/\"},{\"error_id\":54,\"exception_type\":\"ErrorException\",\"filename\":\"src/XF/Service/ValidateAndSavableTrait.php\",\"line\":36,\"message\":\"Fatal Error: Uncaught LogicException: Cannot save with validation errors. Use validate() to ensure there are no errors. (First error: Пожалуйста, укажите корректную версию.) in /var/www/forums/newfi/public/src/XF/Service/ValidateAndSavableTrait.php:36 Stack trace: #0 Command line code(4): XFRM\\\\Service\\\\ResourceItem\\\\Create->save() #1 /var/www/forums/newfi/public/src/XF.php(950): {closure}() #2 Command line code(4): XF::asVisitor(Object(XFRM\\\\XF\\\\Entity\\\\User), Object(Closure)) #3 {main} thrown\"}]},\"jobs\":[],\"manager\":{\"class\":\"XF\\\\Job\\\\Manager\",\"file\":\"/var/www/forums/newfi/public/src/XF/Job/Manager.php\",\"methods\":{\"cancelUniqueJob\":{\"end\":414,\"excerpt\":[{\"line\":402,\"text\":\"\\tpublic function cancelUniqueJob($uniqueId)\"},{\"line\":403,\"text\":\"\\t{\"},{\"line\":404,\"text\":\"\\t\\t$job = $this->getUniqueJob($uniqueId);\"},{\"line\":405,\"text\":\"\\t\\tif ($job)\"},{\"line\":406,\"text\":\"\\t\\t{\"},{\"line\":407,\"text\":\"\\t\\t\\t$this->cancelJob($job);\"},{\"line\":408,\"text\":\"\\t\\t\\treturn true;\"},{\"line\":409,\"text\":\"\\t\\t}\"},{\"line\":410,\"text\":\"\\t\\telse\"},{\"line\":411,\"text\":\"\\t\\t{\"},{\"line\":412,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":413,\"text\":\"\\t\\t}\"},{\"line\":414,\"text\":\"\\t}\"}],\"start\":402},\"runByIds\":{\"end\":138,\"excerpt\":[{\"line\":100,\"text\":\"\\tpublic function runByIds(array $ids, $maxRunTime)\"},{\"line\":101,\"text\":\"\\t{\"},{\"line\":102,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":103,\"text\":\"\\t\\t{\"},{\"line\":104,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":105,\"text\":\"\\t\\t}\"},{\"line\":106,\"text\":\"\"},{\"line\":107,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":108,\"text\":\"\\t\\t$result = null;\"},{\"line\":109,\"text\":\"\"},{\"line\":110,\"text\":\"\\t\\tforeach ($ids AS $k => $id)\"},{\"line\":111,\"text\":\"\\t\\t{\"},{\"line\":112,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":113,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":114,\"text\":\"\\t\\t\\t{\"},{\"line\":115,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":116,\"text\":\"\\t\\t\\t}\"},{\"line\":117,\"text\":\"\"},{\"line\":118,\"text\":\"\\t\\t\\t$job = $this->getJob($id);\"},{\"line\":119,\"text\":\"\\t\\t\\tif ($job && $job['trigger_date'] <= time())\"},{\"line\":120,\"text\":\"\\t\\t\\t{\"},{\"line\":121,\"text\":\"\\t\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":122,\"text\":\"\\t\\t\\t}\"},{\"line\":123,\"text\":\"\\t\\t\\telse\"},{\"line\":124,\"text\":\"\\t\\t\\t{\"},{\"line\":125,\"text\":\"\\t\\t\\t\\t$result = null;\"},{\"line\":126,\"text\":\"\\t\\t\\t}\"},{\"line\":127,\"text\":\"\"},{\"line\":128,\"text\":\"\\t\\t\\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)\"},{\"line\":129,\"text\":\"\\t\\t\\t{\"},{\"line\":130,\"text\":\"\\t\\t\\t\\tunset($ids[$k]);\"},{\"line\":131,\"text\":\"\\t\\t\\t}\"},{\"line\":132,\"text\":\"\\t\\t}\"},{\"line\":133,\"text\":\"\"},{\"line\":134,\"text\":\"\\t\\treturn [\"},{\"line\":135,\"text\":\"\\t\\t\\t'result' => $result,\"},{\"line\":136,\"text\":\"\\t\\t\\t'remaining' => $ids,\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"start\":100},\"runJobEntry\":{\"end\":249,\"excerpt\":[{\"line\":193,\"text\":\"\\tpublic function runJobEntry(array $job, $maxRunTime)\"},{\"line\":194,\"text\":\"\\t{\"},{\"line\":195,\"text\":\"\\t\\t$affected = $this->db->update('xf_job', [\"},{\"line\":196,\"text\":\"\\t\\t\\t'trigger_date' => time() + 15 * 60,\"},{\"line\":197,\"text\":\"\\t\\t\\t'last_run_date' => time(),\"},{\"line\":198,\"text\":\"\\t\\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);\"},{\"line\":199,\"text\":\"\\t\\tif (!$affected)\"},{\"line\":200,\"text\":\"\\t\\t{\"},{\"line\":201,\"text\":\"\\t\\t\\t// job has already been taken, treat it as complete\"},{\"line\":202,\"text\":\"\\t\\t\\treturn JobResult::newComplete($job['job_id']);\"},{\"line\":203,\"text\":\"\\t\\t}\"},{\"line\":204,\"text\":\"\"},{\"line\":205,\"text\":\"\\t\\t$result = $this->runJobInternal($job, $maxRunTime);\"},{\"line\":206,\"text\":\"\"},{\"line\":207,\"text\":\"\\t\\tswitch ($result->result)\"},{\"line\":208,\"text\":\"\\t\\t{\"},{\"line\":209,\"text\":\"\\t\\t\\tcase JobResult::RESULT_COMPLETED:\"},{\"line\":210,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":211,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tcase JobResult::RESULT_RESUME:\"},{\"line\":214,\"text\":\"\\t\\t\\tcase JobResult::RESULT_REATTEMPT:\"},{\"line\":215,\"text\":\"\\t\\t\\t\\t$update = [\"},{\"line\":216,\"text\":\"\\t\\t\\t\\t\\t'execute_data' => serialize($result->data),\"},{\"line\":217,\"text\":\"\\t\\t\\t\\t\\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],\"},{\"line\":218,\"text\":\"\\t\\t\\t\\t\\t'last_run_date' => time(),\"},{\"line\":219,\"text\":\"\\t\\t\\t\\t];\"},{\"line\":220,\"text\":\"\"},{\"line\":221,\"text\":\"\\t\\t\\t\\tif ($result->result === JobResult::RESULT_REATTEMPT)\"},{\"line\":222,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":223,\"text\":\"\\t\\t\\t\\t\\t$update['attempts'] = $job['attempts'] + 1;\"},{\"line\":224,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":225,\"text\":\"\"},{\"line\":226,\"text\":\"\\t\\t\\t\\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);\"},{\"line\":227,\"text\":\"\"},{\"line\":228,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":229,\"text\":\"\"},{\"line\":230,\"text\":\"\\t\\t\\tcase JobResult::RESULT_FAILED:\"},{\"line\":231,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":232,\"text\":\"\"},{\"line\":233,\"text\":\"\\t\\t\\t\\tif ($result->exception)\"},{\"line\":234,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":235,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging = $job;\"},{\"line\":236,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging['execute_data'] = serialize($result->data);\"},{\"line\":237,\"text\":\"\\t\\t\\t\\t\\t$this->logFailedJob($jobForLogging, $result->exception);\"},{\"line\":238,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":239,\"text\":\"\"},{\"line\":240,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":241,\"text\":\"\\t\\t}\"},{\"line\":242,\"text\":\"\"},{\"line\":243,\"text\":\"\\t\\tif (!$job['manual_execute'])\"},{\"line\":244,\"text\":\"\\t\\t{\"},{\"line\":245,\"text\":\"\\t\\t\\t$this->scheduleRunTimeUpdate();\"},{\"line\":246,\"text\":\"\\t\\t}\"},{\"line\":247,\"text\":\"\"},{\"line\":248,\"text\":\"\\t\\treturn $result;\"},{\"line\":249,\"text\":\"\\t}\"}],\"start\":193},\"runQueue\":{\"end\":93,\"excerpt\":[{\"line\":70,\"text\":\"\\tpublic function runQueue($manual, $maxRunTime)\"},{\"line\":71,\"text\":\"\\t{\"},{\"line\":72,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":73,\"text\":\"\\t\\t{\"},{\"line\":74,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":75,\"text\":\"\\t\\t}\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t$runnable = $this->getRunnable($manual);\"},{\"line\":78,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":79,\"text\":\"\\t\\t$result = null;\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\tforeach ($runnable AS $job)\"},{\"line\":82,\"text\":\"\\t\\t{\"},{\"line\":83,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":84,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":85,\"text\":\"\\t\\t\\t{\"},{\"line\":86,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":87,\"text\":\"\\t\\t\\t}\"},{\"line\":88,\"text\":\"\"},{\"line\":89,\"text\":\"\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":90,\"text\":\"\\t\\t}\"},{\"line\":91,\"text\":\"\"},{\"line\":92,\"text\":\"\\t\\treturn $result;\"},{\"line\":93,\"text\":\"\\t}\"}],\"start\":70}},\"sha256\":\"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9\"}}\nNEWFI112_PRODUCTION={\"contentindex\":{\"excerpt\":[{\"line\":40,\"text\":\"\\t\\tif (!$contentUrl)\"},{\"line\":41,\"text\":\"\\t\\t{\"},{\"line\":42,\"text\":\"\\t\\t\\t/** @var Entity $content */\"},{\"line\":43,\"text\":\"\\t\\t\\t$content = $this->app->findByContentType($contentType, $contentId);\"},{\"line\":44,\"text\":\"\"},{\"line\":45,\"text\":\"\\t\\t\\tif (!$content instanceof Entity)\"},{\"line\":46,\"text\":\"\\t\\t\\t{\"},{\"line\":47,\"text\":\"\\t\\t\\t\\t// content probably deleted\"},{\"line\":48,\"text\":\"\\t\\t\\t\\treturn $this->complete();\"},{\"line\":49,\"text\":\"\\t\\t\\t}\"},{\"line\":50,\"text\":\"\"},{\"line\":51,\"text\":\"\\t\\t\\tif (!method_exists($content, 'canView'))\"},{\"line\":52,\"text\":\"\\t\\t\\t{\"},{\"line\":53,\"text\":\"\\t\\t\\t\\tthrow new \\\\LogicException(\"},{\"line\":54,\"text\":\"\\t\\t\\t\\t\\t'Could not determine content viewability; Implement XF\\\\Entity\\\\ViewableInterface for ' . get_class($content)\"},{\"line\":55,\"text\":\"\\t\\t\\t\\t);\"},{\"line\":56,\"text\":\"\\t\\t\\t}\"},{\"line\":57,\"text\":\"\"},{\"line\":58,\"text\":\"\\t\\t\\tif (!$content instanceof LinkableInterface)\"},{\"line\":59,\"text\":\"\\t\\t\\t{\"},{\"line\":60,\"text\":\"\\t\\t\\t\\tthrow new \\\\LogicException(\"},{\"line\":61,\"text\":\"\\t\\t\\t\\t\\t'Implement XF\\\\Entity\\\\LinkableInterface for ' . get_class($content)\"},{\"line\":62,\"text\":\"\\t\\t\\t\\t);\"},{\"line\":63,\"text\":\"\\t\\t\\t}\"},{\"line\":64,\"text\":\"\"},{\"line\":65,\"text\":\"\\t\\t\\t$guestUser = \\\\XF::repository(UserRepository::class)->getGuestUser();\"},{\"line\":66,\"text\":\"\\t\\t\\t$canView = \\\\XF::asVisitor($guestUser, function () use ($guestUser, $content)\"},{\"line\":67,\"text\":\"\\t\\t\\t{\"},{\"line\":68,\"text\":\"\\t\\t\\t\\tif (!$guestUser->hasPermission('general', 'view'))\"},{\"line\":69,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":70,\"text\":\"\\t\\t\\t\\t\\treturn false;\"},{\"line\":71,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":72,\"text\":\"\"},{\"line\":73,\"text\":\"\\t\\t\\t\\treturn $content->canView($content);\"},{\"line\":74,\"text\":\"\\t\\t\\t});\"},{\"line\":75,\"text\":\"\\t\\t\\tif (!$canView)\"},{\"line\":76,\"text\":\"\\t\\t\\t{\"},{\"line\":77,\"text\":\"\\t\\t\\t\\treturn $this->complete();\"},{\"line\":78,\"text\":\"\\t\\t\\t}\"},{\"line\":79,\"text\":\"\"},{\"line\":80,\"text\":\"\\t\\t\\t$contentUrl = $content->getContentUrl(true);\"},{\"line\":81,\"text\":\"\\t\\t}\"},{\"line\":82,\"text\":\"\"}],\"sha256\":\"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0\"},\"counts\":{\"drafts\":0,\"resources\":6,\"tag_content\":18,\"tags\":15,\"updates\":6,\"versions\":6},\"errors\":{\"ids\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],\"old_fp\":\"737935e0f156defd5fcd89c9e05899bb3577964371bc436e65db7c7e461be69b\",\"rows\":[{\"error_id\":1,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":2,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":3,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":4,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":5,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":6,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":7,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":8,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":9,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":10,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":11,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":12,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":13,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":14,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":15,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":16,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":17,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":18,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":19,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":20,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":21,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":22,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":23,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":24,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":25,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":26,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":27,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":28,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":29,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":30,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":31,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":32,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":33,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":34,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":35,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":36,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":37,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":38,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":39,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"},{\"error_id\":40,\"exception_type\":\"TypeError\",\"filename\":\"src/XF/Job/ContentIndexNow.php\",\"line\":51,\"message\":\"XF\\\\Job\\\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given\"}]},\"jobs\":[{\"decoded\":{\"content_id\":8,\"content_type\":\"resource_update\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2324,\"manual_execute\":0,\"sha\":\"591830a19f29b2c3e29b892e964de5b94f7fae02f06c93bd80b932322f9004ef\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":8,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2325,\"manual_execute\":0,\"sha\":\"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":8,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2326,\"manual_execute\":0,\"sha\":\"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":9,\"content_type\":\"resource_update\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2327,\"manual_execute\":0,\"sha\":\"ca7e861203d277dcebcfe938cbd8b9ba6e2807f563a5a76e4abe0099208de304\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":9,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2328,\"manual_execute\":0,\"sha\":\"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":9,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2329,\"manual_execute\":0,\"sha\":\"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":8,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2330,\"manual_execute\":0,\"sha\":\"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f\",\"trigger_date\":1789770301,\"unique_key\":null},{\"decoded\":{\"content_id\":9,\"content_type\":\"resource\"},\"execute_class\":\"XF\\\\Job\\\\ContentIndexNow\",\"job_id\":2331,\"manual_execute\":0,\"sha\":\"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea\",\"trigger_date\":1789770301,\"unique_key\":null}],\"manager\":{\"class\":\"XF\\\\Job\\\\Manager\",\"file\":\"/var/www/forums/newfi/public/src/XF/Job/Manager.php\",\"methods\":{\"cancelUniqueJob\":{\"end\":414,\"excerpt\":[{\"line\":402,\"text\":\"\\tpublic function cancelUniqueJob($uniqueId)\"},{\"line\":403,\"text\":\"\\t{\"},{\"line\":404,\"text\":\"\\t\\t$job = $this->getUniqueJob($uniqueId);\"},{\"line\":405,\"text\":\"\\t\\tif ($job)\"},{\"line\":406,\"text\":\"\\t\\t{\"},{\"line\":407,\"text\":\"\\t\\t\\t$this->cancelJob($job);\"},{\"line\":408,\"text\":\"\\t\\t\\treturn true;\"},{\"line\":409,\"text\":\"\\t\\t}\"},{\"line\":410,\"text\":\"\\t\\telse\"},{\"line\":411,\"text\":\"\\t\\t{\"},{\"line\":412,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":413,\"text\":\"\\t\\t}\"},{\"line\":414,\"text\":\"\\t}\"}],\"start\":402},\"runByIds\":{\"end\":138,\"excerpt\":[{\"line\":100,\"text\":\"\\tpublic function runByIds(array $ids, $maxRunTime)\"},{\"line\":101,\"text\":\"\\t{\"},{\"line\":102,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":103,\"text\":\"\\t\\t{\"},{\"line\":104,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":105,\"text\":\"\\t\\t}\"},{\"line\":106,\"text\":\"\"},{\"line\":107,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":108,\"text\":\"\\t\\t$result = null;\"},{\"line\":109,\"text\":\"\"},{\"line\":110,\"text\":\"\\t\\tforeach ($ids AS $k => $id)\"},{\"line\":111,\"text\":\"\\t\\t{\"},{\"line\":112,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":113,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":114,\"text\":\"\\t\\t\\t{\"},{\"line\":115,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":116,\"text\":\"\\t\\t\\t}\"},{\"line\":117,\"text\":\"\"},{\"line\":118,\"text\":\"\\t\\t\\t$job = $this->getJob($id);\"},{\"line\":119,\"text\":\"\\t\\t\\tif ($job && $job['trigger_date'] <= time())\"},{\"line\":120,\"text\":\"\\t\\t\\t{\"},{\"line\":121,\"text\":\"\\t\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":122,\"text\":\"\\t\\t\\t}\"},{\"line\":123,\"text\":\"\\t\\t\\telse\"},{\"line\":124,\"text\":\"\\t\\t\\t{\"},{\"line\":125,\"text\":\"\\t\\t\\t\\t$result = null;\"},{\"line\":126,\"text\":\"\\t\\t\\t}\"},{\"line\":127,\"text\":\"\"},{\"line\":128,\"text\":\"\\t\\t\\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)\"},{\"line\":129,\"text\":\"\\t\\t\\t{\"},{\"line\":130,\"text\":\"\\t\\t\\t\\tunset($ids[$k]);\"},{\"line\":131,\"text\":\"\\t\\t\\t}\"},{\"line\":132,\"text\":\"\\t\\t}\"},{\"line\":133,\"text\":\"\"},{\"line\":134,\"text\":\"\\t\\treturn [\"},{\"line\":135,\"text\":\"\\t\\t\\t'result' => $result,\"},{\"line\":136,\"text\":\"\\t\\t\\t'remaining' => $ids,\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"start\":100},\"runJobEntry\":{\"end\":249,\"excerpt\":[{\"line\":193,\"text\":\"\\tpublic function runJobEntry(array $job, $maxRunTime)\"},{\"line\":194,\"text\":\"\\t{\"},{\"line\":195,\"text\":\"\\t\\t$affected = $this->db->update('xf_job', [\"},{\"line\":196,\"text\":\"\\t\\t\\t'trigger_date' => time() + 15 * 60,\"},{\"line\":197,\"text\":\"\\t\\t\\t'last_run_date' => time(),\"},{\"line\":198,\"text\":\"\\t\\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);\"},{\"line\":199,\"text\":\"\\t\\tif (!$affected)\"},{\"line\":200,\"text\":\"\\t\\t{\"},{\"line\":201,\"text\":\"\\t\\t\\t// job has already been taken, treat it as complete\"},{\"line\":202,\"text\":\"\\t\\t\\treturn JobResult::newComplete($job['job_id']);\"},{\"line\":203,\"text\":\"\\t\\t}\"},{\"line\":204,\"text\":\"\"},{\"line\":205,\"text\":\"\\t\\t$result = $this->runJobInternal($job, $maxRunTime);\"},{\"line\":206,\"text\":\"\"},{\"line\":207,\"text\":\"\\t\\tswitch ($result->result)\"},{\"line\":208,\"text\":\"\\t\\t{\"},{\"line\":209,\"text\":\"\\t\\t\\tcase JobResult::RESULT_COMPLETED:\"},{\"line\":210,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":211,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tcase JobResult::RESULT_RESUME:\"},{\"line\":214,\"text\":\"\\t\\t\\tcase JobResult::RESULT_REATTEMPT:\"},{\"line\":215,\"text\":\"\\t\\t\\t\\t$update = [\"},{\"line\":216,\"text\":\"\\t\\t\\t\\t\\t'execute_data' => serialize($result->data),\"},{\"line\":217,\"text\":\"\\t\\t\\t\\t\\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],\"},{\"line\":218,\"text\":\"\\t\\t\\t\\t\\t'last_run_date' => time(),\"},{\"line\":219,\"text\":\"\\t\\t\\t\\t];\"},{\"line\":220,\"text\":\"\"},{\"line\":221,\"text\":\"\\t\\t\\t\\tif ($result->result === JobResult::RESULT_REATTEMPT)\"},{\"line\":222,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":223,\"text\":\"\\t\\t\\t\\t\\t$update['attempts'] = $job['attempts'] + 1;\"},{\"line\":224,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":225,\"text\":\"\"},{\"line\":226,\"text\":\"\\t\\t\\t\\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);\"},{\"line\":227,\"text\":\"\"},{\"line\":228,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":229,\"text\":\"\"},{\"line\":230,\"text\":\"\\t\\t\\tcase JobResult::RESULT_FAILED:\"},{\"line\":231,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":232,\"text\":\"\"},{\"line\":233,\"text\":\"\\t\\t\\t\\tif ($result->exception)\"},{\"line\":234,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":235,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging = $job;\"},{\"line\":236,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging['execute_data'] = serialize($result->data);\"},{\"line\":237,\"text\":\"\\t\\t\\t\\t\\t$this->logFailedJob($jobForLogging, $result->exception);\"},{\"line\":238,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":239,\"text\":\"\"},{\"line\":240,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":241,\"text\":\"\\t\\t}\"},{\"line\":242,\"text\":\"\"},{\"line\":243,\"text\":\"\\t\\tif (!$job['manual_execute'])\"},{\"line\":244,\"text\":\"\\t\\t{\"},{\"line\":245,\"text\":\"\\t\\t\\t$this->scheduleRunTimeUpdate();\"},{\"line\":246,\"text\":\"\\t\\t}\"},{\"line\":247,\"text\":\"\"},{\"line\":248,\"text\":\"\\t\\treturn $result;\"},{\"line\":249,\"text\":\"\\t}\"}],\"start\":193},\"runQueue\":{\"end\":93,\"excerpt\":[{\"line\":70,\"text\":\"\\tpublic function runQueue($manual, $maxRunTime)\"},{\"line\":71,\"text\":\"\\t{\"},{\"line\":72,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":73,\"text\":\"\\t\\t{\"},{\"line\":74,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":75,\"text\":\"\\t\\t}\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t$runnable = $this->getRunnable($manual);\"},{\"line\":78,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":79,\"text\":\"\\t\\t$result = null;\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\tforeach ($runnable AS $job)\"},{\"line\":82,\"text\":\"\\t\\t{\"},{\"line\":83,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":84,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":85,\"text\":\"\\t\\t\\t{\"},{\"line\":86,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":87,\"text\":\"\\t\\t\\t}\"},{\"line\":88,\"text\":\"\"},{\"line\":89,\"text\":\"\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":90,\"text\":\"\\t\\t}\"},{\"line\":91,\"text\":\"\"},{\"line\":92,\"text\":\"\\t\\treturn $result;\"},{\"line\":93,\"text\":\"\\t}\"}],\"start\":70}},\"sha256\":\"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9\"}}\nNEWFI112_SAFE_REPORT={\"changes_made\":false,\"decision\":\"PASS_CONTENTINDEXNOW_JOBMANAGER_SEMANTICS_CAPTURED\",\"git_head\":\"e8f15ac7d52daa18470f4b2377a60aa3c2582b76\",\"manager_methods\":{\"cancelUniqueJob\":{\"end\":414,\"excerpt\":[{\"line\":402,\"text\":\"\\tpublic function cancelUniqueJob($uniqueId)\"},{\"line\":403,\"text\":\"\\t{\"},{\"line\":404,\"text\":\"\\t\\t$job = $this->getUniqueJob($uniqueId);\"},{\"line\":405,\"text\":\"\\t\\tif ($job)\"},{\"line\":406,\"text\":\"\\t\\t{\"},{\"line\":407,\"text\":\"\\t\\t\\t$this->cancelJob($job);\"},{\"line\":408,\"text\":\"\\t\\t\\treturn true;\"},{\"line\":409,\"text\":\"\\t\\t}\"},{\"line\":410,\"text\":\"\\t\\telse\"},{\"line\":411,\"text\":\"\\t\\t{\"},{\"line\":412,\"text\":\"\\t\\t\\treturn false;\"},{\"line\":413,\"text\":\"\\t\\t}\"},{\"line\":414,\"text\":\"\\t}\"}],\"start\":402},\"runByIds\":{\"end\":138,\"excerpt\":[{\"line\":100,\"text\":\"\\tpublic function runByIds(array $ids, $maxRunTime)\"},{\"line\":101,\"text\":\"\\t{\"},{\"line\":102,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":103,\"text\":\"\\t\\t{\"},{\"line\":104,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":105,\"text\":\"\\t\\t}\"},{\"line\":106,\"text\":\"\"},{\"line\":107,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":108,\"text\":\"\\t\\t$result = null;\"},{\"line\":109,\"text\":\"\"},{\"line\":110,\"text\":\"\\t\\tforeach ($ids AS $k => $id)\"},{\"line\":111,\"text\":\"\\t\\t{\"},{\"line\":112,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":113,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":114,\"text\":\"\\t\\t\\t{\"},{\"line\":115,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":116,\"text\":\"\\t\\t\\t}\"},{\"line\":117,\"text\":\"\"},{\"line\":118,\"text\":\"\\t\\t\\t$job = $this->getJob($id);\"},{\"line\":119,\"text\":\"\\t\\t\\tif ($job && $job['trigger_date'] <= time())\"},{\"line\":120,\"text\":\"\\t\\t\\t{\"},{\"line\":121,\"text\":\"\\t\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":122,\"text\":\"\\t\\t\\t}\"},{\"line\":123,\"text\":\"\\t\\t\\telse\"},{\"line\":124,\"text\":\"\\t\\t\\t{\"},{\"line\":125,\"text\":\"\\t\\t\\t\\t$result = null;\"},{\"line\":126,\"text\":\"\\t\\t\\t}\"},{\"line\":127,\"text\":\"\"},{\"line\":128,\"text\":\"\\t\\t\\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)\"},{\"line\":129,\"text\":\"\\t\\t\\t{\"},{\"line\":130,\"text\":\"\\t\\t\\t\\tunset($ids[$k]);\"},{\"line\":131,\"text\":\"\\t\\t\\t}\"},{\"line\":132,\"text\":\"\\t\\t}\"},{\"line\":133,\"text\":\"\"},{\"line\":134,\"text\":\"\\t\\treturn [\"},{\"line\":135,\"text\":\"\\t\\t\\t'result' => $result,\"},{\"line\":136,\"text\":\"\\t\\t\\t'remaining' => $ids,\"},{\"line\":137,\"text\":\"\\t\\t];\"},{\"line\":138,\"text\":\"\\t}\"}],\"start\":100},\"runJobEntry\":{\"end\":249,\"excerpt\":[{\"line\":193,\"text\":\"\\tpublic function runJobEntry(array $job, $maxRunTime)\"},{\"line\":194,\"text\":\"\\t{\"},{\"line\":195,\"text\":\"\\t\\t$affected = $this->db->update('xf_job', [\"},{\"line\":196,\"text\":\"\\t\\t\\t'trigger_date' => time() + 15 * 60,\"},{\"line\":197,\"text\":\"\\t\\t\\t'last_run_date' => time(),\"},{\"line\":198,\"text\":\"\\t\\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);\"},{\"line\":199,\"text\":\"\\t\\tif (!$affected)\"},{\"line\":200,\"text\":\"\\t\\t{\"},{\"line\":201,\"text\":\"\\t\\t\\t// job has already been taken, treat it as complete\"},{\"line\":202,\"text\":\"\\t\\t\\treturn JobResult::newComplete($job['job_id']);\"},{\"line\":203,\"text\":\"\\t\\t}\"},{\"line\":204,\"text\":\"\"},{\"line\":205,\"text\":\"\\t\\t$result = $this->runJobInternal($job, $maxRunTime);\"},{\"line\":206,\"text\":\"\"},{\"line\":207,\"text\":\"\\t\\tswitch ($result->result)\"},{\"line\":208,\"text\":\"\\t\\t{\"},{\"line\":209,\"text\":\"\\t\\t\\tcase JobResult::RESULT_COMPLETED:\"},{\"line\":210,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":211,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":212,\"text\":\"\"},{\"line\":213,\"text\":\"\\t\\t\\tcase JobResult::RESULT_RESUME:\"},{\"line\":214,\"text\":\"\\t\\t\\tcase JobResult::RESULT_REATTEMPT:\"},{\"line\":215,\"text\":\"\\t\\t\\t\\t$update = [\"},{\"line\":216,\"text\":\"\\t\\t\\t\\t\\t'execute_data' => serialize($result->data),\"},{\"line\":217,\"text\":\"\\t\\t\\t\\t\\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],\"},{\"line\":218,\"text\":\"\\t\\t\\t\\t\\t'last_run_date' => time(),\"},{\"line\":219,\"text\":\"\\t\\t\\t\\t];\"},{\"line\":220,\"text\":\"\"},{\"line\":221,\"text\":\"\\t\\t\\t\\tif ($result->result === JobResult::RESULT_REATTEMPT)\"},{\"line\":222,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":223,\"text\":\"\\t\\t\\t\\t\\t$update['attempts'] = $job['attempts'] + 1;\"},{\"line\":224,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":225,\"text\":\"\"},{\"line\":226,\"text\":\"\\t\\t\\t\\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);\"},{\"line\":227,\"text\":\"\"},{\"line\":228,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":229,\"text\":\"\"},{\"line\":230,\"text\":\"\\t\\t\\tcase JobResult::RESULT_FAILED:\"},{\"line\":231,\"text\":\"\\t\\t\\t\\t$this->cancelAndDequeueJob($job);\"},{\"line\":232,\"text\":\"\"},{\"line\":233,\"text\":\"\\t\\t\\t\\tif ($result->exception)\"},{\"line\":234,\"text\":\"\\t\\t\\t\\t{\"},{\"line\":235,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging = $job;\"},{\"line\":236,\"text\":\"\\t\\t\\t\\t\\t$jobForLogging['execute_data'] = serialize($result->data);\"},{\"line\":237,\"text\":\"\\t\\t\\t\\t\\t$this->logFailedJob($jobForLogging, $result->exception);\"},{\"line\":238,\"text\":\"\\t\\t\\t\\t}\"},{\"line\":239,\"text\":\"\"},{\"line\":240,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":241,\"text\":\"\\t\\t}\"},{\"line\":242,\"text\":\"\"},{\"line\":243,\"text\":\"\\t\\tif (!$job['manual_execute'])\"},{\"line\":244,\"text\":\"\\t\\t{\"},{\"line\":245,\"text\":\"\\t\\t\\t$this->scheduleRunTimeUpdate();\"},{\"line\":246,\"text\":\"\\t\\t}\"},{\"line\":247,\"text\":\"\"},{\"line\":248,\"text\":\"\\t\\treturn $result;\"},{\"line\":249,\"text\":\"\\t}\"}],\"start\":193},\"runQueue\":{\"end\":93,\"excerpt\":[{\"line\":70,\"text\":\"\\tpublic function runQueue($manual, $maxRunTime)\"},{\"line\":71,\"text\":\"\\t{\"},{\"line\":72,\"text\":\"\\t\\tif ($maxRunTime < 2)\"},{\"line\":73,\"text\":\"\\t\\t{\"},{\"line\":74,\"text\":\"\\t\\t\\t$maxRunTime = 2;\"},{\"line\":75,\"text\":\"\\t\\t}\"},{\"line\":76,\"text\":\"\"},{\"line\":77,\"text\":\"\\t\\t$runnable = $this->getRunnable($manual);\"},{\"line\":78,\"text\":\"\\t\\t$startTime = microtime(true);\"},{\"line\":79,\"text\":\"\\t\\t$result = null;\"},{\"line\":80,\"text\":\"\"},{\"line\":81,\"text\":\"\\t\\tforeach ($runnable AS $job)\"},{\"line\":82,\"text\":\"\\t\\t{\"},{\"line\":83,\"text\":\"\\t\\t\\t$remaining = $maxRunTime - (microtime(true) - $startTime);\"},{\"line\":84,\"text\":\"\\t\\t\\tif ($remaining < 1)\"},{\"line\":85,\"text\":\"\\t\\t\\t{\"},{\"line\":86,\"text\":\"\\t\\t\\t\\tbreak;\"},{\"line\":87,\"text\":\"\\t\\t\\t}\"},{\"line\":88,\"text\":\"\"},{\"line\":89,\"text\":\"\\t\\t\\t$result = $this->runJobEntry($job, $remaining);\"},{\"line\":90,\"text\":\"\\t\\t}\"},{\"line\":91,\"text\":\"\"},{\"line\":92,\"text\":\"\\t\\treturn $result;\"},{\"line\":93,\"text\":\"\\t}\"}],\"start\":70}},\"manager_sha256\":\"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9\",\"patched_sha_production\":\"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0\",\"patched_sha_staging\":\"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0\",\"production_error_ids\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],\"production_jobs\":[2324,2325,2326,2327,2328,2329,2330,2331]}\nNEWFI112_DECISION=PASS_CONTENTINDEXNOW_JOBMANAGER_SEMANTICS_CAPTURED\nNEWFI112_NEXT_GATE=COMPLETE_HOTFIX_ACCEPTANCE_AND_REMOVE_ONLY_PROVEN_STALE_ROWS\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 86b28983..9d267513 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,15 +1,15 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SUPPORT-260919-INFRA-3VPS-ROLE-APP-MANIFEST-READONLY-565R3 +COMMAND_ID=NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112 STATUS=OK RC=0 HOST=pve01 MODE=read-only -COMPONENT=infra-3vps-role-app-manifest-readonly +COMPONENT=newfi-newfdom-contentindexnow-jobmanager-semantics-readonly REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=8b95b5ad9f325496f9077fc89f26ef35da79be257f5dff5a73865e3f3cb8dff7 +COMMAND_SHA256=91c6d213f03dd756e7d98ffc978a277df1a7b265ebac81ff022fb0b6af52f527 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false @@ -24,1963 +24,16 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=f11059f1611ba216b2edab0ab16877fba2fe11da84ad42d1cae52278a8535de5 -SANITIZED_OUTPUT_SHA256=f11059f1611ba216b2edab0ab16877fba2fe11da84ad42d1cae52278a8535de5 +RAW_EVIDENCE_SHA256=0cda876282b18beff61dc397bbdb0f847d5cf6d20170e0df2d682a7aafa6967b +SANITIZED_OUTPUT_SHA256=0cda876282b18beff61dc397bbdb0f847d5cf6d20170e0df2d682a7aafa6967b OUTPUT_BEGIN -ERROR_REGISTER_CHECK=OK -REFERENCE_CHECK=OK -AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED -TARGET_BEGIN=MOLDOVA -MOLDOVA_SSH_RC=0 -ROLE_MANIFEST_BEGIN -HOSTNAME=relay -UID=0 -USER=root -APT_MANUAL_COUNT=138 -APT_MANUAL_001=adduser -APT_MANUAL_002=apparmor -APT_MANUAL_003=apt -APT_MANUAL_004=apt-listchanges -APT_MANUAL_005=apt-utils -APT_MANUAL_006=base-files -APT_MANUAL_007=base-passwd -APT_MANUAL_008=bash -APT_MANUAL_009=bash-completion -APT_MANUAL_010=bind9-host -APT_MANUAL_011=bsdutils -APT_MANUAL_012=ca-certificates -APT_MANUAL_013=chrony -APT_MANUAL_014=cloud-guest-utils -APT_MANUAL_015=cloud-init -APT_MANUAL_016=cloud-initramfs-growroot -APT_MANUAL_017=coreutils -APT_MANUAL_018=curl -APT_MANUAL_019=dash -APT_MANUAL_020=debconf -APT_MANUAL_021=debian-archive-keyring -APT_MANUAL_022=debianutils -APT_MANUAL_023=diffutils -APT_MANUAL_024=dnsutils -APT_MANUAL_025=dpkg -APT_MANUAL_026=e2fsprogs -APT_MANUAL_027=ethtool -APT_MANUAL_028=findutils -APT_MANUAL_029=gcc-12-base -APT_MANUAL_030=gnupg -APT_MANUAL_031=gpgv -APT_MANUAL_032=grep -APT_MANUAL_033=grub-cloud-amd64 -APT_MANUAL_034=gzip -APT_MANUAL_035=hostname -APT_MANUAL_036=init -APT_MANUAL_037=init-system-helpers -APT_MANUAL_038=iptables -APT_MANUAL_039=iputils-ping -APT_MANUAL_040=jq -APT_MANUAL_041=less -APT_MANUAL_042=libacl1 -APT_MANUAL_043=libapt-pkg6.0 -APT_MANUAL_044=libattr1 -APT_MANUAL_045=libaudit-common -APT_MANUAL_046=libaudit1 -APT_MANUAL_047=libblkid1 -APT_MANUAL_048=libbz2-1.0 -APT_MANUAL_049=libc-bin -APT_MANUAL_050=libc6 -APT_MANUAL_051=libcap-ng0 -APT_MANUAL_052=libcap2 -APT_MANUAL_053=libcom-err2 -APT_MANUAL_054=libcrypt1 -APT_MANUAL_055=libdb5.3 -APT_MANUAL_056=libdebconfclient0 -APT_MANUAL_057=libext2fs2 -APT_MANUAL_058=libffi8 -APT_MANUAL_059=libgcc-s1 -APT_MANUAL_060=libgcrypt20 -APT_MANUAL_061=libgmp10 -APT_MANUAL_062=libgnutls30 -APT_MANUAL_063=libgpg-error0 -APT_MANUAL_064=libhogweed6 -APT_MANUAL_065=libidn2-0 -APT_MANUAL_066=liblz4-1 -APT_MANUAL_067=liblzma5 -APT_MANUAL_068=libmd0 -APT_MANUAL_069=libmount1 -APT_MANUAL_070=libnettle8 -APT_MANUAL_071=libnss-resolve -APT_MANUAL_072=libp11-kit0 -APT_MANUAL_073=libpam-modules -APT_MANUAL_074=libpam-modules-bin -APT_MANUAL_075=libpam-runtime -APT_MANUAL_076=libpam-systemd -APT_MANUAL_077=libpam0g -APT_MANUAL_078=libpcre2-8-0 -APT_MANUAL_079=libseccomp2 -APT_MANUAL_080=libselinux1 -APT_MANUAL_081=libsemanage-common -APT_MANUAL_082=libsemanage2 -APT_MANUAL_083=libsepol2 -APT_MANUAL_084=libsmartcols1 -APT_MANUAL_085=libss2 -APT_MANUAL_086=libssl3 -APT_MANUAL_087=libstdc++6 -APT_MANUAL_088=libsystemd0 -APT_MANUAL_089=libtasn1-6 -APT_MANUAL_090=libtinfo6 -APT_MANUAL_091=libudev1 -APT_MANUAL_092=libunistring2 -APT_MANUAL_093=libuuid1 -APT_MANUAL_094=libxxhash0 -APT_MANUAL_095=libzstd1 -APT_MANUAL_096=linux-image-amd64 -APT_MANUAL_097=login -APT_MANUAL_098=logsave -APT_MANUAL_099=man-db -APT_MANUAL_100=manpages -APT_MANUAL_101=mawk -APT_MANUAL_102=mount -APT_MANUAL_103=nano -APT_MANUAL_104=ncurses-base -APT_MANUAL_105=ncurses-bin -APT_MANUAL_106=netbase -APT_MANUAL_107=netbird -APT_MANUAL_108=netcat-openbsd -APT_MANUAL_109=netplan.io -APT_MANUAL_110=nftables -APT_MANUAL_111=openssh-server -APT_MANUAL_112=openssl -APT_MANUAL_113=passwd -APT_MANUAL_114=pciutils -APT_MANUAL_115=perl-base -APT_MANUAL_116=polkitd -APT_MANUAL_117=psmisc -APT_MANUAL_118=reportbug -APT_MANUAL_119=screen -APT_MANUAL_120=sed -APT_MANUAL_121=socat -APT_MANUAL_122=sudo -APT_MANUAL_123=sysvinit-utils -APT_MANUAL_124=tar -APT_MANUAL_125=tcpdump -APT_MANUAL_126=traceroute -APT_MANUAL_127=tzdata -APT_MANUAL_128=unattended-upgrades -APT_MANUAL_129=usr-is-merged -APT_MANUAL_130=util-linux -APT_MANUAL_131=util-linux-extra -APT_MANUAL_132=uuid-runtime -APT_MANUAL_133=vim -APT_MANUAL_134=vim-tiny -APT_MANUAL_135=whiptail -APT_MANUAL_136=xz-utils -APT_MANUAL_137=zlib1g -APT_MANUAL_138=zstd -ENABLED_UNIT_COUNT=26 -ENABLED_UNIT_001=apparmor.service enabled enabled -ENABLED_UNIT_002=chrony.service enabled enabled -ENABLED_UNIT_003=cloud-config.service enabled enabled -ENABLED_UNIT_004=cloud-final.service enabled enabled -ENABLED_UNIT_005=cloud-init-local.service enabled enabled -ENABLED_UNIT_006=cloud-init.service enabled enabled -ENABLED_UNIT_007=e2scrub_reap.service enabled enabled -ENABLED_UNIT_008=getty@.service enabled enabled -ENABLED_UNIT_009=netbird.service enabled enabled -ENABLED_UNIT_010=nftables.service enabled enabled -ENABLED_UNIT_011=ssh.service enabled enabled -ENABLED_UNIT_012=systemd-network-generator.service enabled enabled -ENABLED_UNIT_013=systemd-networkd-wait-online.service enabled disabled -ENABLED_UNIT_014=systemd-networkd.service enabled enabled -ENABLED_UNIT_015=systemd-pstore.service enabled enabled -ENABLED_UNIT_016=systemd-resolved.service enabled enabled -ENABLED_UNIT_017=unattended-upgrades.service enabled enabled -ENABLED_UNIT_018=cloud-init-hotplugd.socket enabled enabled -ENABLED_UNIT_019=systemd-networkd.socket enabled enabled -ENABLED_UNIT_020=uuidd.socket enabled enabled -ENABLED_UNIT_021=remote-fs.target enabled enabled -ENABLED_UNIT_022=dpkg-db-backup.timer enabled enabled -ENABLED_UNIT_023=e2scrub_all.timer enabled enabled -ENABLED_UNIT_024=fstrim.timer enabled enabled -ENABLED_UNIT_025=man-db.timer enabled enabled -ENABLED_UNIT_026=pvepro-relay-healthcheck.timer enabled enabled -RUNNING_SERVICE_COUNT=14 -RUNNING_SERVICE_001=chrony.service loaded active running chrony, an NTP client/server -RUNNING_SERVICE_002=dbus.service loaded active running D-Bus System Message Bus -RUNNING_SERVICE_003=getty@tty1.service loaded active running Getty on tty1 -RUNNING_SERVICE_004=netbird.service loaded active running NetBird mesh network client -RUNNING_SERVICE_005=serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0 -RUNNING_SERVICE_006=ssh.service loaded active running OpenBSD Secure Shell server -RUNNING_SERVICE_007=systemd-journald.service loaded active running Journal Service -RUNNING_SERVICE_008=systemd-logind.service loaded active running User Login Management -RUNNING_SERVICE_009=systemd-networkd.service loaded active running Network Configuration -RUNNING_SERVICE_010=systemd-resolved.service loaded active running Network Name Resolution -RUNNING_SERVICE_011=systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files -RUNNING_SERVICE_012=unattended-upgrades.service loaded active running Unattended Upgrades Shutdown -RUNNING_SERVICE_013=user@0.service loaded active running User Manager for UID 0 -RUNNING_SERVICE_014=user@1000.service loaded active running User Manager for UID 1000 -CUSTOM_UNIT_COUNT=32 -CUSTOM_UNIT_001_BEGIN -PATH=/etc/systemd/system/chronyd.service -SHA256=834875cafa028d9bbfebd90a7f8aa554d5188160437c961e6571b3d0b7d4df2d -Description=chrony, an NTP client/server -User=_chrony -ExecStart=!/usr/sbin/chronyd $DAEMON_OPTS -CUSTOM_UNIT_001_END -CUSTOM_UNIT_002_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-config.service -SHA256=c4c0701388bb8f07020284875c0174bdd5eaa2f6aa04431d83a1f53f8121c320 -Description=Apply the settings specified in cloud-config -ExecStart=/usr/bin/cloud-init modules -CUSTOM_UNIT_002_END -CUSTOM_UNIT_003_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-final.service -SHA256=6783232c8b5e9c58958e8016e3ef2894c09e10e81e991e95c84d38809a58650e -Description=Execute cloud user/final scripts -ExecStart=/usr/bin/cloud-init modules -CUSTOM_UNIT_003_END -CUSTOM_UNIT_004_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-hotplugd.socket -SHA256=6cfc7f2dc395125d6e88856a3b454067fdd3f7919621d4410f876218e0fc762a -Description=cloud-init hotplug hook socket -CUSTOM_UNIT_004_END -CUSTOM_UNIT_005_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service -SHA256=9f7500022a35cde177bc5b7c05fe3b6daacd5cb7b9a0f6de8fdfd869032a7175 -Description=Initial cloud-init job (pre-networking) -ExecStart=/usr/bin/cloud-init init -CUSTOM_UNIT_005_END -CUSTOM_UNIT_006_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init.service -SHA256=c055f762ef371d9a6885220fd1303d11f6f6827a98c6db50a58ccdc8b041b63e -Description=Initial cloud-init job (metadata service crawler) -ExecStart=/usr/bin/cloud-init init -CUSTOM_UNIT_006_END -CUSTOM_UNIT_007_BEGIN -PATH=/etc/systemd/system/dbus-org.freedesktop.network1.service -SHA256=0e1616169cce28c239371ce5bb627d33a57d4c84fea3fccce0c939017b37c5bd -Description=Network Configuration -ExecStart=!!/lib/systemd/systemd-networkd -User=systemd-network -CUSTOM_UNIT_007_END -CUSTOM_UNIT_008_BEGIN -PATH=/etc/systemd/system/dbus-org.freedesktop.resolve1.service -SHA256=710b62d8b24508e45510323ac72d140256c6f145e3296fc3351c1057ddf21c56 -Description=Network Name Resolution -ExecStart=!!/lib/systemd/systemd-resolved -User=systemd-resolve -CUSTOM_UNIT_008_END -CUSTOM_UNIT_009_BEGIN -PATH=/etc/systemd/system/getty.target.wants/getty@tty1.service -SHA256=699d14804ee2bc42bb88196c71a9dad503ebe744ae9092f6afc8488fb00f5d16 -Description=Getty on %I -ExecStart=-/sbin/agetty -o -CUSTOM_UNIT_009_END -CUSTOM_UNIT_010_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/chrony.service -SHA256=834875cafa028d9bbfebd90a7f8aa554d5188160437c961e6571b3d0b7d4df2d -Description=chrony, an NTP client/server -User=_chrony -ExecStart=!/usr/sbin/chronyd $DAEMON_OPTS -CUSTOM_UNIT_010_END -CUSTOM_UNIT_011_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/e2scrub_reap.service -SHA256=35405e2a877fe17ccf05c96db2e037a29605f8719ba3e4b2f1670c721aa7b5aa -Description=Remove Stale Online ext4 Metadata Check Snapshots -WorkingDirectory=/ -User=root -ExecStart=/sbin/e2scrub_all -A -CUSTOM_UNIT_011_END -CUSTOM_UNIT_012_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/netbird.service -SHA256=9487974b120df840fd4fb2874daa21f4d99a3d05a6ea66d94430b3d76e1c644b -Description=NetBird mesh network client -ExecStart=/usr/bin/netbird service -CUSTOM_UNIT_012_END -CUSTOM_UNIT_013_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/ssh.service -SHA256=35b2858970feb78e985900b33ba8cb84249dfadbf296155e5639cafcf1dd40a3 -Description=OpenBSD Secure Shell server -ExecStartPre=/usr/sbin/sshd -t -ExecStart=/usr/sbin/sshd -D -CUSTOM_UNIT_013_END -CUSTOM_UNIT_014_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/systemd-networkd.service -SHA256=0e1616169cce28c239371ce5bb627d33a57d4c84fea3fccce0c939017b37c5bd -Description=Network Configuration -ExecStart=!!/lib/systemd/systemd-networkd -User=systemd-network -CUSTOM_UNIT_014_END -CUSTOM_UNIT_015_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/unattended-upgrades.service -SHA256=642331d3861bcc5e41342b9b93ad96b1852447d5b10533b9b2988531cfd2860a -Description=Unattended Upgrades Shutdown -ExecStart=/usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal -CUSTOM_UNIT_015_END -CUSTOM_UNIT_016_BEGIN -PATH=/etc/systemd/system/netbird.service -SHA256=9487974b120df840fd4fb2874daa21f4d99a3d05a6ea66d94430b3d76e1c644b -Description=NetBird mesh network client -ExecStart=/usr/bin/netbird service -CUSTOM_UNIT_016_END -CUSTOM_UNIT_017_BEGIN -PATH=/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service -SHA256=768f8d5033d2b57053b9c9ada48344010f025c856f7aa6ffdd657c969255d874 -Description=Wait for Network to be Configured -ExecStart=/lib/systemd/systemd-networkd-wait-online -CUSTOM_UNIT_017_END -CUSTOM_UNIT_018_BEGIN -PATH=/etc/systemd/system/pvepro-relay-healthcheck.service -SHA256=4c51e2ae2835fefd32b4a60ff135eb07a65abdc031a8b7e71f149a65f0ff9f64 -Description=PVEPro relay healthcheck -ExecStart=/usr/local/sbin/pvepro-relay-healthcheck -CUSTOM_UNIT_018_END -CUSTOM_UNIT_019_BEGIN -PATH=/etc/systemd/system/pvepro-relay-healthcheck.timer -SHA256=d81a5e3ba6e1a6a42ca3193a4f6e19b4f74af141d83bbd4652b6fbd0a9a33e43 -Description=Run PVEPro relay healthcheck every 5 minutes -CUSTOM_UNIT_019_END -CUSTOM_UNIT_020_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/systemd-networkd.socket -SHA256=cb8f907e9c4234b08d5000cb99b143ada9aad336c59225250baa9e135f9bd448 -Description=Network Service Netlink Socket -CUSTOM_UNIT_020_END -CUSTOM_UNIT_021_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/uuidd.socket -SHA256=21f7cc7b5ffaf73b27f00689e628797a2be947df144b1a0f7ba9356c8d0a4897 -Description=UUID daemon activation socket -CUSTOM_UNIT_021_END -CUSTOM_UNIT_022_BEGIN -PATH=/etc/systemd/system/sshd.service -SHA256=35b2858970feb78e985900b33ba8cb84249dfadbf296155e5639cafcf1dd40a3 -Description=OpenBSD Secure Shell server -ExecStartPre=/usr/sbin/sshd -t -ExecStart=/usr/sbin/sshd -D -CUSTOM_UNIT_022_END -CUSTOM_UNIT_023_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/apparmor.service -SHA256=02c4d752e9f13dde845cab6c067a790c7af61b3c414b82781d29881a37ec5e19 -Description=Load AppArmor profiles -ExecStart=/lib/apparmor/apparmor.systemd reload -ExecStop=/bin/true -CUSTOM_UNIT_023_END -CUSTOM_UNIT_024_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/nftables.service -SHA256=e040269f9010bb805d21a7c7b61af5b06530857967cdb2e2fbcf9a470fdf1810 -Description=nftables -ExecStart=/usr/sbin/nft -f -ExecStop=/usr/sbin/nft flush -CUSTOM_UNIT_024_END -CUSTOM_UNIT_025_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-network-generator.service -SHA256=ae773fb67e108f12bb36dc010bb88db628d0903a57323ed4f76a86012cab9473 -Description=Generate network units from Kernel command line -ExecStart=/lib/systemd/systemd-network-generator -CUSTOM_UNIT_025_END -CUSTOM_UNIT_026_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-pstore.service -SHA256=f39fa5c39ffdb894a3fb3736c63e3ee3f69608b41aee4c1fbaa3fb6d58d081ff -Description=Platform Persistent Storage Archival -ExecStart=/lib/systemd/systemd-pstore -CUSTOM_UNIT_026_END -CUSTOM_UNIT_027_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-resolved.service -SHA256=710b62d8b24508e45510323ac72d140256c6f145e3296fc3351c1057ddf21c56 -Description=Network Name Resolution -ExecStart=!!/lib/systemd/systemd-resolved -User=systemd-resolve -CUSTOM_UNIT_027_END -CUSTOM_UNIT_028_BEGIN -PATH=/etc/systemd/system/timers.target.wants/dpkg-db-backup.timer -SHA256=53f7ed8aadfaf61d9decda9565b65f68d5b5a66be4ee8f87741e47163839b4a6 -Description=Daily dpkg database backup timer -CUSTOM_UNIT_028_END -CUSTOM_UNIT_029_BEGIN -PATH=/etc/systemd/system/timers.target.wants/e2scrub_all.timer -SHA256=23f20fb6edc9fd54bf4754ef4311f88cba45ba65c6aecfa1885e8fb99531c211 -Description=Periodic ext4 Online Metadata Check for All Filesystems -CUSTOM_UNIT_029_END -CUSTOM_UNIT_030_BEGIN -PATH=/etc/systemd/system/timers.target.wants/fstrim.timer -SHA256=b15bcc0d8fc3698701087264a834bc6c495780ed27b68e0a8e3eb10d02bef74a -Description=Discard unused blocks once a week -CUSTOM_UNIT_030_END -CUSTOM_UNIT_031_BEGIN -PATH=/etc/systemd/system/timers.target.wants/man-db.timer -SHA256=3a3a1ca2ab2c92fe74bae1257e4c666e5dd0a31f441221dfa809bc0cf6540774 -Description=Daily man-db regeneration -CUSTOM_UNIT_031_END -CUSTOM_UNIT_032_BEGIN -PATH=/etc/systemd/system/timers.target.wants/pvepro-relay-healthcheck.timer -SHA256=d81a5e3ba6e1a6a42ca3193a4f6e19b4f74af141d83bbd4652b6fbd0a9a33e43 -Description=Run PVEPro relay healthcheck every 5 minutes -CUSTOM_UNIT_032_END -USR_LOCAL_COUNT=2 -USR_LOCAL_001=/usr/local/sbin/pvepro-relay-healthcheck|3703|b57eeb18fe25a182475edf8b075cecc40f3be40291c9554c9286b53659f1548e -USR_LOCAL_002=/usr/local/sbin/pvepro-relay-notifier|5329|dfb4f5ee90a4cff2780f3dbd6474ae81792bc2b405d7eb666273bf1eb591ed1a -APPROOT_OPT= -APPROOT_SRV= -APPROOT_VAR_WWW= -APPROOT_ROOT=.bash_history,.bashrc,.config/,.lesshst,.profile,.sudo_as_admin_successful,MOLDOVA_DIRECT_AUDIT_20260817T200610Z.txt,evidence/,pvepro-relay-healthcheck.pre-netbird-migration.20260818T195534Z,pvepro-relay-healthcheck.pre-v3.20260818T212442Z,pvepro-relay-notifier-install-20260818T215755Z/,pvepro-relay-notifier-install-20260818T220847Z/ -APPROOT_HOME=ops/ -DEPLOYMENT_MARKER_COUNT=0 -CRON_FILE_COUNT=5 -CRON_FILE_001=/etc/cron.d/e2scrub_all -CRON_FILE_002=/etc/cron.daily/apt-compat -CRON_FILE_003=/etc/cron.daily/dpkg -CRON_FILE_004=/etc/cron.daily/man-db -CRON_FILE_005=/etc/cron.weekly/man-db -CRONTAB_CURRENT_COUNT=0 -CRONTAB_ROOT_COUNT=0 -DOCKER_PRESENT=False -PODMAN_PRESENT=False -PIP_COUNT=0 -PIPX_COUNT=0 -NPM_GLOBAL_COUNT=0 -GEM_COUNT=0 -SNAP_COUNT=0 -FLATPAK_COUNT=0 -NGINX_CONFIG_FILE_COUNT=0 -HAPROXY_CONFIG_FILE_COUNT=0 -WIREGUARD_CONFIG_FILE_COUNT=0 -NETBIRD_CONFIG_FILE_COUNT=1 -NETBIRD_CONFIG_FILE_001=/etc/netbird/install.conf -ROLE_MANIFEST_END -TARGET_END=MOLDOVA -TARGET_BEGIN=USA -USA_SSH_RC=0 -ROLE_MANIFEST_BEGIN -HOSTNAME=pvepro -UID=0 -USER=root -APT_MANUAL_COUNT=138 -APT_MANUAL_001=adduser -APT_MANUAL_002=apparmor -APT_MANUAL_003=apt -APT_MANUAL_004=apt-listchanges -APT_MANUAL_005=apt-utils -APT_MANUAL_006=base-files -APT_MANUAL_007=base-passwd -APT_MANUAL_008=bash -APT_MANUAL_009=bash-completion -APT_MANUAL_010=bind9-host -APT_MANUAL_011=bsdutils -APT_MANUAL_012=ca-certificates -APT_MANUAL_013=cloud-guest-utils -APT_MANUAL_014=cloud-init -APT_MANUAL_015=cloud-initramfs-growroot -APT_MANUAL_016=containerd.io -APT_MANUAL_017=coreutils -APT_MANUAL_018=curl -APT_MANUAL_019=dash -APT_MANUAL_020=debconf -APT_MANUAL_021=debian-archive-keyring -APT_MANUAL_022=debianutils -APT_MANUAL_023=diffutils -APT_MANUAL_024=docker-buildx-plugin -APT_MANUAL_025=docker-ce -APT_MANUAL_026=docker-ce-cli -APT_MANUAL_027=docker-compose-plugin -APT_MANUAL_028=dpkg -APT_MANUAL_029=e2fsprogs -APT_MANUAL_030=ethtool -APT_MANUAL_031=findutils -APT_MANUAL_032=gcc-12-base -APT_MANUAL_033=gpgv -APT_MANUAL_034=grep -APT_MANUAL_035=grub-cloud-amd64 -APT_MANUAL_036=gzip -APT_MANUAL_037=hostname -APT_MANUAL_038=init -APT_MANUAL_039=init-system-helpers -APT_MANUAL_040=iptables -APT_MANUAL_041=iputils-ping -APT_MANUAL_042=less -APT_MANUAL_043=libacl1 -APT_MANUAL_044=libapt-pkg6.0 -APT_MANUAL_045=libattr1 -APT_MANUAL_046=libaudit-common -APT_MANUAL_047=libaudit1 -APT_MANUAL_048=libblkid1 -APT_MANUAL_049=libbz2-1.0 -APT_MANUAL_050=libc-bin -APT_MANUAL_051=libc6 -APT_MANUAL_052=libcap-ng0 -APT_MANUAL_053=libcap2 -APT_MANUAL_054=libcom-err2 -APT_MANUAL_055=libcrypt1 -APT_MANUAL_056=libdb5.3 -APT_MANUAL_057=libdebconfclient0 -APT_MANUAL_058=libext2fs2 -APT_MANUAL_059=libffi8 -APT_MANUAL_060=libgcc-s1 -APT_MANUAL_061=libgcrypt20 -APT_MANUAL_062=libgmp10 -APT_MANUAL_063=libgnutls30 -APT_MANUAL_064=libgpg-error0 -APT_MANUAL_065=libhogweed6 -APT_MANUAL_066=libidn2-0 -APT_MANUAL_067=liblz4-1 -APT_MANUAL_068=liblzma5 -APT_MANUAL_069=libmd0 -APT_MANUAL_070=libmount1 -APT_MANUAL_071=libnettle8 -APT_MANUAL_072=libnss-resolve -APT_MANUAL_073=libp11-kit0 -APT_MANUAL_074=libpam-modules -APT_MANUAL_075=libpam-modules-bin -APT_MANUAL_076=libpam-runtime -APT_MANUAL_077=libpam-systemd -APT_MANUAL_078=libpam0g -APT_MANUAL_079=libpcre2-8-0 -APT_MANUAL_080=libseccomp2 -APT_MANUAL_081=libselinux1 -APT_MANUAL_082=libsemanage-common -APT_MANUAL_083=libsemanage2 -APT_MANUAL_084=libsepol2 -APT_MANUAL_085=libsmartcols1 -APT_MANUAL_086=libss2 -APT_MANUAL_087=libssl3 -APT_MANUAL_088=libstdc++6 -APT_MANUAL_089=libsystemd0 -APT_MANUAL_090=libtasn1-6 -APT_MANUAL_091=libtinfo6 -APT_MANUAL_092=libudev1 -APT_MANUAL_093=libunistring2 -APT_MANUAL_094=libuuid1 -APT_MANUAL_095=libxxhash0 -APT_MANUAL_096=libzstd1 -APT_MANUAL_097=linux-image-amd64 -APT_MANUAL_098=login -APT_MANUAL_099=logsave -APT_MANUAL_100=man-db -APT_MANUAL_101=manpages -APT_MANUAL_102=mawk -APT_MANUAL_103=mount -APT_MANUAL_104=nano -APT_MANUAL_105=ncurses-base -APT_MANUAL_106=ncurses-bin -APT_MANUAL_107=netbase -APT_MANUAL_108=netplan.io -APT_MANUAL_109=openssh-server -APT_MANUAL_110=openssl -APT_MANUAL_111=passwd -APT_MANUAL_112=pciutils -APT_MANUAL_113=perl-base -APT_MANUAL_114=polkitd -APT_MANUAL_115=psmisc -APT_MANUAL_116=reportbug -APT_MANUAL_117=screen -APT_MANUAL_118=sed -APT_MANUAL_119=socat -APT_MANUAL_120=sqlite3 -APT_MANUAL_121=sudo -APT_MANUAL_122=systemd-timesyncd -APT_MANUAL_123=sysvinit-utils -APT_MANUAL_124=tar -APT_MANUAL_125=tcpdump -APT_MANUAL_126=traceroute -APT_MANUAL_127=tzdata -APT_MANUAL_128=unattended-upgrades -APT_MANUAL_129=usr-is-merged -APT_MANUAL_130=util-linux -APT_MANUAL_131=util-linux-extra -APT_MANUAL_132=uuid-runtime -APT_MANUAL_133=vim -APT_MANUAL_134=vim-tiny -APT_MANUAL_135=whiptail -APT_MANUAL_136=xz-utils -APT_MANUAL_137=zlib1g -APT_MANUAL_138=zstd -ENABLED_UNIT_COUNT=28 -ENABLED_UNIT_001=apparmor.service enabled enabled -ENABLED_UNIT_002=cloud-config.service enabled enabled -ENABLED_UNIT_003=cloud-final.service enabled enabled -ENABLED_UNIT_004=cloud-init-local.service enabled enabled -ENABLED_UNIT_005=cloud-init.service enabled enabled -ENABLED_UNIT_006=containerd.service enabled enabled -ENABLED_UNIT_007=docker.service enabled enabled -ENABLED_UNIT_008=e2scrub_reap.service enabled enabled -ENABLED_UNIT_009=getty@.service enabled enabled -ENABLED_UNIT_010=ssh.service enabled enabled -ENABLED_UNIT_011=systemd-network-generator.service enabled enabled -ENABLED_UNIT_012=systemd-networkd-wait-online.service enabled disabled -ENABLED_UNIT_013=systemd-networkd.service enabled enabled -ENABLED_UNIT_014=systemd-pstore.service enabled enabled -ENABLED_UNIT_015=systemd-resolved.service enabled enabled -ENABLED_UNIT_016=systemd-timesyncd.service enabled enabled -ENABLED_UNIT_017=unattended-upgrades.service enabled enabled -ENABLED_UNIT_018=cloud-init-hotplugd.socket enabled enabled -ENABLED_UNIT_019=docker.socket enabled enabled -ENABLED_UNIT_020=systemd-networkd.socket enabled enabled -ENABLED_UNIT_021=uuidd.socket enabled enabled -ENABLED_UNIT_022=remote-fs.target enabled enabled -ENABLED_UNIT_023=apt-daily-upgrade.timer enabled enabled -ENABLED_UNIT_024=apt-daily.timer enabled enabled -ENABLED_UNIT_025=dpkg-db-backup.timer enabled enabled -ENABLED_UNIT_026=e2scrub_all.timer enabled enabled -ENABLED_UNIT_027=fstrim.timer enabled enabled -ENABLED_UNIT_028=man-db.timer enabled enabled -RUNNING_SERVICE_COUNT=14 -RUNNING_SERVICE_001=containerd.service loaded active running containerd container runtime -RUNNING_SERVICE_002=dbus.service loaded active running D-Bus System Message Bus -RUNNING_SERVICE_003=docker.service loaded active running Docker Application Container Engine -RUNNING_SERVICE_004=getty@tty1.service loaded active running Getty on tty1 -RUNNING_SERVICE_005=serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0 -RUNNING_SERVICE_006=ssh.service loaded active running OpenBSD Secure Shell server -RUNNING_SERVICE_007=systemd-journald.service loaded active running Journal Service -RUNNING_SERVICE_008=systemd-logind.service loaded active running User Login Management -RUNNING_SERVICE_009=systemd-networkd.service loaded active running Network Configuration -RUNNING_SERVICE_010=systemd-resolved.service loaded active running Network Name Resolution -RUNNING_SERVICE_011=systemd-timesyncd.service loaded active running Network Time Synchronization -RUNNING_SERVICE_012=systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files -RUNNING_SERVICE_013=unattended-upgrades.service loaded active running Unattended Upgrades Shutdown -RUNNING_SERVICE_014=user@0.service loaded active running User Manager for UID 0 -CUSTOM_UNIT_COUNT=31 -CUSTOM_UNIT_001_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-config.service -SHA256=c4c0701388bb8f07020284875c0174bdd5eaa2f6aa04431d83a1f53f8121c320 -Description=Apply the settings specified in cloud-config -ExecStart=/usr/bin/cloud-init modules -CUSTOM_UNIT_001_END -CUSTOM_UNIT_002_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-final.service -SHA256=6783232c8b5e9c58958e8016e3ef2894c09e10e81e991e95c84d38809a58650e -Description=Execute cloud user/final scripts -ExecStart=/usr/bin/cloud-init modules -CUSTOM_UNIT_002_END -CUSTOM_UNIT_003_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-hotplugd.socket -SHA256=bc5fba4b6b7e6dba9073e1819c2613153990f64b507e8a14f363b7311faf505b -Description=cloud-init hotplug hook socket -CUSTOM_UNIT_003_END -CUSTOM_UNIT_004_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service -SHA256=9f7500022a35cde177bc5b7c05fe3b6daacd5cb7b9a0f6de8fdfd869032a7175 -Description=Initial cloud-init job (pre-networking) -ExecStart=/usr/bin/cloud-init init -CUSTOM_UNIT_004_END -CUSTOM_UNIT_005_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init.service -SHA256=c055f762ef371d9a6885220fd1303d11f6f6827a98c6db50a58ccdc8b041b63e -Description=Initial cloud-init job (metadata service crawler) -ExecStart=/usr/bin/cloud-init init -CUSTOM_UNIT_005_END -CUSTOM_UNIT_006_BEGIN -PATH=/etc/systemd/system/dbus-org.freedesktop.network1.service -SHA256=f241eb7c744396fdf84ec784e559f9c2b35d113e227a3290a7cab5190ee1335d -Description=Network Configuration -ExecStart=!!/lib/systemd/systemd-networkd -User=systemd-network -CUSTOM_UNIT_006_END -CUSTOM_UNIT_007_BEGIN -PATH=/etc/systemd/system/dbus-org.freedesktop.resolve1.service -SHA256=c30f7daf759f98535953f9dc598b08c43bf776af64c0079c2a926a6271cec841 -Description=Network Name Resolution -ExecStart=!!/lib/systemd/systemd-resolved -User=systemd-resolve -CUSTOM_UNIT_007_END -CUSTOM_UNIT_008_BEGIN -PATH=/etc/systemd/system/dbus-org.freedesktop.timesync1.service -SHA256=0e2cc5ea697a01cf8eef93cbadaaa029d23fb9759af459315ee0b3a349214303 -Description=Network Time Synchronization -ExecStart=!!/lib/systemd/systemd-timesyncd -User=systemd-timesync -CUSTOM_UNIT_008_END -CUSTOM_UNIT_009_BEGIN -PATH=/etc/systemd/system/getty.target.wants/getty@tty1.service -SHA256=04abf57d1d60d3a4b745bae2d109010d29605fff11f979dbffb4e1a0df455365 -Description=Getty on %I -ExecStart=-/sbin/agetty -o -CUSTOM_UNIT_009_END -CUSTOM_UNIT_010_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/containerd.service -SHA256=bd1effcf6d9cd564c232b631b353b2758f174160e3d8c078a792363b59f113d0 -Description=containerd container runtime -ExecStartPre=-/sbin/modprobe overlay -ExecStart=/usr/bin/containerd -CUSTOM_UNIT_010_END -CUSTOM_UNIT_011_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/docker.service -SHA256=a12d90fd03761bf79659a185c4a2c40e08934d7ada9e05130e64bd5eb4d634aa -Description=Docker Application Container Engine -ExecStart=/usr/bin/dockerd -H -CUSTOM_UNIT_011_END -CUSTOM_UNIT_012_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/e2scrub_reap.service -SHA256=35405e2a877fe17ccf05c96db2e037a29605f8719ba3e4b2f1670c721aa7b5aa -Description=Remove Stale Online ext4 Metadata Check Snapshots -WorkingDirectory=/ -User=root -ExecStart=/sbin/e2scrub_all -A -CUSTOM_UNIT_012_END -CUSTOM_UNIT_013_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/ssh.service -SHA256=35b2858970feb78e985900b33ba8cb84249dfadbf296155e5639cafcf1dd40a3 -Description=OpenBSD Secure Shell server -ExecStartPre=/usr/sbin/sshd -t -ExecStart=/usr/sbin/sshd -D -CUSTOM_UNIT_013_END -CUSTOM_UNIT_014_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/systemd-networkd.service -SHA256=f241eb7c744396fdf84ec784e559f9c2b35d113e227a3290a7cab5190ee1335d -Description=Network Configuration -ExecStart=!!/lib/systemd/systemd-networkd -User=systemd-network -CUSTOM_UNIT_014_END -CUSTOM_UNIT_015_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/unattended-upgrades.service -SHA256=642331d3861bcc5e41342b9b93ad96b1852447d5b10533b9b2988531cfd2860a -Description=Unattended Upgrades Shutdown -ExecStart=/usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal -CUSTOM_UNIT_015_END -CUSTOM_UNIT_016_BEGIN -PATH=/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service -SHA256=768f8d5033d2b57053b9c9ada48344010f025c856f7aa6ffdd657c969255d874 -Description=Wait for Network to be Configured -ExecStart=/lib/systemd/systemd-networkd-wait-online -CUSTOM_UNIT_016_END -CUSTOM_UNIT_017_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/docker.socket -SHA256=96cd0d89474816ddfb03893b44c36e7d744254aed1bf6d30eca65ff396114656 -Description=Docker Socket for the API -CUSTOM_UNIT_017_END -CUSTOM_UNIT_018_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/systemd-networkd.socket -SHA256=cb8f907e9c4234b08d5000cb99b143ada9aad336c59225250baa9e135f9bd448 -Description=Network Service Netlink Socket -CUSTOM_UNIT_018_END -CUSTOM_UNIT_019_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/uuidd.socket -SHA256=21f7cc7b5ffaf73b27f00689e628797a2be947df144b1a0f7ba9356c8d0a4897 -Description=UUID daemon activation socket -CUSTOM_UNIT_019_END -CUSTOM_UNIT_020_BEGIN -PATH=/etc/systemd/system/sshd.service -SHA256=35b2858970feb78e985900b33ba8cb84249dfadbf296155e5639cafcf1dd40a3 -Description=OpenBSD Secure Shell server -ExecStartPre=/usr/sbin/sshd -t -ExecStart=/usr/sbin/sshd -D -CUSTOM_UNIT_020_END -CUSTOM_UNIT_021_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/apparmor.service -SHA256=02c4d752e9f13dde845cab6c067a790c7af61b3c414b82781d29881a37ec5e19 -Description=Load AppArmor profiles -ExecStart=/lib/apparmor/apparmor.systemd reload -ExecStop=/bin/true -CUSTOM_UNIT_021_END -CUSTOM_UNIT_022_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-network-generator.service -SHA256=ae773fb67e108f12bb36dc010bb88db628d0903a57323ed4f76a86012cab9473 -Description=Generate network units from Kernel command line -ExecStart=/lib/systemd/systemd-network-generator -CUSTOM_UNIT_022_END -CUSTOM_UNIT_023_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-pstore.service -SHA256=f39fa5c39ffdb894a3fb3736c63e3ee3f69608b41aee4c1fbaa3fb6d58d081ff -Description=Platform Persistent Storage Archival -ExecStart=/lib/systemd/systemd-pstore -CUSTOM_UNIT_023_END -CUSTOM_UNIT_024_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-resolved.service -SHA256=c30f7daf759f98535953f9dc598b08c43bf776af64c0079c2a926a6271cec841 -Description=Network Name Resolution -ExecStart=!!/lib/systemd/systemd-resolved -User=systemd-resolve -CUSTOM_UNIT_024_END -CUSTOM_UNIT_025_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service -SHA256=0e2cc5ea697a01cf8eef93cbadaaa029d23fb9759af459315ee0b3a349214303 -Description=Network Time Synchronization -ExecStart=!!/lib/systemd/systemd-timesyncd -User=systemd-timesync -CUSTOM_UNIT_025_END -CUSTOM_UNIT_026_BEGIN -PATH=/etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer -SHA256=b804d7bab8eb41202384f9270e25d5383346ace8b3d7c4f5029c150638d77bcd -Description=Daily apt upgrade and clean activities -CUSTOM_UNIT_026_END -CUSTOM_UNIT_027_BEGIN -PATH=/etc/systemd/system/timers.target.wants/apt-daily.timer -SHA256=0075e974af4e3a94757e219ba50ccb8348d4d1a8834d938f6cc9b1f4fd1db4e5 -Description=Daily apt download activities -CUSTOM_UNIT_027_END -CUSTOM_UNIT_028_BEGIN -PATH=/etc/systemd/system/timers.target.wants/dpkg-db-backup.timer -SHA256=53f7ed8aadfaf61d9decda9565b65f68d5b5a66be4ee8f87741e47163839b4a6 -Description=Daily dpkg database backup timer -CUSTOM_UNIT_028_END -CUSTOM_UNIT_029_BEGIN -PATH=/etc/systemd/system/timers.target.wants/e2scrub_all.timer -SHA256=23f20fb6edc9fd54bf4754ef4311f88cba45ba65c6aecfa1885e8fb99531c211 -Description=Periodic ext4 Online Metadata Check for All Filesystems -CUSTOM_UNIT_029_END -CUSTOM_UNIT_030_BEGIN -PATH=/etc/systemd/system/timers.target.wants/fstrim.timer -SHA256=b15bcc0d8fc3698701087264a834bc6c495780ed27b68e0a8e3eb10d02bef74a -Description=Discard unused blocks once a week -CUSTOM_UNIT_030_END -CUSTOM_UNIT_031_BEGIN -PATH=/etc/systemd/system/timers.target.wants/man-db.timer -SHA256=3a3a1ca2ab2c92fe74bae1257e4c666e5dd0a31f441221dfa809bc0cf6540774 -Description=Daily man-db regeneration -CUSTOM_UNIT_031_END -USR_LOCAL_COUNT=0 -APPROOT_OPT=containerd/,netbird/ -APPROOT_SRV= -APPROOT_VAR_WWW= -APPROOT_ROOT=.bash_history,.bashrc,.local/,.profile,netbird-cutover-20260818T141447Z/,netbird-cutover-20260818T143410Z/,netbird-cutover-20260818T145807Z/,p0-ssh-rollback-cmd1337.log,retired-mailcow-backups/ -APPROOT_HOME= -DEPLOYMENT_MARKER_COUNT=3 -DEPLOYMENT_MARKER_001=/opt/netbird/docker-compose.yml -DEPLOYMENT_MARKER_002=/root/netbird-cutover-20260818T141447Z/docker-compose.yml -DEPLOYMENT_MARKER_003=/root/netbird-cutover-20260818T143410Z/docker-compose.yml -CRON_FILE_COUNT=5 -CRON_FILE_001=/etc/cron.d/e2scrub_all -CRON_FILE_002=/etc/cron.daily/apt-compat -CRON_FILE_003=/etc/cron.daily/dpkg -CRON_FILE_004=/etc/cron.daily/man-db -CRON_FILE_005=/etc/cron.weekly/man-db -CRONTAB_CURRENT_COUNT=0 -CRONTAB_ROOT_COUNT=0 -DOCKER_PRESENT=True -DOCKER_CONTAINERS_COUNT=3 -DOCKER_CONTAINERS_001=netbird-traefik|traefik:v3.6|Up 3 weeks|46.16.34.129:80->80/tcp, 46.16.34.129:443->443/tcp -DOCKER_CONTAINERS_002=netbird-dashboard|netbirdio/dashboard:latest|Up 3 weeks|80/tcp, 443/tcp -DOCKER_CONTAINERS_003=netbird-server|netbirdio/netbird-server:latest|Up 3 weeks|46.16.34.129:3478->3478/udp -DOCKER_IMAGES_COUNT=4 -DOCKER_IMAGES_001=netbirdio/dashboard:latest|05022a0ab704|209MB -DOCKER_IMAGES_002=traefik:v3.6|850b1b348451|245MB -DOCKER_IMAGES_003=netbirdio/netbird-server:latest|efa4e50dbc55|303MB -DOCKER_IMAGES_004=hello-world:latest|5dd0d3e6e255|25.9kB -DOCKER_VOLUMES_COUNT=2 -DOCKER_VOLUMES_001=netbird_netbird_data|local -DOCKER_VOLUMES_002=netbird_netbird_traefik_letsencrypt|local -DOCKER_NETWORKS_COUNT=4 -DOCKER_NETWORKS_001=bridge|bridge|local -DOCKER_NETWORKS_002=host|host|local -DOCKER_NETWORKS_003=netbird_netbird|bridge|local -DOCKER_NETWORKS_004=none|null|local -DOCKER_COMPOSE_COUNT=3 -DOCKER_COMPOSE_001=netbird-traefik|project=netbird|workdir=/opt/netbird|config=/opt/netbird/docker-compose.yml -DOCKER_COMPOSE_002=netbird-dashboard|project=netbird|workdir=/opt/netbird|config=/opt/netbird/docker-compose.yml -DOCKER_COMPOSE_003=netbird-server|project=netbird|workdir=/opt/netbird|config=/opt/netbird/docker-compose.yml -PODMAN_PRESENT=False -PIP_COUNT=0 -PIPX_COUNT=0 -NPM_GLOBAL_COUNT=0 -GEM_COUNT=0 -SNAP_COUNT=0 -FLATPAK_COUNT=0 -NGINX_CONFIG_FILE_COUNT=0 -HAPROXY_CONFIG_FILE_COUNT=0 -WIREGUARD_CONFIG_FILE_COUNT=0 -NETBIRD_CONFIG_FILE_COUNT=0 -ROLE_MANIFEST_END -TARGET_END=USA -TARGET_BEGIN=PITER -PITER_SSH_RC=0 -ROLE_MANIFEST_BEGIN -HOSTNAME=edge01 -UID=1000 -USER=edgeadmin -APT_MANUAL_COUNT=86 -APT_MANUAL_001=7zip -APT_MANUAL_002=apt-transport-https -APT_MANUAL_003=bash -APT_MANUAL_004=bash-completion -APT_MANUAL_005=beget-agent -APT_MANUAL_006=bind9-dnsutils -APT_MANUAL_007=binutils -APT_MANUAL_008=byobu -APT_MANUAL_009=bzip2 -APT_MANUAL_010=ca-certificates -APT_MANUAL_011=certbot -APT_MANUAL_012=cloud-guest-utils -APT_MANUAL_013=cloud-init -APT_MANUAL_014=cloud-init-base -APT_MANUAL_015=curl -APT_MANUAL_016=dash -APT_MANUAL_017=diffutils -APT_MANUAL_018=eatmydata -APT_MANUAL_019=fail2ban -APT_MANUAL_020=fdisk -APT_MANUAL_021=findutils -APT_MANUAL_022=gdisk -APT_MANUAL_023=git -APT_MANUAL_024=gnupg2 -APT_MANUAL_025=grep -APT_MANUAL_026=grub-pc -APT_MANUAL_027=gzip -APT_MANUAL_028=haproxy -APT_MANUAL_029=hostname -APT_MANUAL_030=htop -APT_MANUAL_031=ifupdown -APT_MANUAL_032=init -APT_MANUAL_033=ipset -APT_MANUAL_034=jq -APT_MANUAL_035=libeatmydata1 -APT_MANUAL_036=libjs-sphinxdoc -APT_MANUAL_037=libwrap0 -APT_MANUAL_038=linux-virtual -APT_MANUAL_039=mtr-tiny -APT_MANUAL_040=nano -APT_MANUAL_041=ncdu -APT_MANUAL_042=ncurses-base -APT_MANUAL_043=ncurses-bin -APT_MANUAL_044=ncurses-term -APT_MANUAL_045=net-tools -APT_MANUAL_046=network-manager -APT_MANUAL_047=nginx -APT_MANUAL_048=ntpsec-ntpdate -APT_MANUAL_049=openssh-server -APT_MANUAL_050=openssh-sftp-server -APT_MANUAL_051=patch -APT_MANUAL_052=psmisc -APT_MANUAL_053=python-babel-localedata -APT_MANUAL_054=python3-apt -APT_MANUAL_055=python3-babel -APT_MANUAL_056=python3-debian -APT_MANUAL_057=python3-jinja2 -APT_MANUAL_058=python3-json-pointer -APT_MANUAL_059=python3-jsonpatch -APT_MANUAL_060=python3-jsonschema -APT_MANUAL_061=python3-jsonschema-specifications -APT_MANUAL_062=python3-markupsafe -APT_MANUAL_063=python3-passlib -APT_MANUAL_064=python3-pip -APT_MANUAL_065=python3-referencing -APT_MANUAL_066=python3-requests -APT_MANUAL_067=python3-rpds-py -APT_MANUAL_068=python3-serial -APT_MANUAL_069=python3-simplejson -APT_MANUAL_070=python3-urllib3 -APT_MANUAL_071=shim-signed -APT_MANUAL_072=software-properties-common -APT_MANUAL_073=ssh-import-id -APT_MANUAL_074=sysstat -APT_MANUAL_075=tcpdump -APT_MANUAL_076=tmux -APT_MANUAL_077=ubuntu-minimal -APT_MANUAL_078=ubuntu-server -APT_MANUAL_079=ubuntu-standard -APT_MANUAL_080=unattended-upgrades -APT_MANUAL_081=unzip -APT_MANUAL_082=util-linux -APT_MANUAL_083=vim -APT_MANUAL_084=wget -APT_MANUAL_085=wireguard-tools -APT_MANUAL_086=zip -ENABLED_UNIT_COUNT=85 -ENABLED_UNIT_001=apport-autoreport.path enabled enabled -ENABLED_UNIT_002=tpm-udev.path enabled enabled -ENABLED_UNIT_003=apparmor.service enabled enabled -ENABLED_UNIT_004=apport.service enabled enabled -ENABLED_UNIT_005=beget-agent.service enabled enabled -ENABLED_UNIT_006=blk-availability.service enabled enabled -ENABLED_UNIT_007=chrony.service enabled enabled -ENABLED_UNIT_008=cloud-config.service enabled enabled -ENABLED_UNIT_009=cloud-final.service enabled enabled -ENABLED_UNIT_010=cloud-init-local.service enabled enabled -ENABLED_UNIT_011=cloud-init-main.service enabled enabled -ENABLED_UNIT_012=cloud-init-network.service enabled enabled -ENABLED_UNIT_013=console-setup.service enabled enabled -ENABLED_UNIT_014=cron.service enabled enabled -ENABLED_UNIT_015=dmesg.service enabled enabled -ENABLED_UNIT_016=e2scrub_reap.service enabled enabled -ENABLED_UNIT_017=fail2ban.service enabled enabled -ENABLED_UNIT_018=finalrd.service enabled enabled -ENABLED_UNIT_019=getty@.service enabled enabled -ENABLED_UNIT_020=grub-initrd-fallback.service enabled enabled -ENABLED_UNIT_021=grub2-common.service enabled enabled -ENABLED_UNIT_022=keyboard-setup.service enabled enabled -ENABLED_UNIT_023=lvm2-monitor.service enabled enabled -ENABLED_UNIT_024=ModemManager.service enabled enabled -ENABLED_UNIT_025=multipathd.service enabled enabled -ENABLED_UNIT_026=netplan-configure.service enabled enabled -ENABLED_UNIT_027=networkd-dispatcher.service enabled enabled -ENABLED_UNIT_028=networking.service enabled enabled -ENABLED_UNIT_029=NetworkManager-dispatcher.service enabled enabled -ENABLED_UNIT_030=NetworkManager-wait-online.service enabled enabled -ENABLED_UNIT_031=NetworkManager.service enabled enabled -ENABLED_UNIT_032=nftables.service enabled enabled -ENABLED_UNIT_033=nginx.service enabled enabled -ENABLED_UNIT_034=open-iscsi.service enabled enabled -ENABLED_UNIT_035=open-vm-tools.service enabled enabled -ENABLED_UNIT_036=rsyslog.service enabled enabled -ENABLED_UNIT_037=secureboot-db.service enabled enabled -ENABLED_UNIT_038=setvtrgb.service enabled enabled -ENABLED_UNIT_039=sshd-keygen.service enabled enabled -ENABLED_UNIT_040=sysstat.service enabled enabled -ENABLED_UNIT_041=systemd-pstore.service enabled enabled -ENABLED_UNIT_042=systemd-resolved.service enabled enabled -ENABLED_UNIT_043=ua-reboot-cmds.service enabled enabled -ENABLED_UNIT_044=ubuntu-advantage.service enabled enabled -ENABLED_UNIT_045=udisks2.service enabled enabled -ENABLED_UNIT_046=ufw.service enabled enabled -ENABLED_UNIT_047=unattended-upgrades.service enabled enabled -ENABLED_UNIT_048=vgauth.service enabled enabled -ENABLED_UNIT_049=system-xfs_scrub.slice enabled enabled -ENABLED_UNIT_050=apport-forward.socket enabled enabled -ENABLED_UNIT_051=cloud-init-hotplugd.socket enabled enabled -ENABLED_UNIT_052=dm-event.socket enabled enabled -ENABLED_UNIT_053=iscsid.socket enabled enabled -ENABLED_UNIT_054=lvm2-lvmpolld.socket enabled enabled -ENABLED_UNIT_055=lxd-installer.socket enabled enabled -ENABLED_UNIT_056=polkit-agent-helper.socket enabled enabled -ENABLED_UNIT_057=ssh.socket enabled enabled -ENABLED_UNIT_058=systemd-resolved-monitor.socket enabled enabled -ENABLED_UNIT_059=systemd-resolved-varlink.socket enabled enabled -ENABLED_UNIT_060=uuidd.socket enabled enabled -ENABLED_UNIT_061=remote-fs.target enabled enabled -ENABLED_UNIT_062=apport-autoreport.timer enabled enabled -ENABLED_UNIT_063=apt-daily-upgrade.timer enabled enabled -ENABLED_UNIT_064=apt-daily.timer enabled enabled -ENABLED_UNIT_065=certbot.timer enabled enabled -ENABLED_UNIT_066=dpkg-db-backup.timer enabled enabled -ENABLED_UNIT_067=e2scrub_all.timer enabled enabled -ENABLED_UNIT_068=fstrim.timer enabled enabled -ENABLED_UNIT_069=fwupd-refresh.timer enabled enabled -ENABLED_UNIT_070=homelab-gitea-publisher-v3.timer enabled enabled -ENABLED_UNIT_071=homelab-oai-searchbot-observer.timer enabled enabled -ENABLED_UNIT_072=homelab-oai-searchbot-ranges.timer enabled enabled -ENABLED_UNIT_073=logrotate.timer enabled enabled -ENABLED_UNIT_074=man-db.timer enabled enabled -ENABLED_UNIT_075=mdcheck_continue.timer enabled enabled -ENABLED_UNIT_076=mdcheck_start.timer enabled enabled -ENABLED_UNIT_077=mdmonitor-oneshot.timer enabled enabled -ENABLED_UNIT_078=motd-news.timer enabled enabled -ENABLED_UNIT_079=sysstat-collect.timer enabled enabled -ENABLED_UNIT_080=sysstat-rotate.timer enabled enabled -ENABLED_UNIT_081=sysstat-summary.timer enabled enabled -ENABLED_UNIT_082=ua-timer.timer enabled enabled -ENABLED_UNIT_083=update-notifier-download.timer enabled enabled -ENABLED_UNIT_084=update-notifier-motd.timer enabled enabled -ENABLED_UNIT_085=xfs_scrub_all.timer enabled enabled -RUNNING_SERVICE_COUNT=22 -RUNNING_SERVICE_001=beget-agent.service loaded active running Beget VPS guest agent -RUNNING_SERVICE_002=chrony.service loaded active running chrony, an NTP client/server -RUNNING_SERVICE_003=cron.service loaded active running Regular background program processing daemon -RUNNING_SERVICE_004=dbus.service loaded active running D-Bus System Message Bus -RUNNING_SERVICE_005=fail2ban.service loaded active running Fail2Ban Service -RUNNING_SERVICE_006=getty@tty1.service loaded active running Getty on tty1 -RUNNING_SERVICE_007=ModemManager.service loaded active running Modem Manager -RUNNING_SERVICE_008=multipathd.service loaded active running Device-Mapper Multipath Device Controller -RUNNING_SERVICE_009=networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd -RUNNING_SERVICE_010=NetworkManager.service loaded active running Network Manager -RUNNING_SERVICE_011=nginx.service loaded active running A high performance web server and a reverse proxy server -RUNNING_SERVICE_012=polkit.service loaded active running Authorization Manager -RUNNING_SERVICE_013=rsyslog.service loaded active running System Logging Service -RUNNING_SERVICE_014=serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0 -RUNNING_SERVICE_015=ssh.service loaded active running OpenBSD Secure Shell server -RUNNING_SERVICE_016=systemd-journald.service loaded active running Journal Service -RUNNING_SERVICE_017=systemd-logind.service loaded active running User Login Management -RUNNING_SERVICE_018=systemd-resolved.service loaded active running Network Name Resolution -RUNNING_SERVICE_019=systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files -RUNNING_SERVICE_020=udisks2.service loaded active running Disk Manager -RUNNING_SERVICE_021=unattended-upgrades.service loaded active running Unattended Upgrades Shutdown -RUNNING_SERVICE_022=user@1000.service loaded active running User Manager for UID 1000 -CUSTOM_UNIT_COUNT=113 -CUSTOM_UNIT_001_BEGIN -PATH=/etc/systemd/system/chronyd.service -SHA256=a13aa0e542b57cc75a0b87f2b15785f53e4e86f03dc3db7b572ea056f31c2218 -Description=chrony, an NTP client/server -User=_chrony -ExecStart=!/usr/lib/systemd/scripts/chronyd-starter.sh -n -CUSTOM_UNIT_001_END -CUSTOM_UNIT_002_BEGIN -PATH=/etc/systemd/system/cloud-config.target.wants/cloud-init-hotplugd.socket -SHA256=1810b1c81f31103442b594cd117fe65bbe72730d89e1d5150954cc948d794fa8 -Description=cloud-init hotplug hook socket -CUSTOM_UNIT_002_END -CUSTOM_UNIT_003_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-config.service -SHA256=6cd84a65fdf53697f552fae5527b38f10863372aa58bfcbf9aa15b87ebc20e43 -Description=Cloud-init: Config Stage -ExecStart=sh -c -CUSTOM_UNIT_003_END -CUSTOM_UNIT_004_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-final.service -SHA256=3c2de66f60b26e3482d441f1580068fd2019ee2623fe648ca9a4f5d8e406ce14 -Description=Cloud-init: Final Stage -ExecStart=sh -c -CUSTOM_UNIT_004_END -CUSTOM_UNIT_005_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service -SHA256=36130771749618b30dac345ad344b20e7ba58ce8ca924e2c4829e8d6e652096d -Description=Cloud-init: Local Stage (pre-network) -ExecStart=sh -c -CUSTOM_UNIT_005_END -CUSTOM_UNIT_006_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service -SHA256=d27b6d41b68370bbc8572f9bd5c311803fa8a3c1491a4297fd48f2fa4fc929d0 -Description=Cloud-init: Single Process -ExecStart=/usr/bin/cloud-init --all-stages -CUSTOM_UNIT_006_END -CUSTOM_UNIT_007_BEGIN -PATH=/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service -SHA256=b7fd53cb5e503397266f24fc64a68c107f87160892587101e2ce37200120d6bb -Description=Cloud-init: Network Stage -ExecStart=sh -c -CUSTOM_UNIT_007_END -CUSTOM_UNIT_008_BEGIN -PATH=/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service -SHA256=7440e1296cf610dd3847641c2bc93cadf210b4021964d07b7a59b6cf3d5aee06 -Description=Modem Manager -ExecStart=/usr/sbin/ModemManager -User=root -CUSTOM_UNIT_008_END -CUSTOM_UNIT_009_BEGIN -PATH=/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service -SHA256=7c3f412c01d22660e82f9507ed70dab3a90b863094b46c3a9a715eecb92ba8ac -Description=Network Manager Script Dispatcher Service -ExecStart=/usr/libexec/nm-dispatcher -CUSTOM_UNIT_009_END -CUSTOM_UNIT_010_BEGIN -PATH=/etc/systemd/system/dbus-org.freedesktop.resolve1.service -SHA256=6e66096d01f2b41865f2ee25334d595316d425ea433f03e5eef9870676f8b58a -Description=Network Name Resolution -ExecStart=/usr/lib/systemd/systemd-resolved -User=systemd-resolve -CUSTOM_UNIT_010_END -CUSTOM_UNIT_011_BEGIN -PATH=/etc/systemd/system/emergency.target.wants/grub-initrd-fallback.service -SHA256=1d01ee1b57f8301b01b1aa9cb10a0116608827a3e0c27a817b46024e8395d807 -Description=GRUB failed boot detection -ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv -ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv -CUSTOM_UNIT_011_END -CUSTOM_UNIT_012_BEGIN -PATH=/etc/systemd/system/getty.target.wants/getty@tty1.service -SHA256=988eaaf6676a10fa3d34548eb25bd9e73c6544ee0674bf0b374f56a9019b5d1e -Description=Getty on %I -ExecStart=-/usr/sbin/agetty --noreset -CUSTOM_UNIT_012_END -CUSTOM_UNIT_013_BEGIN -PATH=/etc/systemd/system/graphical.target.wants/udisks2.service -SHA256=edbe6a50b0f8bdbd29f01fba10e96333c3523c2c1cbb6d91c1326da99b2ff3c2 -Description=Disk Manager -ExecStart=/usr/libexec/udisks2/udisksd -CUSTOM_UNIT_013_END -CUSTOM_UNIT_014_BEGIN -PATH=/etc/systemd/system/hibernate.target.wants/grub2-common.service -SHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a -Description=Record successful boot for GRUB -ExecStartPre=/bin/sh -c -ExecStart=grub-editenv /boot/grub/grubenv -ExecStartPost=/bin/sh -c -CUSTOM_UNIT_014_END -CUSTOM_UNIT_015_BEGIN -PATH=/etc/systemd/system/homelab-gitea-publisher-v3.service -SHA256=09c0cf0dde75a066a526d656406bc1fd2abeeba095ebad9883ad996686e86b83 -Description=Homelab Gitea EDGE Publisher V3 -ExecStart=/usr/local/sbin/homelab-gitea-publisher-v3 --base -User=root -Group=root -CUSTOM_UNIT_015_END -CUSTOM_UNIT_016_BEGIN -PATH=/etc/systemd/system/homelab-gitea-publisher-v3.timer -SHA256=59bcebd5bcbdeb60d6b1130c4e927210693eb20718cafda996751e136db8804b -Description=Refresh Homelab Gitea EDGE Publisher V3 every 5 minutes -CUSTOM_UNIT_016_END -CUSTOM_UNIT_017_BEGIN -PATH=/etc/systemd/system/homelab-gitea-root-snapshot-v2.service -SHA256=1f3292d63fcc6849387976ba45de26f7ec3e6325e3a13873540795e3d83b7051 -Description=Homelab Gitea one-root live read-only snapshot v2 -ExecStart=/usr/local/sbin/homelab-gitea-root-snapshot-v2 -User=root -Group=root -CUSTOM_UNIT_017_END -CUSTOM_UNIT_018_BEGIN -PATH=/etc/systemd/system/homelab-gitea-root-snapshot-v2.timer -SHA256=c08254f384c9b37c1b29ba0223e426c613cf5130edd83d5d9e8149b81ed4f348 -Description=Refresh Homelab Gitea one-root snapshot every 5 minutes -CUSTOM_UNIT_018_END -CUSTOM_UNIT_019_BEGIN -PATH=/etc/systemd/system/homelab-oai-searchbot-observer.service -SHA256=4094b80b2d8972dd4f3ae52f7848c3eddd6b65c9e1b537c257c9d9ab01e8301f -Description=Observe verified OpenAI SearchBot requests to git-read -ExecStart=/usr/local/libexec/homelab-oai-searchbot-observer -User=root -Group=root -CUSTOM_UNIT_019_END -CUSTOM_UNIT_020_BEGIN -PATH=/etc/systemd/system/homelab-oai-searchbot-observer.timer -SHA256=facc817f6044eff6f5712def5e9629121e233a0b986acbce0bf8f26f3f394ee1 -Description=Observe OpenAI SearchBot requests every 15 minutes -CUSTOM_UNIT_020_END -CUSTOM_UNIT_021_BEGIN -PATH=/etc/systemd/system/homelab-oai-searchbot-ranges.service -SHA256=bdeefb20da2e39e5b207a1b0e793f7305cd58ad604560038b9c685ee2a5aef45 -Description=Refresh official OpenAI SearchBot ranges -ExecStart=/usr/local/libexec/homelab-oai-searchbot-ranges -User=root -Group=root -CUSTOM_UNIT_021_END -CUSTOM_UNIT_022_BEGIN -PATH=/etc/systemd/system/homelab-oai-searchbot-ranges.timer -SHA256=eab3f2223c4d0fed2365fee42c2743d5fd3f6d3a776610548d531cbe25c360f6 -Description=Refresh official OpenAI SearchBot ranges daily -CUSTOM_UNIT_022_END -CUSTOM_UNIT_023_BEGIN -PATH=/etc/systemd/system/hybrid-sleep.target.wants/grub2-common.service -SHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a -Description=Record successful boot for GRUB -ExecStartPre=/bin/sh -c -ExecStart=grub-editenv /boot/grub/grubenv -ExecStartPost=/bin/sh -c -CUSTOM_UNIT_023_END -CUSTOM_UNIT_024_BEGIN -PATH=/etc/systemd/system/iscsi.service -SHA256=3da09513f8fa765eca49e2612c0bbf28b819e5e852f098992d20eaefe74a571e -Description=Login to default iSCSI targets -ExecStart=/usr/sbin/iscsiadm -m -ExecStart=/usr/lib/open-iscsi/activate-storage.sh -ExecStop=/usr/lib/open-iscsi/umountiscsi.sh -ExecStop=/bin/sync -ExecStop=/usr/lib/open-iscsi/logout-all.sh -CUSTOM_UNIT_024_END -CUSTOM_UNIT_025_BEGIN -PATH=/etc/systemd/system/mdmonitor.service.wants/mdcheck_continue.timer -SHA256=ac74139084b5dad3c222bed6d5845397a3e11763a2788a39211fc61da0dfd6be -Description=MD array scrubbing - continuation -CUSTOM_UNIT_025_END -CUSTOM_UNIT_026_BEGIN -PATH=/etc/systemd/system/mdmonitor.service.wants/mdcheck_start.timer -SHA256=7db685a2674e68167851e90b12db1d744db50e796a7f538eca21cacc69f379ed -Description=MD array scrubbing -CUSTOM_UNIT_026_END -CUSTOM_UNIT_027_BEGIN -PATH=/etc/systemd/system/mdmonitor.service.wants/mdmonitor-oneshot.timer -SHA256=f5826525ccab035198e0c266a588ded548a70b05ca10a983bc51279228faa9e2 -Description=Reminder for degraded MD arrays -CUSTOM_UNIT_027_END -CUSTOM_UNIT_028_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/ModemManager.service -SHA256=7440e1296cf610dd3847641c2bc93cadf210b4021964d07b7a59b6cf3d5aee06 -Description=Modem Manager -ExecStart=/usr/sbin/ModemManager -User=root -CUSTOM_UNIT_028_END -CUSTOM_UNIT_029_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/NetworkManager.service -SHA256=0234192800f45e2dadad8aa896a6f6b40024fd248615371ce889772a63268edd -Description=Network Manager -ExecStart=/usr/sbin/NetworkManager --no-daemon -CUSTOM_UNIT_029_END -CUSTOM_UNIT_030_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/apport.service -SHA256=c2026a8f813776108e2d91629f51ff0cf5bf013fac03314164cabcda6c9698aa -Description=automatic crash report generation -ExecStart=/usr/share/apport/apport --start -ExecStop=/usr/share/apport/apport --stop -CUSTOM_UNIT_030_END -CUSTOM_UNIT_031_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/beget-agent.service -SHA256=014d08e0377db2fcaa3b8d6fe0c1c0fa15a29ec2b99ab2cc15f77d130b22c10c -Description=Beget VPS guest agent -ExecStart=/usr/sbin/beget-agent -CUSTOM_UNIT_031_END -CUSTOM_UNIT_032_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/chrony.service -SHA256=a13aa0e542b57cc75a0b87f2b15785f53e4e86f03dc3db7b572ea056f31c2218 -Description=chrony, an NTP client/server -User=_chrony -ExecStart=!/usr/lib/systemd/scripts/chronyd-starter.sh -n -CUSTOM_UNIT_032_END -CUSTOM_UNIT_033_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/console-setup.service -SHA256=2e7a84c20b1dd1773d906c3684e96c6c5356eefed1a00b3982899f7ab63b4220 -Description=Set console font and keymap -ExecStart=/lib/console-setup/console-setup.sh -CUSTOM_UNIT_033_END -CUSTOM_UNIT_034_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/cron.service -SHA256=bbcd656457d22e12d8983ed0c253b5bd8cc6b12308fd16d9324400040de68e6f -Description=Regular background program processing daemon -ExecStart=/usr/sbin/cron -f -CUSTOM_UNIT_034_END -CUSTOM_UNIT_035_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/dmesg.service -SHA256=9a9364d95eef682c52aa385851924ef5695625d7e93c7ee97f377e62e8133673 -Description=Save initial kernel messages after boot -ExecStartPre=-/usr/bin/savelog -m640 -ExecStart=/bin/journalctl --boot -ExecStartPost=/bin/chgrp adm -ExecStartPost=/bin/chmod 0640 -CUSTOM_UNIT_035_END -CUSTOM_UNIT_036_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/e2scrub_reap.service -SHA256=35405e2a877fe17ccf05c96db2e037a29605f8719ba3e4b2f1670c721aa7b5aa -Description=Remove Stale Online ext4 Metadata Check Snapshots -WorkingDirectory=/ -User=root -ExecStart=/sbin/e2scrub_all -A -CUSTOM_UNIT_036_END -CUSTOM_UNIT_037_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/fail2ban.service -SHA256=1ce60983492b5059aea6ae74ac24b118ce00a18b40c3677d56ce3eba02551119 -Description=Fail2Ban Service -ExecStart=/usr/bin/fail2ban-server -xf -ExecStop=/usr/bin/fail2ban-client stop -CUSTOM_UNIT_037_END -CUSTOM_UNIT_038_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/grub-initrd-fallback.service -SHA256=1d01ee1b57f8301b01b1aa9cb10a0116608827a3e0c27a817b46024e8395d807 -Description=GRUB failed boot detection -ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv -ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv -CUSTOM_UNIT_038_END -CUSTOM_UNIT_039_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/grub2-common.service -SHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a -Description=Record successful boot for GRUB -ExecStartPre=/bin/sh -c -ExecStart=grub-editenv /boot/grub/grubenv -ExecStartPost=/bin/sh -c -CUSTOM_UNIT_039_END -CUSTOM_UNIT_040_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/lxd-installer.socket -SHA256=74c0bb0414ca365a389d4f69908e0ab43166452ff55bdc7d9cdd1becca56611e -Description=Helper to install lxd snap on demand -CUSTOM_UNIT_040_END -CUSTOM_UNIT_041_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/networkd-dispatcher.service -SHA256=c5b2f43bfbb0f22bc6010dec59c2b450bc10483513ea972fb7d4ef666a2e9859 -Description=Dispatcher daemon for systemd-networkd -ExecStart=/usr/bin/networkd-dispatcher $networkd_dispatcher_args -CUSTOM_UNIT_041_END -CUSTOM_UNIT_042_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/networking.service -SHA256=d7f33aaeeda2baf387cab680dfe3453d6140e55da055adcd79b436c365339654 -Description=Raise network interfaces -ExecStart=/usr/sbin/ifup -a -ExecStart=-/bin/sh -c -ExecStop=/usr/sbin/ifdown -a -CUSTOM_UNIT_042_END -CUSTOM_UNIT_043_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/nginx.service -SHA256=6c759c229d4dacf65c1f98c1733646f8b979d3e75e13a98bfbcfe26f8a2f793c -Description=A high performance web server and a reverse proxy server -ExecStartPre=/usr/sbin/nginx -t -ExecStart=/usr/sbin/nginx -g -ExecStop=-/sbin/start-stop-daemon --quiet -CUSTOM_UNIT_043_END -CUSTOM_UNIT_044_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/open-vm-tools.service -SHA256=8eeef9026c706c3ccca5a0f28bfcdad6fe1fc3fb787cdda17648360743a1b599 -Description=Service for virtual machines hosted on VMware -ExecStart=/usr/bin/vmtoolsd -CUSTOM_UNIT_044_END -CUSTOM_UNIT_045_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/rsyslog.service -SHA256=2728f43f3e86d6eb2480d6cbc38a977e185b369c3733351459f40a9fc7581b2c -Description=System Logging Service -ExecStartPre=/usr/lib/rsyslog/reload-apparmor-profile -ExecStart=/usr/sbin/rsyslogd -n -CUSTOM_UNIT_045_END -CUSTOM_UNIT_046_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/secureboot-db.service -SHA256=40df52764374d46a3c084a6b161918dbfe82ef6cf4da401fd4f20ea7e45d7379 -Description=Secure Boot updates for DB and DBX -ExecStartPre=-/usr/bin/chattr -i -ExecStartPre=-/usr/bin/chattr -i -ExecStartPre=-/usr/bin/chattr -i -ExecStart=/usr/bin/sbkeysync --no-default-keystores -CUSTOM_UNIT_046_END -CUSTOM_UNIT_047_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/sysstat.service -SHA256=38d5ddb7705e2b4e6b9b4eafcd7e68cf3ebdc02826c9df64a9acc1fe4fbca685 -Description=Resets System Activity Logs -User=root -ExecStart=/usr/libexec/sysstat/sa1 --boot -CUSTOM_UNIT_047_END -CUSTOM_UNIT_048_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/systemd-networkd.service -SHA256=95b2e19b3c8a44d2fdcb03cbd3e9248fab087aeb85deb2db53c52026a3371af0 -Description=Network Management -ExecStart=/usr/lib/systemd/systemd-networkd -User=systemd-network -CUSTOM_UNIT_048_END -CUSTOM_UNIT_049_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/ua-reboot-cmds.service -SHA256=2a45a02c40999e98f57e84ebf001b355c083e2d5e41faa3a2efbce512aad6af4 -Description=Ubuntu Pro reboot cmds -ExecStart=/usr/bin/python3 /usr/lib/ubuntu-advantage/reboot_cmds.py -CUSTOM_UNIT_049_END -CUSTOM_UNIT_050_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/ubuntu-advantage.service -SHA256=30708eea0adfbd42d9122218e59318552ba7392077bc1763df0207be595bdd20 -Description=Ubuntu Pro Background Auto Attach -ExecStart=/usr/bin/python3 /usr/lib/ubuntu-advantage/daemon.py -WorkingDirectory=/var/lib/ubuntu-advantage/ -CUSTOM_UNIT_050_END -CUSTOM_UNIT_051_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/ufw.service -SHA256=efece4d41e747407ed7a02d217420cef9aa60ee84326a145de528400dc63419d -Description=Uncomplicated firewall -ExecStart=/usr/lib/ufw/ufw-init start -ExecStop=/usr/lib/ufw/ufw-init stop -CUSTOM_UNIT_051_END -CUSTOM_UNIT_052_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/unattended-upgrades.service -SHA256=642331d3861bcc5e41342b9b93ad96b1852447d5b10533b9b2988531cfd2860a -Description=Unattended Upgrades Shutdown -ExecStart=/usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal -CUSTOM_UNIT_052_END -CUSTOM_UNIT_053_BEGIN -PATH=/etc/systemd/system/multi-user.target.wants/wg-quick@wg-home.service -SHA256=2a7a894a2f396894d061f260f8373809ade98bb78d6d00c44d3ba305c12152cd -Description=WireGuard via wg-quick(8) for %I -ExecStart=/usr/bin/wg-quick up -ExecStop=/usr/bin/wg-quick down -CUSTOM_UNIT_053_END -CUSTOM_UNIT_054_BEGIN -PATH=/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service -SHA256=8a816455b4711821c740bfa676e14b5275dde2d8897bfc96b0c93557df1cb7f6 -Description=Network Manager Wait Online -ExecStart=/usr/bin/nm-online -s -CUSTOM_UNIT_054_END -CUSTOM_UNIT_055_BEGIN -PATH=/etc/systemd/system/network-online.target.wants/networking.service -SHA256=d7f33aaeeda2baf387cab680dfe3453d6140e55da055adcd79b436c365339654 -Description=Raise network interfaces -ExecStart=/usr/sbin/ifup -a -ExecStart=-/bin/sh -c -ExecStop=/usr/sbin/ifdown -a -CUSTOM_UNIT_055_END -CUSTOM_UNIT_056_BEGIN -PATH=/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service -SHA256=486f5c44545130238fa689d1def7fb8b836ffef2aa98819f7df474dc1ba6c0f0 -Description=Wait for Network to be Online -ExecStart=/usr/lib/systemd/systemd-networkd-wait-online -CUSTOM_UNIT_056_END -CUSTOM_UNIT_057_BEGIN -PATH=/etc/systemd/system/open-vm-tools.service.requires/vgauth.service -SHA256=7b7e67025ffa1422406e6284263dc4cfee7336b5c01ef24db23f487bfa4dc9b0 -Description=Authentication service for virtual machines hosted on VMware -ExecStart=/usr/bin/VGAuthService -CUSTOM_UNIT_057_END -CUSTOM_UNIT_058_BEGIN -PATH=/etc/systemd/system/paths.target.wants/apport-autoreport.path -SHA256=22df838805217bd3c7381e87a8e7aff7db11eec6977b75a892db1e6dc42b4e8a -Description=Process error reports when automatic reporting is enabled (file watch) -CUSTOM_UNIT_058_END -CUSTOM_UNIT_059_BEGIN -PATH=/etc/systemd/system/paths.target.wants/tpm-udev.path -SHA256=a6b8053ea748341299c318274f94b23afb3f018529c1ac2721e59147328442b4 -Description=Handle dynamically added tpm devices -CUSTOM_UNIT_059_END -CUSTOM_UNIT_060_BEGIN -PATH=/etc/systemd/system/rescue.target.wants/grub-initrd-fallback.service -SHA256=1d01ee1b57f8301b01b1aa9cb10a0116608827a3e0c27a817b46024e8395d807 -Description=GRUB failed boot detection -ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv -ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv -CUSTOM_UNIT_060_END -CUSTOM_UNIT_061_BEGIN -PATH=/etc/systemd/system/sleep.target.wants/grub-initrd-fallback.service -SHA256=1d01ee1b57f8301b01b1aa9cb10a0116608827a3e0c27a817b46024e8395d807 -Description=GRUB failed boot detection -ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv -ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv -CUSTOM_UNIT_061_END -CUSTOM_UNIT_062_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/apport-forward.socket -SHA256=d3b7d68269d8a0d051e1ab63680abdfffb1b4ad12fb503997fb6da4ceaf1c083 -Description=Unix socket for apport crash forwarding -CUSTOM_UNIT_062_END -CUSTOM_UNIT_063_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/dm-event.socket -SHA256=4c555dfe91f8b8807ab5d16d0398c1494be6e2a737385c02bd0913485afb8769 -Description=Device-mapper event daemon FIFOs -CUSTOM_UNIT_063_END -CUSTOM_UNIT_064_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/iscsid.socket -SHA256=e3eeff482cdd196045015e49ba823781a61f41fb96a9a6be5b25d23f519ff75a -Description=Open-iSCSI iscsid Socket -CUSTOM_UNIT_064_END -CUSTOM_UNIT_065_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/polkit-agent-helper.socket -SHA256=26bf0e77112dc5e890d3de0ad783a39e806d117c05eaecd40bbaf7cb062086a9 -Description=Authorization Manager Agent Helper -CUSTOM_UNIT_065_END -CUSTOM_UNIT_066_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/ssh.socket -SHA256=a79db2fe39bb1b452c260370e7a1ba6d13bed16fad0df8f18177802760b3d196 -Description=OpenBSD Secure Shell server socket -CUSTOM_UNIT_066_END -CUSTOM_UNIT_067_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/systemd-networkd.socket -SHA256=6ed74e30d9fc76faec3b58bfb8b14cc9645089d550ecca30f03909a630ec52ab -Description=Network Management Netlink Socket -CUSTOM_UNIT_067_END -CUSTOM_UNIT_068_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/systemd-resolved-monitor.socket -SHA256=3fd777a3c0703fd42453370d57a942733eaa6ca9d1cf0fbe18ceaa5044db5b08 -Description=Resolve Monitor Varlink Socket -CUSTOM_UNIT_068_END -CUSTOM_UNIT_069_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/systemd-resolved-varlink.socket -SHA256=6aa37d888c12e929b8bc0958e765a4c10735984a4116881adfe2d170ad545bf8 -Description=Resolve Service Varlink Socket -CUSTOM_UNIT_069_END -CUSTOM_UNIT_070_BEGIN -PATH=/etc/systemd/system/sockets.target.wants/uuidd.socket -SHA256=21f7cc7b5ffaf73b27f00689e628797a2be947df144b1a0f7ba9356c8d0a4897 -Description=UUID daemon activation socket -CUSTOM_UNIT_070_END -CUSTOM_UNIT_071_BEGIN -PATH=/etc/systemd/system/ssh.service.requires/ssh.socket -SHA256=a79db2fe39bb1b452c260370e7a1ba6d13bed16fad0df8f18177802760b3d196 -Description=OpenBSD Secure Shell server socket -CUSTOM_UNIT_071_END -CUSTOM_UNIT_072_BEGIN -PATH=/etc/systemd/system/ssh.service.wants/sshd-keygen.service -SHA256=229006e93cdb44d2ee4d8f43bcea346e4566b443455f1fa71aa636505d2e17b0 -Description=Generate sshd host keys on first boot -ExecStart=ssh-keygen -A -CUSTOM_UNIT_072_END -CUSTOM_UNIT_073_BEGIN -PATH=/etc/systemd/system/ssh.socket.wants/sshd-keygen.service -SHA256=229006e93cdb44d2ee4d8f43bcea346e4566b443455f1fa71aa636505d2e17b0 -Description=Generate sshd host keys on first boot -ExecStart=ssh-keygen -A -CUSTOM_UNIT_073_END -CUSTOM_UNIT_074_BEGIN -PATH=/etc/systemd/system/sshd.service.wants/sshd-keygen.service -SHA256=229006e93cdb44d2ee4d8f43bcea346e4566b443455f1fa71aa636505d2e17b0 -Description=Generate sshd host keys on first boot -ExecStart=ssh-keygen -A -CUSTOM_UNIT_074_END -CUSTOM_UNIT_075_BEGIN -PATH=/etc/systemd/system/sshd@.service.wants/sshd-keygen.service -SHA256=229006e93cdb44d2ee4d8f43bcea346e4566b443455f1fa71aa636505d2e17b0 -Description=Generate sshd host keys on first boot -ExecStart=ssh-keygen -A -CUSTOM_UNIT_075_END -CUSTOM_UNIT_076_BEGIN -PATH=/etc/systemd/system/suspend-then-hibernate.target.wants/grub2-common.service -SHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a -Description=Record successful boot for GRUB -ExecStartPre=/bin/sh -c -ExecStart=grub-editenv /boot/grub/grubenv -ExecStartPost=/bin/sh -c -CUSTOM_UNIT_076_END -CUSTOM_UNIT_077_BEGIN -PATH=/etc/systemd/system/suspend.target.wants/grub2-common.service -SHA256=32fbc2ecf35c81b4e09f6f9ba47bbbd52c0206e73a2ae3902615e944abf7974a -Description=Record successful boot for GRUB -ExecStartPre=/bin/sh -c -ExecStart=grub-editenv /boot/grub/grubenv -ExecStartPost=/bin/sh -c -CUSTOM_UNIT_077_END -CUSTOM_UNIT_078_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/apparmor.service -SHA256=281b4d583889077bbd52630d128b790a1502bbabe514d81f36ec17187d2084b1 -Description=Load AppArmor profiles -ExecStart=/lib/apparmor/apparmor.systemd reload -ExecStop=/bin/true -CUSTOM_UNIT_078_END -CUSTOM_UNIT_079_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/blk-availability.service -SHA256=065f84abb2b1ef4881b7191fb061c4b9f88035d5cfe3e26e03ffc8a2a022a1f8 -Description=Availability of block devices -ExecStart=/usr/bin/true -ExecStop=/usr/sbin/blkdeactivate -u -CUSTOM_UNIT_079_END -CUSTOM_UNIT_080_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/finalrd.service -SHA256=0074df722fd46bb47143f47e0ce4151465cd197040afcdf5153b8531ff3678a8 -Description=Create final runtime dir for shutdown pivot root -ExecStart=/bin/true -ExecStop=/usr/bin/finalrd -CUSTOM_UNIT_080_END -CUSTOM_UNIT_081_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/keyboard-setup.service -SHA256=7bfae47456a8ccfd36c05494a6ec80256b4b2454fd737892c09e6c3c83b87e73 -Description=Set the console keyboard layout -ExecStart=/lib/console-setup/keyboard-setup.sh -CUSTOM_UNIT_081_END -CUSTOM_UNIT_082_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket -SHA256=a9c45602d9bc5f14583d7dfb27c3db6d3f07ae99dbc455e59bceaf401d446bce -Description=LVM2 poll daemon socket -CUSTOM_UNIT_082_END -CUSTOM_UNIT_083_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/lvm2-monitor.service -SHA256=ac67901163a482de3ffb72aca8057d1c23eff341555f0e115fd652b0b7e33086 -Description=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling -ExecStart=/usr/sbin/lvm vgchange -ExecStop=/usr/sbin/lvm vgchange -CUSTOM_UNIT_083_END -CUSTOM_UNIT_084_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/multipathd.service -SHA256=38799340a0fcc78afbf534f3343943e595795967540ed3827873f560a3c2de7b -Description=Device-Mapper Multipath Device Controller -ExecStart=/usr/sbin/multipathd -d -CUSTOM_UNIT_084_END -CUSTOM_UNIT_085_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/netplan-configure.service -SHA256=6893fca2c14d53951c73f396f7528b0b1baa9f570ca9cf099dc1c71df1aa2724 -Description=Netplan Backend Configuration -ExecStart=/usr/libexec/netplan/configure -ExecStartPost=udevadm control -ExecStartPost=udevadm trigger -CUSTOM_UNIT_085_END -CUSTOM_UNIT_086_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/nftables.service -SHA256=e040269f9010bb805d21a7c7b61af5b06530857967cdb2e2fbcf9a470fdf1810 -Description=nftables -ExecStart=/usr/sbin/nft -f -ExecStop=/usr/sbin/nft flush -CUSTOM_UNIT_086_END -CUSTOM_UNIT_087_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/open-iscsi.service -SHA256=3da09513f8fa765eca49e2612c0bbf28b819e5e852f098992d20eaefe74a571e -Description=Login to default iSCSI targets -ExecStart=/usr/sbin/iscsiadm -m -ExecStart=/usr/lib/open-iscsi/activate-storage.sh -ExecStop=/usr/lib/open-iscsi/umountiscsi.sh -ExecStop=/bin/sync -ExecStop=/usr/lib/open-iscsi/logout-all.sh -CUSTOM_UNIT_087_END -CUSTOM_UNIT_088_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/setvtrgb.service -SHA256=32e83e016d68d15c28f1d55f4c25ab742abe11851fbad32ae615d74c82fa63cc -Description=Set console scheme -ExecStart=/sbin/setvtrgb /etc/vtrgb -CUSTOM_UNIT_088_END -CUSTOM_UNIT_089_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-pstore.service -SHA256=6480e7b711ee6f6f4c2a96d0c197f4ee32601743d97de421b4a6d40f73fa851e -Description=Platform Persistent Storage Archival -ExecStart=/usr/lib/systemd/systemd-pstore -CUSTOM_UNIT_089_END -CUSTOM_UNIT_090_BEGIN -PATH=/etc/systemd/system/sysinit.target.wants/systemd-resolved.service -SHA256=6e66096d01f2b41865f2ee25334d595316d425ea433f03e5eef9870676f8b58a -Description=Network Name Resolution -ExecStart=/usr/lib/systemd/systemd-resolved -User=systemd-resolve -CUSTOM_UNIT_090_END -CUSTOM_UNIT_091_BEGIN -PATH=/etc/systemd/system/syslog.service -SHA256=2728f43f3e86d6eb2480d6cbc38a977e185b369c3733351459f40a9fc7581b2c -Description=System Logging Service -ExecStartPre=/usr/lib/rsyslog/reload-apparmor-profile -ExecStart=/usr/sbin/rsyslogd -n -CUSTOM_UNIT_091_END -CUSTOM_UNIT_092_BEGIN -PATH=/etc/systemd/system/sysstat.service.wants/sysstat-collect.timer -SHA256=b66aab387fc2046e762ed10482665e8ff2b288b65a7b95cc3a08d06879c4d8b8 -Description=Run system activity accounting tool every 10 minutes -CUSTOM_UNIT_092_END -CUSTOM_UNIT_093_BEGIN -PATH=/etc/systemd/system/sysstat.service.wants/sysstat-rotate.timer -SHA256=d952ae6fc1a252ed40c9b054992bd8b18e60b07d6e4b63f2ac36ecbbda481e4a -Description=Rotate daily system activity data file at midnight -CUSTOM_UNIT_093_END -CUSTOM_UNIT_094_BEGIN -PATH=/etc/systemd/system/sysstat.service.wants/sysstat-summary.timer -SHA256=151d08f951267d07fe3fe021e651aefee42bf89577ce0607eaff0550f0af5ca4 -Description=Generate summary of yesterday's process accounting -CUSTOM_UNIT_094_END -CUSTOM_UNIT_095_BEGIN -PATH=/etc/systemd/system/timers.target.wants/apport-autoreport.timer -SHA256=72e4700854d2c3babee612f6dda7c1c61caf37878b7adf9663ddbcbbc3e4c9c5 -Description=Process error reports when automatic reporting is enabled (timer based) -CUSTOM_UNIT_095_END -CUSTOM_UNIT_096_BEGIN -PATH=/etc/systemd/system/timers.target.wants/apt-daily-upgrade.timer -SHA256=b804d7bab8eb41202384f9270e25d5383346ace8b3d7c4f5029c150638d77bcd -Description=Daily apt upgrade and clean activities -CUSTOM_UNIT_096_END -CUSTOM_UNIT_097_BEGIN -PATH=/etc/systemd/system/timers.target.wants/apt-daily.timer -SHA256=0075e974af4e3a94757e219ba50ccb8348d4d1a8834d938f6cc9b1f4fd1db4e5 -Description=Daily apt download activities -CUSTOM_UNIT_097_END -CUSTOM_UNIT_098_BEGIN -PATH=/etc/systemd/system/timers.target.wants/certbot.timer -SHA256=c93a2347a3d8a526daf8fda2dd59297fac3f96030872c2fee246a80a0445a40d -Description=Run certbot twice daily -CUSTOM_UNIT_098_END -CUSTOM_UNIT_099_BEGIN -PATH=/etc/systemd/system/timers.target.wants/dpkg-db-backup.timer -SHA256=2e0dd766329313bfabd86b1acbd40069510afcfef3935cdea010168b503afde1 -Description=Daily dpkg database backup timer -CUSTOM_UNIT_099_END -CUSTOM_UNIT_100_BEGIN -PATH=/etc/systemd/system/timers.target.wants/e2scrub_all.timer -SHA256=23f20fb6edc9fd54bf4754ef4311f88cba45ba65c6aecfa1885e8fb99531c211 -Description=Periodic ext4 Online Metadata Check for All Filesystems -CUSTOM_UNIT_100_END -CUSTOM_UNIT_101_BEGIN -PATH=/etc/systemd/system/timers.target.wants/fstrim.timer -SHA256=699161252ffaa35a0272aae055e51332df694ff4d28c39f8b666d47ecced3397 -Description=Discard unused filesystem blocks once a week -CUSTOM_UNIT_101_END -CUSTOM_UNIT_102_BEGIN -PATH=/etc/systemd/system/timers.target.wants/fwupd-refresh.timer -SHA256=8d90cd120f922b7471e47cca994ff3e23860a1975f09af41ca2b22c474f2ad17 -Description=Refresh fwupd metadata regularly -CUSTOM_UNIT_102_END -CUSTOM_UNIT_103_BEGIN -PATH=/etc/systemd/system/timers.target.wants/homelab-gitea-publisher-v3.timer -SHA256=59bcebd5bcbdeb60d6b1130c4e927210693eb20718cafda996751e136db8804b -Description=Refresh Homelab Gitea EDGE Publisher V3 every 5 minutes -CUSTOM_UNIT_103_END -CUSTOM_UNIT_104_BEGIN -PATH=/etc/systemd/system/timers.target.wants/homelab-oai-searchbot-observer.timer -SHA256=facc817f6044eff6f5712def5e9629121e233a0b986acbce0bf8f26f3f394ee1 -Description=Observe OpenAI SearchBot requests every 15 minutes -CUSTOM_UNIT_104_END -CUSTOM_UNIT_105_BEGIN -PATH=/etc/systemd/system/timers.target.wants/homelab-oai-searchbot-ranges.timer -SHA256=eab3f2223c4d0fed2365fee42c2743d5fd3f6d3a776610548d531cbe25c360f6 -Description=Refresh official OpenAI SearchBot ranges daily -CUSTOM_UNIT_105_END -CUSTOM_UNIT_106_BEGIN -PATH=/etc/systemd/system/timers.target.wants/logrotate.timer -SHA256=ba28702033efe64e93052900d3e0f4a30650395050224a6496e65511ce8d5b7b -Description=Daily rotation of log files -CUSTOM_UNIT_106_END -CUSTOM_UNIT_107_BEGIN -PATH=/etc/systemd/system/timers.target.wants/man-db.timer -SHA256=3a3a1ca2ab2c92fe74bae1257e4c666e5dd0a31f441221dfa809bc0cf6540774 -Description=Daily man-db regeneration -CUSTOM_UNIT_107_END -CUSTOM_UNIT_108_BEGIN -PATH=/etc/systemd/system/timers.target.wants/motd-news.timer -SHA256=f18dbd0f64344440d7d6e8f1ff302d26fe383921be2a3f13948a8e2e2545ee58 -Description=Message of the Day -CUSTOM_UNIT_108_END -CUSTOM_UNIT_109_BEGIN -PATH=/etc/systemd/system/timers.target.wants/ua-timer.timer -SHA256=298cb263192451d1db12687202a5db3d849f2335db8bec0fc8d99a89f5897175 -Description=Ubuntu Pro Timer for running repeated jobs -CUSTOM_UNIT_109_END -CUSTOM_UNIT_110_BEGIN -PATH=/etc/systemd/system/timers.target.wants/update-notifier-download.timer -SHA256=78f01ff5be8b01eee4c438d6a7971dcb9f34687cb75bd0d61f754eb5eb42ad22 -Description=Download data for packages that failed at package install time -CUSTOM_UNIT_110_END -CUSTOM_UNIT_111_BEGIN -PATH=/etc/systemd/system/timers.target.wants/update-notifier-motd.timer -SHA256=7e5fa1f167ad72cf1bd0421d72ca3017ccb5a62f98d91ec3f9e25efd46c2a9ef -Description=Check to see whether there is a new version of Ubuntu available -CUSTOM_UNIT_111_END -CUSTOM_UNIT_112_BEGIN -PATH=/etc/systemd/system/timers.target.wants/xfs_scrub_all.timer -SHA256=8a1e33239d50f70df49cd9ce50a9699fa1f8d833f8b8e8c06c66e3ba4d4756e8 -Description=Periodic XFS Online Metadata Check for All Filesystems -CUSTOM_UNIT_112_END -CUSTOM_UNIT_113_BEGIN -PATH=/etc/systemd/system/vmtoolsd.service -SHA256=8eeef9026c706c3ccca5a0f28bfcdad6fe1fc3fb787cdda17648360743a1b599 -Description=Service for virtual machines hosted on VMware -ExecStart=/usr/bin/vmtoolsd -CUSTOM_UNIT_113_END -USR_LOCAL_COUNT=6 -USR_LOCAL_001=/usr/local/bin/rar|634632|6c941d06c6d11d7468f44f7e9607c8bb50d0afcc6ed51c7845eeebbf071f225b -USR_LOCAL_002=/usr/local/bin/unrar|351256|0738be881a88ec83d2754e1164f7b07c49b72df165a784ffe663470b2c2cd8a7 -USR_LOCAL_003=/usr/local/sbin/homelab-gitea-publisher-v3|16841|7d0b73460562f2ac62d902010c1181051abae2eee7dd2a8f2131d1e7a380bd3c -USR_LOCAL_004=/usr/local/sbin/homelab-gitea-root-snapshot-v2|5817|f28eeb43cd5c21e3e1955c2f5aca63d1348d59a46c8a4b96a87f02a4326f3c9e -USR_LOCAL_005=/usr/local/libexec/homelab-oai-searchbot-observer|7951|d6ef8d8dde34d0c037a135eaa04072ee6f7924820419f41bf5918a9c63cb4dbe -USR_LOCAL_006=/usr/local/libexec/homelab-oai-searchbot-ranges|7668|6f95e6cb8170ff4d86d949c5d58a515b31df8e28e9e7faba2e3c73508bb94327 -APPROOT_OPT= -APPROOT_SRV= -APPROOT_VAR_WWW=acme/,chat-edge-acme/,git-read/,html/ -APPROOT_ROOT= -APPROOT_HOME=edgeadmin/ -DEPLOYMENT_MARKER_COUNT=0 -CRON_FILE_COUNT=13 -CRON_FILE_001=/etc/cron.d/.placeholder -CRON_FILE_002=/etc/cron.d/certbot -CRON_FILE_003=/etc/cron.d/e2scrub_all -CRON_FILE_004=/etc/cron.hourly/.placeholder -CRON_FILE_005=/etc/cron.daily/.placeholder -CRON_FILE_006=/etc/cron.daily/apport -CRON_FILE_007=/etc/cron.daily/apt-compat -CRON_FILE_008=/etc/cron.daily/dpkg -CRON_FILE_009=/etc/cron.daily/logrotate -CRON_FILE_010=/etc/cron.daily/man-db -CRON_FILE_011=/etc/cron.weekly/.placeholder -CRON_FILE_012=/etc/cron.weekly/man-db -CRON_FILE_013=/etc/cron.monthly/.placeholder -CRONTAB_CURRENT_COUNT=0 -CRONTAB_ROOT_COUNT=0 -DOCKER_PRESENT=False -PODMAN_PRESENT=False -PIP_COUNT=99 -PIP_001=acme==4.0.0 -PIP_002=attrs==25.4.0 -PIP_003=autocommand==2.2.2 -PIP_004=Automat==25.4.16 -PIP_005=babel==2.17.0 -PIP_006=bcc==0.35.0 -PIP_007=bcrypt==5.0.0 -PIP_008=blinker==1.9.0 -PIP_009=boto3==1.40.72 -PIP_010=botocore==1.40.72 -PIP_011=certbot==4.0.0 -PIP_012=certifi==2026.1.4 -PIP_013=chardet==5.2.0 -PIP_014=click==8.1.8 -PIP_015=command-not-found==0.3 -PIP_016=ConfigArgParse==1.7 -PIP_017=configobj==5.0.9 -PIP_018=constantly==23.10.4 -PIP_019=cryptography==46.0.5 -PIP_020=dbus-python==1.4.0 -PIP_021=distro==1.9.0 -PIP_022=distro-info==1.15 -PIP_023=fail2ban==1.1.0 -PIP_024=httplib2==0.22.0 -PIP_025=hyperlink==21.0.0 -PIP_026=idna==3.11 -PIP_027=incremental==24.7.2 -PIP_028=inflect==7.5.0 -PIP_029=jaraco.context==6.0.1 -PIP_030=jaraco.functools==4.1.0 -PIP_031=jaraco.text==4.0.0 -PIP_032=Jinja2==3.1.6 -PIP_033=jmespath==1.0.1 -PIP_034=josepy==2.2.0 -PIP_035=jsonpatch==1.32 -PIP_036=jsonpointer==2.4 -PIP_037=jsonschema==4.19.2 -PIP_038=jsonschema-specifications==2023.12.1 -PIP_039=launchpadlib==2.1.0 -PIP_040=lazr.restfulclient==0.14.6 -PIP_041=lazr.uri==1.0.6 -PIP_042=libpass==1.9.3 -PIP_043=linkify-it-py==2.0.3 -PIP_044=markdown-it-py==3.0.0 -PIP_045=MarkupSafe==3.0.3 -PIP_046=mdurl==0.1.2 -PIP_047=more-itertools==10.8.0 -PIP_048=netaddr==1.3.0 -PIP_049=netifaces==0.11.0 -PIP_050=ntpsec==1.2.3 -PIP_051=oauthlib==3.3.1 -PIP_052=packaging==26.0 -PIP_053=parsedatetime==2.6 -PIP_054=pexpect==4.9.0 -PIP_055=pip==25.1.1 -PIP_056=ptyprocess==0.7.0 -PIP_057=pyasn1==0.6.3 -PIP_058=pyasn1_modules==0.4.1 -PIP_059=pyasyncore==1.0.2 -PIP_060=Pygments==2.19.2 -PIP_061=PyGObject==3.56.2 -PIP_062=PyHamcrest==2.1.0 -PIP_063=pyicu==2.16.1 -PIP_064=pyinotify==0.9.6 -PIP_065=PyJWT==2.10.1 -PIP_066=pyOpenSSL==25.3.0 -PIP_067=pyparsing==3.3.2 -PIP_068=pyRFC3339==2.0.1 -PIP_069=pyserial==3.5 -PIP_070=python-apt==3.1.0+ubuntu1 -PIP_071=python-dateutil==2.9.0 -PIP_072=python-debian==1.0.1+ubuntu2 -PIP_073=python-magic==0.4.27 -PIP_074=pytz==2025.2 -PIP_075=PyYAML==6.0.3 -PIP_076=referencing==0.36.2 -PIP_077=requests==2.32.5 -PIP_078=rich==13.9.4 -PIP_079=rpds-py==0.27.1 -PIP_080=s3transfer==0.14.0 -PIP_081=service-identity==24.2.0 -PIP_082=setuptools==78.1.1 -PIP_083=simplejson==3.20.2 -PIP_084=six==1.17.0 -PIP_085=sos==4.10.2 -PIP_086=ssh-import-id==5.11 -PIP_087=systemd-python==235 -PIP_088=Twisted==25.5.0 -PIP_089=typeguard==4.4.4 -PIP_090=typing_extensions==4.15.0 -PIP_091=ubuntu-pro-client==8001 -PIP_092=uc-micro-py==1.0.3 -PIP_093=ufw==0.36.2 -PIP_094=unattended-upgrades==0.1 -PIP_095=urllib3==2.6.3 -PIP_096=wadllib==2.0.0 -PIP_097=wheel==0.46.3 -PIP_098=zipp==3.23.0 -PIP_099=zope.interface==8.2 -PIPX_COUNT=0 -NPM_GLOBAL_COUNT=0 -GEM_COUNT=0 -SNAP_COUNT=0 -FLATPAK_COUNT=0 -NGINX_CONFIG_FILE_COUNT=47 -NGINX_CONFIG_FILE_001=/etc/nginx/conf.d/00-edge-common.conf -NGINX_CONFIG_FILE_002=/etc/nginx/conf.d/00-git-read-v3-log-format.conf -NGINX_CONFIG_FILE_003=/etc/nginx/fastcgi.conf -NGINX_CONFIG_FILE_004=/etc/nginx/fastcgi_params -NGINX_CONFIG_FILE_005=/etc/nginx/koi-utf -NGINX_CONFIG_FILE_006=/etc/nginx/koi-win -NGINX_CONFIG_FILE_007=/etc/nginx/mime.types -NGINX_CONFIG_FILE_008=/etc/nginx/nginx.conf -NGINX_CONFIG_FILE_009=/etc/nginx/proxy_params -NGINX_CONFIG_FILE_010=/etc/nginx/scgi_params -NGINX_CONFIG_FILE_011=/etc/nginx/sites-available/chat.gram1.ru.conf -NGINX_CONFIG_FILE_012=/etc/nginx/sites-available/codevipe-http.conf -NGINX_CONFIG_FILE_013=/etc/nginx/sites-available/codevipe-https.conf -NGINX_CONFIG_FILE_014=/etc/nginx/sites-available/default -NGINX_CONFIG_FILE_015=/etc/nginx/sites-available/dsmods.ru-http.conf -NGINX_CONFIG_FILE_016=/etc/nginx/sites-available/dsmods.ru-https.conf -NGINX_CONFIG_FILE_017=/etc/nginx/sites-available/gamevipe.ru-http.conf -NGINX_CONFIG_FILE_018=/etc/nginx/sites-available/gamevipe.ru-https.conf -NGINX_CONFIG_FILE_019=/etc/nginx/sites-available/git-edge-test.conf -NGINX_CONFIG_FILE_020=/etc/nginx/sites-available/git-read-edge-test.conf -NGINX_CONFIG_FILE_021=/etc/nginx/sites-available/git-read.gram1.ru.conf -NGINX_CONFIG_FILE_022=/etc/nginx/sites-available/git.gram1.ru.conf -NGINX_CONFIG_FILE_023=/etc/nginx/sites-available/gram1.ru-http.conf -NGINX_CONFIG_FILE_024=/etc/nginx/sites-available/gram1.ru-https.conf -NGINX_CONFIG_FILE_025=/etc/nginx/sites-available/hapusya.ru-http.conf -NGINX_CONFIG_FILE_026=/etc/nginx/sites-available/hapusya.ru-https.conf -NGINX_CONFIG_FILE_027=/etc/nginx/sites-available/hbarhub.ru-http.conf -NGINX_CONFIG_FILE_028=/etc/nginx/sites-available/hbarhub.ru-https.conf -NGINX_CONFIG_FILE_029=/etc/nginx/sites-available/hkmods.ru-http.conf -NGINX_CONFIG_FILE_030=/etc/nginx/sites-available/hkmods.ru-https.conf -NGINX_CONFIG_FILE_031=/etc/nginx/sites-available/kingofwolk.ru-http.conf -NGINX_CONFIG_FILE_032=/etc/nginx/sites-available/kingofwolk.ru-https.conf -NGINX_CONFIG_FILE_033=/etc/nginx/sites-available/newfi.ru-http.conf -NGINX_CONFIG_FILE_034=/etc/nginx/sites-available/newfi.ru-https.conf -NGINX_CONFIG_FILE_035=/etc/nginx/sites-available/newfilya.ru-http.conf -NGINX_CONFIG_FILE_036=/etc/nginx/sites-available/newfilya.ru-https.conf -NGINX_CONFIG_FILE_037=/etc/nginx/sites-available/pvepro.ru-http.conf -NGINX_CONFIG_FILE_038=/etc/nginx/sites-available/pvepro.ru-https.conf -NGINX_CONFIG_FILE_039=/etc/nginx/sites-available/taftauto.ru-http.conf -NGINX_CONFIG_FILE_040=/etc/nginx/sites-available/taftauto.ru-https.conf -NGINX_CONFIG_FILE_041=/etc/nginx/sites-available/zakrutim.ru-http.conf -NGINX_CONFIG_FILE_042=/etc/nginx/sites-available/zakrutim.ru-https.conf -NGINX_CONFIG_FILE_043=/etc/nginx/snippets/fastcgi-php.conf -NGINX_CONFIG_FILE_044=/etc/nginx/snippets/git-read-server-observer-v3.conf -NGINX_CONFIG_FILE_045=/etc/nginx/snippets/snakeoil.conf -NGINX_CONFIG_FILE_046=/etc/nginx/uwsgi_params -NGINX_CONFIG_FILE_047=/etc/nginx/win-utf -HAPROXY_CONFIG_FILE_COUNT=8 -HAPROXY_CONFIG_FILE_001=/etc/haproxy/errors/400.http -HAPROXY_CONFIG_FILE_002=/etc/haproxy/errors/403.http -HAPROXY_CONFIG_FILE_003=/etc/haproxy/errors/408.http -HAPROXY_CONFIG_FILE_004=/etc/haproxy/errors/500.http -HAPROXY_CONFIG_FILE_005=/etc/haproxy/errors/502.http -HAPROXY_CONFIG_FILE_006=/etc/haproxy/errors/503.http -HAPROXY_CONFIG_FILE_007=/etc/haproxy/errors/504.http -HAPROXY_CONFIG_FILE_008=/etc/haproxy/haproxy.cfg -WIREGUARD_CONFIG_FILE_COUNT=0 -NETBIRD_CONFIG_FILE_COUNT=0 -ROLE_MANIFEST_END -TARGET_END=PITER -ROLE_MANIFEST_TARGETS_OK=3 -VPS565R3_DECISION=PASS_ALL_3_ROLE_APP_MANIFEST -VPS565R3_NEXT_GATE=FINAL_ROLE_CAPACITY_COST_ANALYSIS -HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SUPPORT-260919-INFRA-3VPS-ROLE-APP-MANIFEST-READONLY-565R3","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} +NEWFI112_BEGIN +COMMAND_ID=NEWFI-260919-NEWFDOM-CONTENTINDEXNOW-JOBMGR112 +NEWFI112_STAGING={"contentindex":{"excerpt":[{"line":40,"text":"\t\tif (!$contentUrl)"},{"line":41,"text":"\t\t{"},{"line":42,"text":"\t\t\t/** @var Entity $content */"},{"line":43,"text":"\t\t\t$content = $this->app->findByContentType($contentType, $contentId);"},{"line":44,"text":""},{"line":45,"text":"\t\t\tif (!$content instanceof Entity)"},{"line":46,"text":"\t\t\t{"},{"line":47,"text":"\t\t\t\t// content probably deleted"},{"line":48,"text":"\t\t\t\treturn $this->complete();"},{"line":49,"text":"\t\t\t}"},{"line":50,"text":""},{"line":51,"text":"\t\t\tif (!method_exists($content, 'canView'))"},{"line":52,"text":"\t\t\t{"},{"line":53,"text":"\t\t\t\tthrow new \\LogicException("},{"line":54,"text":"\t\t\t\t\t'Could not determine content viewability; Implement XF\\Entity\\ViewableInterface for ' . get_class($content)"},{"line":55,"text":"\t\t\t\t);"},{"line":56,"text":"\t\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t\tif (!$content instanceof LinkableInterface)"},{"line":59,"text":"\t\t\t{"},{"line":60,"text":"\t\t\t\tthrow new \\LogicException("},{"line":61,"text":"\t\t\t\t\t'Implement XF\\Entity\\LinkableInterface for ' . get_class($content)"},{"line":62,"text":"\t\t\t\t);"},{"line":63,"text":"\t\t\t}"},{"line":64,"text":""},{"line":65,"text":"\t\t\t$guestUser = \\XF::repository(UserRepository::class)->getGuestUser();"},{"line":66,"text":"\t\t\t$canView = \\XF::asVisitor($guestUser, function () use ($guestUser, $content)"},{"line":67,"text":"\t\t\t{"},{"line":68,"text":"\t\t\t\tif (!$guestUser->hasPermission('general', 'view'))"},{"line":69,"text":"\t\t\t\t{"},{"line":70,"text":"\t\t\t\t\treturn false;"},{"line":71,"text":"\t\t\t\t}"},{"line":72,"text":""},{"line":73,"text":"\t\t\t\treturn $content->canView($content);"},{"line":74,"text":"\t\t\t});"},{"line":75,"text":"\t\t\tif (!$canView)"},{"line":76,"text":"\t\t\t{"},{"line":77,"text":"\t\t\t\treturn $this->complete();"},{"line":78,"text":"\t\t\t}"},{"line":79,"text":""},{"line":80,"text":"\t\t\t$contentUrl = $content->getContentUrl(true);"},{"line":81,"text":"\t\t}"},{"line":82,"text":""}],"sha256":"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0"},"counts":{"drafts":0,"resources":6,"tag_content":18,"tags":15,"updates":6,"versions":6},"errors":{"ids":[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],"old_fp":"e739c2c309539a508e20eba89b0ebc688640ef6ff9f919bbb419b2faad819f80","rows":[{"error_id":33,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)"},{"error_id":34,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)"},{"error_id":35,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)"},{"error_id":36,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)"},{"error_id":37,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:variations.less: ParseError: Unexpected input in public:variations.less on line 849, column 34 (on or near line 849)"},{"error_id":38,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:core.less: ParseError: Unexpected input in public:core.less on line 849, column 34 (on or near line 849)"},{"error_id":39,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:app.less: ParseError: Unexpected input in public:app.less on line 849, column 34 (on or near line 849)"},{"error_id":40,"exception_type":"XF\\CssRenderException","filename":"src/XF/CssRenderException.php","line":89,"message":"Error rendering template public:extra.less: ParseError: Unexpected input in public:extra.less on line 849, column 34 (on or near line 849)"},{"error_id":41,"exception_type":"XF\\PrintableException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal"},{"error_id":42,"exception_type":"LogicException","filename":"src/XF/Mvc/Entity/Entity.php","line":645,"message":"Attempted to set 'type' while a save was pending without forceSet"},{"error_id":43,"exception_type":"ErrorException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Fatal Error: Uncaught XF\\PrintableException: Строка 111: Ошибка синтаксиса - Название шаблона: public:newfi_portal in /var/www/forums/newfi/public/src/XF/Mvc/Entity/Entity.php:1276 Stack trace: #0 Command line code(31): XF\\Mvc\\Entity\\Entity->save(true, false) #1 {main} thrown"},{"error_id":44,"exception_type":"ErrorException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"Fatal Error: Uncaught XF\\Db\\InvalidQueryException: MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\\'Gram/Support\\'' at line 1 in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\Db\\AbstractStatement->getException('...', 1064, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\Db\\Mysqli\\Statement->getException('...', 1064, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\Db\\Mysqli\\Statement->prepare() #3 /var/www"},{"error_id":45,"exception_type":"XF\\PrintableException","filename":"src/XF/Mvc/Entity/Entity.php","line":1276,"message":"Пожалуйста, введите корректный префикс роутинга."},{"error_id":46,"exception_type":"ErrorException","filename":"Command line code","line":5,"message":"Fatal Error: Uncaught ReflectionException: Method XF\\AddOn\\AbstractSetup::applyGlobalPermissionByGroup() does not exist in Command line code:5 Stack trace: #0 Command line code(5): ReflectionMethod->__construct('...', '...') #1 {main} thrown"},{"error_id":47,"exception_type":"XF\\Db\\InvalidQueryException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1"},{"error_id":48,"exception_type":"XF\\Db\\InvalidQueryException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'enabled FROM xf_template_modification WHERE addon_id = ? ORDER BY modificatio...' at line 1"},{"error_id":49,"exception_type":"XF\\Db\\Exception","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1054]: Unknown column 'sub_name_format' in 'SELECT'"},{"error_id":50,"exception_type":"XF\\Db\\Exception","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT'"},{"error_id":51,"exception_type":"ErrorException","filename":"Command line code","line":32,"message":"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:32 Stack trace: #0 Command line code(32): XF::handlePhpError(2, '...', '...', 32) #1 {main} thrown"},{"error_id":52,"exception_type":"ErrorException","filename":"Command line code","line":16,"message":"Fatal Error: Uncaught ErrorException: [E_WARNING] Trying to access array offset on false in Command line code:16 Stack trace: #0 Command line code(16): XF::handlePhpError(2, '...', '...', 16) #1 {main} thrown"},{"error_id":53,"exception_type":"ErrorException","filename":"src/XF/Db/AbstractStatement.php","line":225,"message":"Fatal Error: Uncaught XF\\Db\\Exception: MySQL statement prepare error [1054]: Unknown column 'display_in_list' in 'SELECT' in /var/www/forums/newfi/public/src/XF/Db/AbstractStatement.php:225 Stack trace: #0 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(207): XF\\Db\\AbstractStatement->getException('...', 1054, '...') #1 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(43): XF\\Db\\Mysqli\\Statement->getException('...', 1054, '...') #2 /var/www/forums/newfi/public/src/XF/Db/Mysqli/Statement.php(61): XF\\Db\\Mysqli\\Statement->prepare() #3 /var/www/forums/newfi/public/src/XF/Db/AbstractAdapter.php(96): XF\\Db\\Mysqli\\Statement->execute() #4 /var/www/forums/newfi/public/src/XF/Db/"},{"error_id":54,"exception_type":"ErrorException","filename":"src/XF/Service/ValidateAndSavableTrait.php","line":36,"message":"Fatal Error: Uncaught LogicException: Cannot save with validation errors. Use validate() to ensure there are no errors. (First error: Пожалуйста, укажите корректную версию.) in /var/www/forums/newfi/public/src/XF/Service/ValidateAndSavableTrait.php:36 Stack trace: #0 Command line code(4): XFRM\\Service\\ResourceItem\\Create->save() #1 /var/www/forums/newfi/public/src/XF.php(950): {closure}() #2 Command line code(4): XF::asVisitor(Object(XFRM\\XF\\Entity\\User), Object(Closure)) #3 {main} thrown"}]},"jobs":[],"manager":{"class":"XF\\Job\\Manager","file":"/var/www/forums/newfi/public/src/XF/Job/Manager.php","methods":{"cancelUniqueJob":{"end":414,"excerpt":[{"line":402,"text":"\tpublic function cancelUniqueJob($uniqueId)"},{"line":403,"text":"\t{"},{"line":404,"text":"\t\t$job = $this->getUniqueJob($uniqueId);"},{"line":405,"text":"\t\tif ($job)"},{"line":406,"text":"\t\t{"},{"line":407,"text":"\t\t\t$this->cancelJob($job);"},{"line":408,"text":"\t\t\treturn true;"},{"line":409,"text":"\t\t}"},{"line":410,"text":"\t\telse"},{"line":411,"text":"\t\t{"},{"line":412,"text":"\t\t\treturn false;"},{"line":413,"text":"\t\t}"},{"line":414,"text":"\t}"}],"start":402},"runByIds":{"end":138,"excerpt":[{"line":100,"text":"\tpublic function runByIds(array $ids, $maxRunTime)"},{"line":101,"text":"\t{"},{"line":102,"text":"\t\tif ($maxRunTime < 2)"},{"line":103,"text":"\t\t{"},{"line":104,"text":"\t\t\t$maxRunTime = 2;"},{"line":105,"text":"\t\t}"},{"line":106,"text":""},{"line":107,"text":"\t\t$startTime = microtime(true);"},{"line":108,"text":"\t\t$result = null;"},{"line":109,"text":""},{"line":110,"text":"\t\tforeach ($ids AS $k => $id)"},{"line":111,"text":"\t\t{"},{"line":112,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":113,"text":"\t\t\tif ($remaining < 1)"},{"line":114,"text":"\t\t\t{"},{"line":115,"text":"\t\t\t\tbreak;"},{"line":116,"text":"\t\t\t}"},{"line":117,"text":""},{"line":118,"text":"\t\t\t$job = $this->getJob($id);"},{"line":119,"text":"\t\t\tif ($job && $job['trigger_date'] <= time())"},{"line":120,"text":"\t\t\t{"},{"line":121,"text":"\t\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":122,"text":"\t\t\t}"},{"line":123,"text":"\t\t\telse"},{"line":124,"text":"\t\t\t{"},{"line":125,"text":"\t\t\t\t$result = null;"},{"line":126,"text":"\t\t\t}"},{"line":127,"text":""},{"line":128,"text":"\t\t\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)"},{"line":129,"text":"\t\t\t{"},{"line":130,"text":"\t\t\t\tunset($ids[$k]);"},{"line":131,"text":"\t\t\t}"},{"line":132,"text":"\t\t}"},{"line":133,"text":""},{"line":134,"text":"\t\treturn ["},{"line":135,"text":"\t\t\t'result' => $result,"},{"line":136,"text":"\t\t\t'remaining' => $ids,"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"start":100},"runJobEntry":{"end":249,"excerpt":[{"line":193,"text":"\tpublic function runJobEntry(array $job, $maxRunTime)"},{"line":194,"text":"\t{"},{"line":195,"text":"\t\t$affected = $this->db->update('xf_job', ["},{"line":196,"text":"\t\t\t'trigger_date' => time() + 15 * 60,"},{"line":197,"text":"\t\t\t'last_run_date' => time(),"},{"line":198,"text":"\t\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);"},{"line":199,"text":"\t\tif (!$affected)"},{"line":200,"text":"\t\t{"},{"line":201,"text":"\t\t\t// job has already been taken, treat it as complete"},{"line":202,"text":"\t\t\treturn JobResult::newComplete($job['job_id']);"},{"line":203,"text":"\t\t}"},{"line":204,"text":""},{"line":205,"text":"\t\t$result = $this->runJobInternal($job, $maxRunTime);"},{"line":206,"text":""},{"line":207,"text":"\t\tswitch ($result->result)"},{"line":208,"text":"\t\t{"},{"line":209,"text":"\t\t\tcase JobResult::RESULT_COMPLETED:"},{"line":210,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":211,"text":"\t\t\t\tbreak;"},{"line":212,"text":""},{"line":213,"text":"\t\t\tcase JobResult::RESULT_RESUME:"},{"line":214,"text":"\t\t\tcase JobResult::RESULT_REATTEMPT:"},{"line":215,"text":"\t\t\t\t$update = ["},{"line":216,"text":"\t\t\t\t\t'execute_data' => serialize($result->data),"},{"line":217,"text":"\t\t\t\t\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],"},{"line":218,"text":"\t\t\t\t\t'last_run_date' => time(),"},{"line":219,"text":"\t\t\t\t];"},{"line":220,"text":""},{"line":221,"text":"\t\t\t\tif ($result->result === JobResult::RESULT_REATTEMPT)"},{"line":222,"text":"\t\t\t\t{"},{"line":223,"text":"\t\t\t\t\t$update['attempts'] = $job['attempts'] + 1;"},{"line":224,"text":"\t\t\t\t}"},{"line":225,"text":""},{"line":226,"text":"\t\t\t\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);"},{"line":227,"text":""},{"line":228,"text":"\t\t\t\tbreak;"},{"line":229,"text":""},{"line":230,"text":"\t\t\tcase JobResult::RESULT_FAILED:"},{"line":231,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":232,"text":""},{"line":233,"text":"\t\t\t\tif ($result->exception)"},{"line":234,"text":"\t\t\t\t{"},{"line":235,"text":"\t\t\t\t\t$jobForLogging = $job;"},{"line":236,"text":"\t\t\t\t\t$jobForLogging['execute_data'] = serialize($result->data);"},{"line":237,"text":"\t\t\t\t\t$this->logFailedJob($jobForLogging, $result->exception);"},{"line":238,"text":"\t\t\t\t}"},{"line":239,"text":""},{"line":240,"text":"\t\t\t\tbreak;"},{"line":241,"text":"\t\t}"},{"line":242,"text":""},{"line":243,"text":"\t\tif (!$job['manual_execute'])"},{"line":244,"text":"\t\t{"},{"line":245,"text":"\t\t\t$this->scheduleRunTimeUpdate();"},{"line":246,"text":"\t\t}"},{"line":247,"text":""},{"line":248,"text":"\t\treturn $result;"},{"line":249,"text":"\t}"}],"start":193},"runQueue":{"end":93,"excerpt":[{"line":70,"text":"\tpublic function runQueue($manual, $maxRunTime)"},{"line":71,"text":"\t{"},{"line":72,"text":"\t\tif ($maxRunTime < 2)"},{"line":73,"text":"\t\t{"},{"line":74,"text":"\t\t\t$maxRunTime = 2;"},{"line":75,"text":"\t\t}"},{"line":76,"text":""},{"line":77,"text":"\t\t$runnable = $this->getRunnable($manual);"},{"line":78,"text":"\t\t$startTime = microtime(true);"},{"line":79,"text":"\t\t$result = null;"},{"line":80,"text":""},{"line":81,"text":"\t\tforeach ($runnable AS $job)"},{"line":82,"text":"\t\t{"},{"line":83,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":84,"text":"\t\t\tif ($remaining < 1)"},{"line":85,"text":"\t\t\t{"},{"line":86,"text":"\t\t\t\tbreak;"},{"line":87,"text":"\t\t\t}"},{"line":88,"text":""},{"line":89,"text":"\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":90,"text":"\t\t}"},{"line":91,"text":""},{"line":92,"text":"\t\treturn $result;"},{"line":93,"text":"\t}"}],"start":70}},"sha256":"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9"}} +NEWFI112_PRODUCTION={"contentindex":{"excerpt":[{"line":40,"text":"\t\tif (!$contentUrl)"},{"line":41,"text":"\t\t{"},{"line":42,"text":"\t\t\t/** @var Entity $content */"},{"line":43,"text":"\t\t\t$content = $this->app->findByContentType($contentType, $contentId);"},{"line":44,"text":""},{"line":45,"text":"\t\t\tif (!$content instanceof Entity)"},{"line":46,"text":"\t\t\t{"},{"line":47,"text":"\t\t\t\t// content probably deleted"},{"line":48,"text":"\t\t\t\treturn $this->complete();"},{"line":49,"text":"\t\t\t}"},{"line":50,"text":""},{"line":51,"text":"\t\t\tif (!method_exists($content, 'canView'))"},{"line":52,"text":"\t\t\t{"},{"line":53,"text":"\t\t\t\tthrow new \\LogicException("},{"line":54,"text":"\t\t\t\t\t'Could not determine content viewability; Implement XF\\Entity\\ViewableInterface for ' . get_class($content)"},{"line":55,"text":"\t\t\t\t);"},{"line":56,"text":"\t\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t\tif (!$content instanceof LinkableInterface)"},{"line":59,"text":"\t\t\t{"},{"line":60,"text":"\t\t\t\tthrow new \\LogicException("},{"line":61,"text":"\t\t\t\t\t'Implement XF\\Entity\\LinkableInterface for ' . get_class($content)"},{"line":62,"text":"\t\t\t\t);"},{"line":63,"text":"\t\t\t}"},{"line":64,"text":""},{"line":65,"text":"\t\t\t$guestUser = \\XF::repository(UserRepository::class)->getGuestUser();"},{"line":66,"text":"\t\t\t$canView = \\XF::asVisitor($guestUser, function () use ($guestUser, $content)"},{"line":67,"text":"\t\t\t{"},{"line":68,"text":"\t\t\t\tif (!$guestUser->hasPermission('general', 'view'))"},{"line":69,"text":"\t\t\t\t{"},{"line":70,"text":"\t\t\t\t\treturn false;"},{"line":71,"text":"\t\t\t\t}"},{"line":72,"text":""},{"line":73,"text":"\t\t\t\treturn $content->canView($content);"},{"line":74,"text":"\t\t\t});"},{"line":75,"text":"\t\t\tif (!$canView)"},{"line":76,"text":"\t\t\t{"},{"line":77,"text":"\t\t\t\treturn $this->complete();"},{"line":78,"text":"\t\t\t}"},{"line":79,"text":""},{"line":80,"text":"\t\t\t$contentUrl = $content->getContentUrl(true);"},{"line":81,"text":"\t\t}"},{"line":82,"text":""}],"sha256":"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0"},"counts":{"drafts":0,"resources":6,"tag_content":18,"tags":15,"updates":6,"versions":6},"errors":{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"old_fp":"737935e0f156defd5fcd89c9e05899bb3577964371bc436e65db7c7e461be69b","rows":[{"error_id":1,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":2,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":3,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":4,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":5,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":6,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":7,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":8,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":9,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":10,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":11,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":12,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":13,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":14,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":15,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":16,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":17,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":18,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":19,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":20,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":21,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":22,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":23,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":24,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":25,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":26,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":27,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":28,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":29,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":30,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":31,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":32,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":33,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":34,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":35,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":36,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":37,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":38,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":39,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"},{"error_id":40,"exception_type":"TypeError","filename":"src/XF/Job/ContentIndexNow.php","line":51,"message":"XF\\Job\\ContentIndexNow: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given"}]},"jobs":[{"decoded":{"content_id":8,"content_type":"resource_update"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2324,"manual_execute":0,"sha":"591830a19f29b2c3e29b892e964de5b94f7fae02f06c93bd80b932322f9004ef","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":8,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2325,"manual_execute":0,"sha":"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":8,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2326,"manual_execute":0,"sha":"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":9,"content_type":"resource_update"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2327,"manual_execute":0,"sha":"ca7e861203d277dcebcfe938cbd8b9ba6e2807f563a5a76e4abe0099208de304","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":9,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2328,"manual_execute":0,"sha":"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":9,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2329,"manual_execute":0,"sha":"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":8,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2330,"manual_execute":0,"sha":"9ea9feade3b6f10bb73feaa687b4ef2517eceec0376c3c8bca2d8548a0e4ec0f","trigger_date":1789770301,"unique_key":null},{"decoded":{"content_id":9,"content_type":"resource"},"execute_class":"XF\\Job\\ContentIndexNow","job_id":2331,"manual_execute":0,"sha":"33d264199467673b8d10d00f8c80cd84dbaaadbbd31cd98f2f54cc98570800ea","trigger_date":1789770301,"unique_key":null}],"manager":{"class":"XF\\Job\\Manager","file":"/var/www/forums/newfi/public/src/XF/Job/Manager.php","methods":{"cancelUniqueJob":{"end":414,"excerpt":[{"line":402,"text":"\tpublic function cancelUniqueJob($uniqueId)"},{"line":403,"text":"\t{"},{"line":404,"text":"\t\t$job = $this->getUniqueJob($uniqueId);"},{"line":405,"text":"\t\tif ($job)"},{"line":406,"text":"\t\t{"},{"line":407,"text":"\t\t\t$this->cancelJob($job);"},{"line":408,"text":"\t\t\treturn true;"},{"line":409,"text":"\t\t}"},{"line":410,"text":"\t\telse"},{"line":411,"text":"\t\t{"},{"line":412,"text":"\t\t\treturn false;"},{"line":413,"text":"\t\t}"},{"line":414,"text":"\t}"}],"start":402},"runByIds":{"end":138,"excerpt":[{"line":100,"text":"\tpublic function runByIds(array $ids, $maxRunTime)"},{"line":101,"text":"\t{"},{"line":102,"text":"\t\tif ($maxRunTime < 2)"},{"line":103,"text":"\t\t{"},{"line":104,"text":"\t\t\t$maxRunTime = 2;"},{"line":105,"text":"\t\t}"},{"line":106,"text":""},{"line":107,"text":"\t\t$startTime = microtime(true);"},{"line":108,"text":"\t\t$result = null;"},{"line":109,"text":""},{"line":110,"text":"\t\tforeach ($ids AS $k => $id)"},{"line":111,"text":"\t\t{"},{"line":112,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":113,"text":"\t\t\tif ($remaining < 1)"},{"line":114,"text":"\t\t\t{"},{"line":115,"text":"\t\t\t\tbreak;"},{"line":116,"text":"\t\t\t}"},{"line":117,"text":""},{"line":118,"text":"\t\t\t$job = $this->getJob($id);"},{"line":119,"text":"\t\t\tif ($job && $job['trigger_date'] <= time())"},{"line":120,"text":"\t\t\t{"},{"line":121,"text":"\t\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":122,"text":"\t\t\t}"},{"line":123,"text":"\t\t\telse"},{"line":124,"text":"\t\t\t{"},{"line":125,"text":"\t\t\t\t$result = null;"},{"line":126,"text":"\t\t\t}"},{"line":127,"text":""},{"line":128,"text":"\t\t\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)"},{"line":129,"text":"\t\t\t{"},{"line":130,"text":"\t\t\t\tunset($ids[$k]);"},{"line":131,"text":"\t\t\t}"},{"line":132,"text":"\t\t}"},{"line":133,"text":""},{"line":134,"text":"\t\treturn ["},{"line":135,"text":"\t\t\t'result' => $result,"},{"line":136,"text":"\t\t\t'remaining' => $ids,"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"start":100},"runJobEntry":{"end":249,"excerpt":[{"line":193,"text":"\tpublic function runJobEntry(array $job, $maxRunTime)"},{"line":194,"text":"\t{"},{"line":195,"text":"\t\t$affected = $this->db->update('xf_job', ["},{"line":196,"text":"\t\t\t'trigger_date' => time() + 15 * 60,"},{"line":197,"text":"\t\t\t'last_run_date' => time(),"},{"line":198,"text":"\t\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);"},{"line":199,"text":"\t\tif (!$affected)"},{"line":200,"text":"\t\t{"},{"line":201,"text":"\t\t\t// job has already been taken, treat it as complete"},{"line":202,"text":"\t\t\treturn JobResult::newComplete($job['job_id']);"},{"line":203,"text":"\t\t}"},{"line":204,"text":""},{"line":205,"text":"\t\t$result = $this->runJobInternal($job, $maxRunTime);"},{"line":206,"text":""},{"line":207,"text":"\t\tswitch ($result->result)"},{"line":208,"text":"\t\t{"},{"line":209,"text":"\t\t\tcase JobResult::RESULT_COMPLETED:"},{"line":210,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":211,"text":"\t\t\t\tbreak;"},{"line":212,"text":""},{"line":213,"text":"\t\t\tcase JobResult::RESULT_RESUME:"},{"line":214,"text":"\t\t\tcase JobResult::RESULT_REATTEMPT:"},{"line":215,"text":"\t\t\t\t$update = ["},{"line":216,"text":"\t\t\t\t\t'execute_data' => serialize($result->data),"},{"line":217,"text":"\t\t\t\t\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],"},{"line":218,"text":"\t\t\t\t\t'last_run_date' => time(),"},{"line":219,"text":"\t\t\t\t];"},{"line":220,"text":""},{"line":221,"text":"\t\t\t\tif ($result->result === JobResult::RESULT_REATTEMPT)"},{"line":222,"text":"\t\t\t\t{"},{"line":223,"text":"\t\t\t\t\t$update['attempts'] = $job['attempts'] + 1;"},{"line":224,"text":"\t\t\t\t}"},{"line":225,"text":""},{"line":226,"text":"\t\t\t\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);"},{"line":227,"text":""},{"line":228,"text":"\t\t\t\tbreak;"},{"line":229,"text":""},{"line":230,"text":"\t\t\tcase JobResult::RESULT_FAILED:"},{"line":231,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":232,"text":""},{"line":233,"text":"\t\t\t\tif ($result->exception)"},{"line":234,"text":"\t\t\t\t{"},{"line":235,"text":"\t\t\t\t\t$jobForLogging = $job;"},{"line":236,"text":"\t\t\t\t\t$jobForLogging['execute_data'] = serialize($result->data);"},{"line":237,"text":"\t\t\t\t\t$this->logFailedJob($jobForLogging, $result->exception);"},{"line":238,"text":"\t\t\t\t}"},{"line":239,"text":""},{"line":240,"text":"\t\t\t\tbreak;"},{"line":241,"text":"\t\t}"},{"line":242,"text":""},{"line":243,"text":"\t\tif (!$job['manual_execute'])"},{"line":244,"text":"\t\t{"},{"line":245,"text":"\t\t\t$this->scheduleRunTimeUpdate();"},{"line":246,"text":"\t\t}"},{"line":247,"text":""},{"line":248,"text":"\t\treturn $result;"},{"line":249,"text":"\t}"}],"start":193},"runQueue":{"end":93,"excerpt":[{"line":70,"text":"\tpublic function runQueue($manual, $maxRunTime)"},{"line":71,"text":"\t{"},{"line":72,"text":"\t\tif ($maxRunTime < 2)"},{"line":73,"text":"\t\t{"},{"line":74,"text":"\t\t\t$maxRunTime = 2;"},{"line":75,"text":"\t\t}"},{"line":76,"text":""},{"line":77,"text":"\t\t$runnable = $this->getRunnable($manual);"},{"line":78,"text":"\t\t$startTime = microtime(true);"},{"line":79,"text":"\t\t$result = null;"},{"line":80,"text":""},{"line":81,"text":"\t\tforeach ($runnable AS $job)"},{"line":82,"text":"\t\t{"},{"line":83,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":84,"text":"\t\t\tif ($remaining < 1)"},{"line":85,"text":"\t\t\t{"},{"line":86,"text":"\t\t\t\tbreak;"},{"line":87,"text":"\t\t\t}"},{"line":88,"text":""},{"line":89,"text":"\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":90,"text":"\t\t}"},{"line":91,"text":""},{"line":92,"text":"\t\treturn $result;"},{"line":93,"text":"\t}"}],"start":70}},"sha256":"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9"}} +NEWFI112_SAFE_REPORT={"changes_made":false,"decision":"PASS_CONTENTINDEXNOW_JOBMANAGER_SEMANTICS_CAPTURED","git_head":"e8f15ac7d52daa18470f4b2377a60aa3c2582b76","manager_methods":{"cancelUniqueJob":{"end":414,"excerpt":[{"line":402,"text":"\tpublic function cancelUniqueJob($uniqueId)"},{"line":403,"text":"\t{"},{"line":404,"text":"\t\t$job = $this->getUniqueJob($uniqueId);"},{"line":405,"text":"\t\tif ($job)"},{"line":406,"text":"\t\t{"},{"line":407,"text":"\t\t\t$this->cancelJob($job);"},{"line":408,"text":"\t\t\treturn true;"},{"line":409,"text":"\t\t}"},{"line":410,"text":"\t\telse"},{"line":411,"text":"\t\t{"},{"line":412,"text":"\t\t\treturn false;"},{"line":413,"text":"\t\t}"},{"line":414,"text":"\t}"}],"start":402},"runByIds":{"end":138,"excerpt":[{"line":100,"text":"\tpublic function runByIds(array $ids, $maxRunTime)"},{"line":101,"text":"\t{"},{"line":102,"text":"\t\tif ($maxRunTime < 2)"},{"line":103,"text":"\t\t{"},{"line":104,"text":"\t\t\t$maxRunTime = 2;"},{"line":105,"text":"\t\t}"},{"line":106,"text":""},{"line":107,"text":"\t\t$startTime = microtime(true);"},{"line":108,"text":"\t\t$result = null;"},{"line":109,"text":""},{"line":110,"text":"\t\tforeach ($ids AS $k => $id)"},{"line":111,"text":"\t\t{"},{"line":112,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":113,"text":"\t\t\tif ($remaining < 1)"},{"line":114,"text":"\t\t\t{"},{"line":115,"text":"\t\t\t\tbreak;"},{"line":116,"text":"\t\t\t}"},{"line":117,"text":""},{"line":118,"text":"\t\t\t$job = $this->getJob($id);"},{"line":119,"text":"\t\t\tif ($job && $job['trigger_date'] <= time())"},{"line":120,"text":"\t\t\t{"},{"line":121,"text":"\t\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":122,"text":"\t\t\t}"},{"line":123,"text":"\t\t\telse"},{"line":124,"text":"\t\t\t{"},{"line":125,"text":"\t\t\t\t$result = null;"},{"line":126,"text":"\t\t\t}"},{"line":127,"text":""},{"line":128,"text":"\t\t\tif (!$result || $result->result === JobResult::RESULT_COMPLETED)"},{"line":129,"text":"\t\t\t{"},{"line":130,"text":"\t\t\t\tunset($ids[$k]);"},{"line":131,"text":"\t\t\t}"},{"line":132,"text":"\t\t}"},{"line":133,"text":""},{"line":134,"text":"\t\treturn ["},{"line":135,"text":"\t\t\t'result' => $result,"},{"line":136,"text":"\t\t\t'remaining' => $ids,"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"start":100},"runJobEntry":{"end":249,"excerpt":[{"line":193,"text":"\tpublic function runJobEntry(array $job, $maxRunTime)"},{"line":194,"text":"\t{"},{"line":195,"text":"\t\t$affected = $this->db->update('xf_job', ["},{"line":196,"text":"\t\t\t'trigger_date' => time() + 15 * 60,"},{"line":197,"text":"\t\t\t'last_run_date' => time(),"},{"line":198,"text":"\t\t], 'job_id = ? AND trigger_date = ?', [$job['job_id'], $job['trigger_date']]);"},{"line":199,"text":"\t\tif (!$affected)"},{"line":200,"text":"\t\t{"},{"line":201,"text":"\t\t\t// job has already been taken, treat it as complete"},{"line":202,"text":"\t\t\treturn JobResult::newComplete($job['job_id']);"},{"line":203,"text":"\t\t}"},{"line":204,"text":""},{"line":205,"text":"\t\t$result = $this->runJobInternal($job, $maxRunTime);"},{"line":206,"text":""},{"line":207,"text":"\t\tswitch ($result->result)"},{"line":208,"text":"\t\t{"},{"line":209,"text":"\t\t\tcase JobResult::RESULT_COMPLETED:"},{"line":210,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":211,"text":"\t\t\t\tbreak;"},{"line":212,"text":""},{"line":213,"text":"\t\t\tcase JobResult::RESULT_RESUME:"},{"line":214,"text":"\t\t\tcase JobResult::RESULT_REATTEMPT:"},{"line":215,"text":"\t\t\t\t$update = ["},{"line":216,"text":"\t\t\t\t\t'execute_data' => serialize($result->data),"},{"line":217,"text":"\t\t\t\t\t'trigger_date' => $result->continueDate ? (int) $result->continueDate : $job['trigger_date'],"},{"line":218,"text":"\t\t\t\t\t'last_run_date' => time(),"},{"line":219,"text":"\t\t\t\t];"},{"line":220,"text":""},{"line":221,"text":"\t\t\t\tif ($result->result === JobResult::RESULT_REATTEMPT)"},{"line":222,"text":"\t\t\t\t{"},{"line":223,"text":"\t\t\t\t\t$update['attempts'] = $job['attempts'] + 1;"},{"line":224,"text":"\t\t\t\t}"},{"line":225,"text":""},{"line":226,"text":"\t\t\t\t$this->db->update('xf_job', $update, 'job_id = ?', $job['job_id']);"},{"line":227,"text":""},{"line":228,"text":"\t\t\t\tbreak;"},{"line":229,"text":""},{"line":230,"text":"\t\t\tcase JobResult::RESULT_FAILED:"},{"line":231,"text":"\t\t\t\t$this->cancelAndDequeueJob($job);"},{"line":232,"text":""},{"line":233,"text":"\t\t\t\tif ($result->exception)"},{"line":234,"text":"\t\t\t\t{"},{"line":235,"text":"\t\t\t\t\t$jobForLogging = $job;"},{"line":236,"text":"\t\t\t\t\t$jobForLogging['execute_data'] = serialize($result->data);"},{"line":237,"text":"\t\t\t\t\t$this->logFailedJob($jobForLogging, $result->exception);"},{"line":238,"text":"\t\t\t\t}"},{"line":239,"text":""},{"line":240,"text":"\t\t\t\tbreak;"},{"line":241,"text":"\t\t}"},{"line":242,"text":""},{"line":243,"text":"\t\tif (!$job['manual_execute'])"},{"line":244,"text":"\t\t{"},{"line":245,"text":"\t\t\t$this->scheduleRunTimeUpdate();"},{"line":246,"text":"\t\t}"},{"line":247,"text":""},{"line":248,"text":"\t\treturn $result;"},{"line":249,"text":"\t}"}],"start":193},"runQueue":{"end":93,"excerpt":[{"line":70,"text":"\tpublic function runQueue($manual, $maxRunTime)"},{"line":71,"text":"\t{"},{"line":72,"text":"\t\tif ($maxRunTime < 2)"},{"line":73,"text":"\t\t{"},{"line":74,"text":"\t\t\t$maxRunTime = 2;"},{"line":75,"text":"\t\t}"},{"line":76,"text":""},{"line":77,"text":"\t\t$runnable = $this->getRunnable($manual);"},{"line":78,"text":"\t\t$startTime = microtime(true);"},{"line":79,"text":"\t\t$result = null;"},{"line":80,"text":""},{"line":81,"text":"\t\tforeach ($runnable AS $job)"},{"line":82,"text":"\t\t{"},{"line":83,"text":"\t\t\t$remaining = $maxRunTime - (microtime(true) - $startTime);"},{"line":84,"text":"\t\t\tif ($remaining < 1)"},{"line":85,"text":"\t\t\t{"},{"line":86,"text":"\t\t\t\tbreak;"},{"line":87,"text":"\t\t\t}"},{"line":88,"text":""},{"line":89,"text":"\t\t\t$result = $this->runJobEntry($job, $remaining);"},{"line":90,"text":"\t\t}"},{"line":91,"text":""},{"line":92,"text":"\t\treturn $result;"},{"line":93,"text":"\t}"}],"start":70}},"manager_sha256":"bb62eaeb6d8e4ade4a5cef3a942b1ce0e67dec3af01ef50224700ee4765dbeb9","patched_sha_production":"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0","patched_sha_staging":"b025d0658da8716a5cf5bbf85e63bb7885ac24715353da58a8bac9c5b7adeef0","production_error_ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"production_jobs":[2324,2325,2326,2327,2328,2329,2330,2331]} +NEWFI112_DECISION=PASS_CONTENTINDEXNOW_JOBMANAGER_SEMANTICS_CAPTURED +NEWFI112_NEXT_GATE=COMPLETE_HOTFIX_ACCEPTANCE_AND_REMOVE_ONLY_PROVEN_STALE_ROWS OUTPUT_END CHAT_OUTPUT_END