Ошибка «Нет такого индекса» в контроллере ElasticSearch при загрузке пользовательского модуля - PullRequest
1 голос
/ 28 марта 2019

Я создал набор пользовательских modules, собранных в один пакет на этапе подготовки SugarCRM 8.0.0.Чтобы перенести эти modules, я решил publish пакет, чтобы я мог загрузить установочный zip-файл в другой экземпляр.К сожалению, когда я пытаюсь загрузить zip-файл на принимающий экземпляр с помощью загрузчика модулей, установка зависает на 80 процентов, что приводит к ошибке в sugarlog

Я использую ElasticSearch 5.4, который совместим с экземпляром SugarЯ бегу.Это ошибка, которая отображается в журналах:

Thu Mar 28 17:54:19 2019 [1786][1][FATAL] Elasticsearch request failure: no such index [index: ab164c0013004724c8eba5f5f6f3f646_shared]
Thu Mar 28 17:54:19 2019 [1786][1][FATAL] Exception in Controller: Elastica\Exception\ResponseException: no such index [index: ab164c0013004724c8eba5f5f6f3f646_shared] in /var/www/html/SugarPro-Full-8/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php:179
Stack trace:
#0 /var/www/html/SugarPro-Full-8/vendor/ruflin/elastica/lib/Elastica/Request.php(193): Elastica\Transport\Http->exec(Object(Elastica\Request), Array)
#1 /var/www/html/SugarPro-Full-8/vendor/ruflin/elastica/lib/Elastica/Client.php(674): Elastica\Request->send()
#2 /var/www/html/SugarPro-Full-8/src/Elasticsearch/Adapter/Client.php(355): Elastica\Client->request('ab164c001300472...', 'PUT', Array, Array)
#3 /var/www/html/SugarPro-Full-8/vendor/ruflin/elastica/lib/Elastica/Client.php(706): Sugarcrm\Sugarcrm\Elasticsearch\Adapter\Client->request('ab164c001300472...', 'PUT', Array, Array)
#4 /var/www/html/SugarPro-Full-8/vendor/ruflin/elastica/lib/Elastica/Index.php(562): Elastica\Client->requestEndpoint(Object(Elasticsearch\Endpoints\Indices\Mapping\Put))
#5 /var/www/html/SugarPro-Full-8/vendor/ruflin/elastica/lib/Elastica/Type.php(523): Elastica\Index->requestEndpoint(Object(Elasticsearch\Endpoints\Indices\Mapping\Put))
#6 /var/www/html/SugarPro-Full-8/vendor/ruflin/elastica/lib/Elastica/Type/Mapping.php(250): Elastica\Type->requestEndpoint(Object(Elasticsearch\Endpoints\Indices\Mapping\Put))
#7 /var/www/html/SugarPro-Full-8/src/Elasticsearch/Index/IndexManager.php(486): Elastica\Type\Mapping->send()
#8 /var/www/html/SugarPro-Full-8/src/Elasticsearch/Index/IndexManager.php(390): Sugarcrm\Sugarcrm\Elasticsearch\Index\IndexManager->sendMapping(Object(Elastica\Type\Mapping))
#9 /var/www/html/SugarPro-Full-8/src/Elasticsearch/Index/IndexManager.php(285): Sugarcrm\Sugarcrm\Elasticsearch\Index\IndexManager->createIndices(Object(Sugarcrm\Sugarcrm\Elasticsearch\Index\IndexCollection), Object(Sugarcrm\Sugarcrm\Elasticsearch\Analysis\AnalysisBuilder), Object(Sugarcrm\Sugarcrm\Elasticsearch\Mapping\MappingCollection), false)
#10 /var/www/html/SugarPro-Full-8/src/Elasticsearch/Index/IndexManager.php(200): Sugarcrm\Sugarcrm\Elasticsearch\Index\IndexManager->syncIndices(Array, false)
#11 /var/www/html/SugarPro-Full-8/src/SearchEngine/Engine/Elastic.php(113): Sugarcrm\Sugarcrm\Elasticsearch\Index\IndexManager->addMappings(Array)
#12 /var/www/html/SugarPro-Full-8/ModuleInstall/ModuleInstaller.php(3489): Sugarcrm\Sugarcrm\SearchEngine\Engine\Elastic->addMappings(Array)
#13 /var/www/html/SugarPro-Full-8/ModuleInstall/ModuleInstaller.php(168): ModuleInstaller->setup_elastic_mapping()
#14 /var/www/html/SugarPro-Full-8/modules/Administration/UpgradeWizard_commit.php(342): ModuleInstaller->install('cache/upgrades/...')
#15 /var/www/html/SugarPro-Full-8/include/MVC/View/SugarView.php(489): require_once('/var/www/html/S...')
#16 /var/www/html/SugarPro-Full-8/include/MVC/View/views/view.classic.php(43): SugarView->includeClassicFile('cache/upgrades/...')
#17 /var/www/html/SugarPro-Full-8/include/MVC/View/SugarView.php(152): ViewClassic->display(Array)
#18 /var/www/html/SugarPro-Full-8/include/MVC/Controller/SugarController.php(351): SugarView->process(Array)
#19 /var/www/html/SugarPro-Full-8/include/MVC/Controller/SugarController.php(299): SugarController->processView()
#20 /var/www/html/SugarPro-Full-8/include/MVC/SugarApplication.php(198): SugarController->execute()
#21 /var/www/html/SugarPro-Full-8/index.php(27): SugarApplication->execute()
#22 {main}
Thu Mar 28 17:54:19 2019 [1786][1][FATAL] ERROR: rmdir_recursive(): argument cache/upgrades/temp/ICB8l3 is not a file or a dir.

Я несколько раз пытался восстановить и перестроить, а также снова попытался опубликовать пакет, чтобы перепроверить, если были какие-либо ошибки, которые у меня могли не быть.заметил.Я попытался использовать другой экземпляр для загрузки на случай, если мой текущий экземпляр может быть поврежден, но то же самое наблюдалось.Я не понимаю, что может быть причиной проблемы.

1 Ответ

0 голосов
/ 29 марта 2019
Elasticsearch request failure: no such index [index: ...]

Это говорит о том, что индекс Elasticsearch отсутствует (или поврежден).

Как исправить:

  • Вход в Sugar с правами администратора
  • Перейти к Администрирование -> Поиск (или Глобальный поиск в некоторых версиях Sugar)
  • Нажмите кнопку « Расписание системного индекса » (и подтвердите предупреждение javascript, связанное с производительностью, если оно есть), после чего появится всплывающее окно со списком
  • Прокрутите вниз во всплывающем окне и выберите « Удалить существующие данные при выполнении индексации. Будут проиндексированы только данные в выбранных модулях. ".
    Этот шаг важен . Если вы забудете установить этот флажок, переиндексация не удастся (потому что она пытается пополнить существующий индекс, а не заново создавать его с нуля).
  • Подтвердите, нажав кнопку « Индекс ». Это (заново) создаст нужный вам индекс.
  • Теперь вы сможете снова установить новые модули!

Примечания:

  • Имя индекса Elasticsearch основано на значении $sugar_config['unique_key'] в config.php. Изменение этого значения и перестройка кэша приведут к тому, что Sugar будет искать новое имя индекса. Вам нужно будет запустить переиндексацию, как описано выше (если только вы не переименуете индекс в Elasticsearch, чтобы он был найден снова).
  • Вновь созданный индекс, возможно, останется пустым (хотя этого должно хватить для установки модулей), если ваш cron / Schedulers не запущен. Если Elastic Search Scheduler работает, он заполнит индекс данными в течение следующих минут / часов, и вы можете использовать поиск в верхнем правом углу Sugar.
...