bcgov / MFIN-Data-Catalogue

The Finance Data Catalogue enables users to discover data holdings at the BC Ministry of Finance and offers information and functionality that benefits consumers of data for business purposes. The product is built using Drupal and adheres to the Government of BC's Core Administrative and Descriptive etadata Standard.
Other
6 stars 0 forks source link

Clicking on a facet value on the search results page generates an error #501

Closed mjmcclung closed 4 months ago

mjmcclung commented 5 months ago

OP timer


Describe the bug

Clicking on any of the facet values generates an error, e.g.: https://cat.data.fin.gov.bc.ca/search?f%5B0%5D=series%3A2483 image

To reproduce

Steps to reproduce the behaviour:

  1. Log in to the Catalogue
  2. Click on the search icon
  3. Click on any of the facet values
  4. See error

Expected behaviour

Clicking on any of the facet values should give you a resulting list of the MR's that are associated with that facet value.

NicoledeGreef commented 5 months ago

From the Reports log after clicking on Series, Office of Primary Responsibility, Source system and Modified date facet values on the Search results screen:

image

Likely related to our introduction of snowplow analytics; see: https://cat.data.fin.gov.bc.ca/admin/reports/dblog/event/68677

Message | TypeError: explode(): Argument #2 ($string) must be of type string, array given in explode() (line 130 of /var/www/html/modules/contrib/gdx_analytics_drupal_snowplow/gdx_analytics_drupal_snowplow.module).

Backtrace:

0 /var/www/html/modules/contrib/gdx_analytics_drupal_snowplow/gdx_analytics_drupal_snowplow.module(130): explode(' ', Array)

1 /var/www/html/modules/contrib/gdx_analytics_drupal_snowplow/gdx_analytics_drupal_snowplow.module(102): gdx_analytics_drupal_snowplow_handle_tracker_with_search(Array, Array) 2 /var/www/html/modules/contrib/gdx_analytics_drupal_snowplow/gdx_analytics_drupal_snowplow.module(57): gdx_analytics_drupal_snowplow_handle_non_admin_routes(Array, Object(Drupal\Core\Logger\LoggerChannel)) 3 /var/www/html/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(311): gdx_analytics_drupal_snowplow_page_attachments(Array) 4 /var/www/html/core/lib/Drupal/Core/Extension/ModuleHandler.php(388): Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent{closure}(Object(Closure), 'gdx_analytics_d...') 5 /var/www/html/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(308): Drupal\Core\Extension\ModuleHandler->invokeAllWith('page_attachment...', Object(Closure)) 6 /var/www/html/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(285): Drupal\Core\Render\MainContent\HtmlRenderer->invokePageAttachmentHooks(Array) 7 /var/www/html/core/lib/Drupal/Core/Render/Renderer.php(627): Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent{closure}() 8 /var/www/html/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(284): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) 9 /var/www/html/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(128): Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\CurrentRouteMatch)) 10 /var/www/html/core/lib/Drupal/Core/EventSubscriber/MainContentViewSubscriber.php(90): Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\CurrentRouteMatch)) 11 [internal function]: Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) 12 /var/www/html/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher)) 13 /var/www/vendor/symfony/http-kernel/HttpKernel.php(186): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view') 14 /var/www/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) 15 /var/www/html/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 16 /var/www/html/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 17 /var/www/html/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 18 /var/www/html/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\ContentLength->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 19 /var/www/html/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true) 20 /var/www/html/modules/contrib/shield/src/ShieldMiddleware.php(270): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 21 /var/www/html/modules/contrib/shield/src/ShieldMiddleware.php(137): Drupal\shield\ShieldMiddleware->bypass(Object(Symfony\Component\HttpFoundation\Request), 1, true) 22 /var/www/html/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\shield\ShieldMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 23 /var/www/html/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 24 /var/www/html/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(36): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 25 /var/www/html/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 26 /var/www/html/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 27 /var/www/html/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) 28 {main}

chrislaick commented 5 months ago

This one was relatively easy, but involved quite a bit of work from updating Solr configuration and cores to 4.3.4. We needed to run composer update to pull in the upstream code changes, which also updated Solr and thus required the Solr config and core update. I created a detailed step-by-step guide on updating Solr in Confluence.

@NicoledeGreef This is ready for testing on the TEST site.

NicoledeGreef commented 4 months ago

Thanks @chrislaick . In Test env, I reviewed the facets on the search page, and on a metadata page. Also tried searching metadata records and docs. All appears to be working well.

chrislaick commented 4 months ago

Deployed to PROD.