tpwd / ke_search

Search Extension for TYPO3 Content Management System, including faceting search functions.
https://extensions.typo3.org/extension/ke_search/
GNU General Public License v3.0
7 stars 31 forks source link

planned scheduler RuntimeException #199

Closed abohntek closed 9 months ago

abohntek commented 10 months ago

The planned scheduler error (#169) still persists or has reoccurred. This issue was tested on the following configurations:

No errors were encountered during manual execution.

christianbltr commented 10 months ago

I could not reproduce this issue. Do you get the same error message as in #169?

abohntek commented 9 months ago

the full error log is (vendor & package names are replaced):

Mon, 13 Nov 2023 09:08:30 +0000 [CRITICAL] request="f339f8378c056" component="Helhum.Typo3Console.Error.ExceptionRenderer": Unable to call method "getQueryParams" of non-object "request".- RuntimeException: Unable to call method "getQueryParams" of non-object "request"., in file /var/website/current/vendor/symfony/expression-language/Node/GetAttrNode.php:110 - {"exception":"RuntimeException: Unable to call method \"getQueryParams\" of non-object \"request\". in /var/website/current/vendor/symfony/expression-language/Node/GetAttrNode.php:110\nStack trace:\n#0 /var/website/current/vendor/symfony/expression-language/Node/FunctionNode.php(47): Symfony\\Component\\ExpressionLanguage\\Node\\GetAttrNode->evaluate(Array, Array)\n#1 /var/website/current/vendor/symfony/expression-language/Node/BinaryNode.php(98): Symfony\\Component\\ExpressionLanguage\\Node\\FunctionNode->evaluate(Array, Array)\n#2 /var/website/current/vendor/symfony/expression-language/ExpressionLanguage.php(59): Symfony\\Component\\ExpressionLanguage\\Node\\BinaryNode->evaluate(Array, Array)\n#3 /var/website/current/vendor/typo3/cms-core/Classes/ExpressionLanguage/Resolver.php(73): Symfony\\Component\\ExpressionLanguage\\ExpressionLanguage->evaluate('traverse(reques...', Array)\n#4 /var/website/current/vendor/typo3/cms-core/Classes/TypoScript/IncludeTree/Visitor/IncludeTreeConditionMatcherVisitor.php(163): TYPO3\\CMS\\Core\\ExpressionLanguage\\Resolver->evaluate('traverse(reques...')\n#5 /var/website/current/vendor/typo3/cms-core/Classes/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverser.php(55): TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\Visitor\\IncludeTreeConditionMatcherVisitor->visitBeforeChildren(Object(TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\IncludeNode\\ConditionInclude), 4)\n#6 /var/website/current/vendor/typo3/cms-core/Classes/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverser.php(62): TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\Traverser\\ConditionVerdictAwareIncludeTreeTraverser->traverseRecursive(Object(TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\IncludeNode\\ConditionInclude), Array, 4)\n#7 /var/website/current/vendor/typo3/cms-core/Classes/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverser.php(62): TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\Traverser\\ConditionVerdictAwareIncludeTreeTraverser->traverseRecursive(Object(TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\IncludeNode\\FileInclude), Array, 3)\n#8 /var/website/current/vendor/typo3/cms-core/Classes/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverser.php(62): TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\Traverser\\ConditionVerdictAwareIncludeTreeTraverser->traverseRecursive(Object(TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\IncludeNode\\IncludeStaticFileDatabaseInclude), Array, 2)\n#9 /var/website/current/vendor/typo3/cms-core/Classes/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverser.php(62): TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\Traverser\\ConditionVerdictAwareIncludeTreeTraverser->traverseRecursive(Object(TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\IncludeNode\\SysTemplateInclude), Array, 1)\n#10 /var/website/current/vendor/typo3/cms-core/Classes/TypoScript/IncludeTree/Traverser/ConditionVerdictAwareIncludeTreeTraverser.php(49): TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\Traverser\\ConditionVerdictAwareIncludeTreeTraverser->traverseRecursive(Object(TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\IncludeNode\\RootInclude), Array, 0)\n#11 /var/website/current/vendor/typo3/cms-extbase/Classes/Configuration/BackendConfigurationManager.php(288): TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\Traverser\\ConditionVerdictAwareIncludeTreeTraverser->traverse(Object(TYPO3\\CMS\\Core\\TypoScript\\IncludeTree\\IncludeNode\\RootInclude), Array)\n#12 /var/website/current/vendor/typo3/cms-extbase/Classes/Configuration/ConfigurationManager.php(145): TYPO3\\CMS\\Extbase\\Configuration\\BackendConfigurationManager->getTypoScriptSetup()\n#13 /var/website/sources/extensions/{ext}/Classes/Hooks/KeSearchIndexer.php(55): TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager->getConfiguration('FullTypoScript')\n#14 /var/website/current/vendor/typo3/cms-core/Classes/Utility/GeneralUtility.php(2969): {VendorName}\\{PackageName}\\Hooks\\KeSearchIndexer->__construct()\n#15 /var/website/current/vendor/tpwd/ke_search/Classes/Indexer/IndexerRunner.php(171): TYPO3\\CMS\\Core\\Utility\\GeneralUtility::makeInstance('{VendorName}\\\\{Package...}')\n#16 /var/website/current/vendor/tpwd/ke_search/Classes/Command/StartIndexerCommand.php(93): Tpwd\\KeSearch\\Indexer\\IndexerRunner->startIndexing(true, Array, 'CLI', 0)\n#17 /var/website/current/vendor/symfony/console/Command/Command.php(326): Tpwd\\KeSearch\\Command\\StartIndexerCommand->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#18 /var/website/current/vendor/symfony/console/Application.php(1081): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#19 /var/website/current/vendor/symfony/console/Application.php(320): Symfony\\Component\\Console\\Application->doRunCommand(Object(Tpwd\\KeSearch\\Command\\StartIndexerCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#20 /var/website/current/vendor/symfony/console/Application.php(174): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#21 /var/website/current/vendor/typo3/cms-core/Classes/Console/CommandApplication.php(112): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#22 /var/website/current/vendor/typo3/cms-cli/typo3(23): TYPO3\\CMS\\Core\\Console\\CommandApplication->run()\n#23 /var/website/current/vendor/typo3/cms-cli/typo3(24): {closure}()\n#24 /var/website/current/vendor/bin/typo3(119): include('/var/website/curre...')\n#25 {main}"}

this is triggered inside __construct method of the custom Indexer Class (extends \Tpwd\KeSearch\Indexer\IndexerBase) for retrieving typoscript constants:

$configurationManager = GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Configuration\ConfigurationManager::class); $typoscript = $configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT);

christianbltr commented 9 months ago

ke_search itself does not retrieve TypoScript constants in the IndexerBase class: https://github.com/tpwd/ke_search/blob/5308ff3d910146ef7c6949db515beb36e905555b/Classes/Indexer/IndexerBase.php#L87

If your custom indexer relies on TypoScript constants for configuration you will need to use another way to configure your custom indexer, e.g. extension settings, environment variables or extending the indexer configuration record.

I'm closing this because this is not an issue of ke_search