Timeouts with img src="data:image/png;base64

Created on 30 April 2024, 7 months ago
Updated 1 May 2024, 7 months ago

Respect the submission guidelines above! Drupal.org issue forks cause additional work for the project maintainer!

Setup

  • Solr version:9.4
  • Drupal Core version:10.2.5
  • Search API version:8.x-1.34
  • Search API Solr version:4.3.3
  • Configured Solr Connector:Standard - local

Issue

Timeouts on nodes with img src="data:image/png;base64 on body field. Settings of index and fields see in screenshots.

Nodes contain embedded images like e.g.

<p>
    &nbsp;
</p>
<p>
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoYAAAExCAYAAADhrWMpAAAAAX.....

These cause a very long runtime and log entries like this:

Drupal\search_api_solr\SearchApiSolrException while indexing item entity:node/3029:en: Solr endpoint http://localhost:8983/ unreachable or returned unexpected response code (code: 28, body: , message: Solr HTTP error: HTTP request failed, Operation timed out after 90002 milliseconds with 0 bytes received (28)). in Drupal\search_api_solr\SolrConnector\SolrConnectorPluginBase->handleHttpException() (line 1149 of /web/modules/contrib/search_api_solr/src/SolrConnector/SolrConnectorPluginBase.php).


#0 /web/modules/contrib/search_api_solr/src/SolrConnector/SolrConnectorPluginBase.php(1067): Drupal\search_api_solr\SolrConnector\SolrConnectorPluginBase->handleHttpException()
#1 /web/modules/contrib/search_api_solr/src/SolrConnector/SolrConnectorPluginBase.php(1006): Drupal\search_api_solr\SolrConnector\SolrConnectorPluginBase->execute()
#2 /web/modules/contrib/search_api_solr/src/Plugin/search_api/backend/SearchApiSolrBackend.php(1184): Drupal\search_api_solr\SolrConnector\SolrConnectorPluginBase->update()
#3 /web/modules/contrib/search_api/src/Entity/Server.php(350): Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend->indexItems()
#4 /web/modules/contrib/search_api/src/Entity/Index.php(1006): Drupal\search_api\Entity\Server->indexItems()
#5 /web/modules/contrib/search_api/src/Entity/Index.php(935): Drupal\search_api\Entity\Index->indexSpecificItems()
#6 /web/modules/contrib/search_api/search_api.module(117): Drupal\search_api\Entity\Index->indexItems()
#7 [internal function]: search_api_cron()
#8 /web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(325): call_user_func()
#9 /web/modules/contrib/ultimate_cron/src/Entity/CronJob.php(471): Drupal\ultimate_cron\Entity\CronJob->invokeCallback()
#10 /web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(213): Drupal\ultimate_cron\Entity\CronJob->run()
#11 /web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(334): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launch()
#12 /web/modules/contrib/ultimate_cron/src/Plugin/ultimate_cron/Launcher/SerialLauncher.php(309): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->runThread()
#13 /web/modules/contrib/ultimate_cron/src/UltimateCron.php(65): Drupal\ultimate_cron\Plugin\ultimate_cron\Launcher\SerialLauncher->launchJobs()
#14 /web/modules/contrib/ultimate_cron/src/ProxyClass/UltimateCron.php(70): Drupal\ultimate_cron\UltimateCron->run()
#15 /web/core/modules/system/src/CronController.php(46): Drupal\ultimate_cron\ProxyClass\UltimateCron->run()
#16 [internal function]: Drupal\system\CronController->run()
#17 /web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array()
#18 /web/core/lib/Drupal/Core/Render/Renderer.php(627): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#19 /web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(121): Drupal\Core\Render\Renderer->executeInRenderContext()
#20 /web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext()
#21 /vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#22 /vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
#23 /web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle()
#24 /web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle()
#25 /web/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
#26 /web/core/modules/big_pipe/src/StackMiddleware/ContentLength.php(32): Drupal\Core\StackMiddleware\ContentLength->handle()
#27 /web/core/modules/page_cache/src/StackMiddleware/PageCache.php(191): Drupal\big_pipe\StackMiddleware\ContentLength->handle()
#28 /web/core/modules/page_cache/src/StackMiddleware/PageCache.php(128): Drupal\page_cache\StackMiddleware\PageCache->fetch()
#29 /web/core/modules/page_cache/src/StackMiddleware/PageCache.php(82): Drupal\page_cache\StackMiddleware\PageCache->lookup()
#30 /web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle()
#31 /web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
#32 /web/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(36): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
#33 /web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle()
#34 /web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle()
#35 /web/index.php(19): Drupal\Core\DrupalKernel->handle()
#36 {main}


🐛 Bug report
Status

Closed: works as designed

Version

4.3

Component

Code

Created by

🇦🇹Austria maxilein

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @maxilein
  • 🇦🇹Austria maxilein

    Looking more into the problem: So the timeouts were caused by Drupal itselft. And search_api was just waiting on the page to finish loading which never happened.
    With a large base64 encoded image

  • Status changed to Closed: works as designed 7 months ago
Production build 0.71.5 2024