From e482afdd29abf91ddf348092cdbc91c0d5efcec2 Mon Sep 17 00:00:00 2001
From: Lee Rowlands <lee.rowlands@previousnext.com.au>
Date: Mon, 24 Jul 2023 18:51:15 +1000
Subject: [PATCH] Issue #3376376: HelpSectionManager::clearCachedDefinitions
 breaks the update system

---
 core/modules/help/help.module                | 14 +++++++++++++-
 core/modules/help/src/HelpSectionManager.php |  3 +--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/core/modules/help/help.module b/core/modules/help/help.module
index 5d5e24a6b182..444cac5af62c 100644
--- a/core/modules/help/help.module
+++ b/core/modules/help/help.module
@@ -148,7 +148,7 @@ function _help_search_update(array $extensions = []): void {
     return;
   }
 
-  if (\Drupal::service('update.update_hook_registry')->getInstalledVersion('help') >= 10100) {
+  if (_help_is_fully_installed()) {
     // Ensure that topics for extensions that have been uninstalled are removed
     // and that the index state variable is updated.
     $help_search = \Drupal::service('plugin.manager.search')->createInstance('help_search');
@@ -156,3 +156,15 @@ function _help_search_update(array $extensions = []): void {
     $help_search->updateIndexState();
   }
 }
+
+/**
+ * Checks whether the help module installation is complete.
+ *
+ * @return bool
+ *
+ * @see \help_update_10200()
+ */
+function _help_is_fully_installed(): bool {
+  return \Drupal::service('update.update_hook_registry')
+    ->getInstalledVersion('help') >= 10200;
+}
diff --git a/core/modules/help/src/HelpSectionManager.php b/core/modules/help/src/HelpSectionManager.php
index d8037e5082b7..916091b56744 100644
--- a/core/modules/help/src/HelpSectionManager.php
+++ b/core/modules/help/src/HelpSectionManager.php
@@ -57,8 +57,7 @@ public function setSearchManager(?PluginManagerInterface $search_manager = NULL)
    */
   public function clearCachedDefinitions() {
     parent::clearCachedDefinitions();
-    $version = \Drupal::service('update.update_hook_registry')->getInstalledVersion('help');
-    if ($this->searchManager && $version >= 10100) {
+    if ($this->searchManager && _help_is_fully_installed()) {
       // Rebuild the index on cache clear so that new help topics are indexed
       // and any changes due to help topics edits or translation changes are
       // picked up.
-- 
GitLab