GetDKAN / dkan

DKAN Open Data Portal
https://dkan.readthedocs.io/en/latest/index.html
GNU General Public License v2.0
365 stars 170 forks source link

[BUG] Warning: Undefined array key "value_referencer" in Drupal\Core\Logger\LoggerChannel->log() #4207

Closed swirtSJW closed 1 month ago

swirtSJW commented 1 month ago

Is there an existing issue for this?

Current Behavior

Looking at either the revisions list page or comparing two revisions, there are multiple warnings and deprecation notices.

Expected Behavior

Ought to not see scary bits on the screen.

Steps To Reproduce

  1. Navigate to a dataset
  2. Click on the 'Revisions' tab
  3. See the page fill with multiple (~30) warnings like this.
    
    Warning: Undefined array key "value_referencer" in Drupal\Core\Logger\LoggerChannel->log() (line 123 of core/lib/Drupal/Core/Logger/LoggerChannel.php).
    Deprecated function: syslog(): Passing null to parameter #1 ($priority) of type int is deprecated in Drupal\syslog\Logger\SysLog->syslogWrapper() (line 114 of core/modules/syslog/src/Logger/SysLog.php).
4. Using the "Compare selected revisions" button results in a similar cascade of Warnings.

### Environment

```markdown
- OS: Mac in DDEV, also on dev instance
- Node: -
- npm: -

Relevant log output

Warning: Undefined array key "value_referencer" in Drupal\Core\Logger\LoggerChannel->log() (line 123 of core/lib/Drupal/Core/Logger/LoggerChannel.php).
Drupal\Core\Logger\LoggerChannel->log('value_referencer', 'Property @property_id reference @uuid not found', Array) (Line: 171)
Drupal\metastore\Reference\Dereferencer->dereferenceSingle('distribution', '9f26f09e-4da9-5e90-867d-c44524f6fe43') (Line: 132)
Drupal\metastore\Reference\Dereferencer->dereferenceMultiple('distribution', Array) (Line: 100)
Drupal\metastore\Reference\Dereferencer->dereferencePropertyUuid('distribution', Array) (Line: 77)
Drupal\metastore\Reference\Dereferencer->dereferenceProperty('distribution', Object) (Line: 59)
Drupal\metastore\Reference\Dereferencer->dereference(Object) (Line: 157)
Drupal\metastore\LifeCycle\LifeCycle->datasetLoad(Object) (Line: 135)
Drupal\metastore\LifeCycle\LifeCycle->go('Load', Object) (Line: 75)
metastore_data_lifecycle(Object, 'load') (Line: 19)
metastore_entity_load(Array, 'node') (Line: 397)
Drupal\Core\Entity\EntityStorageBase->Drupal\Core\Entity\{closure}(Object, 'metastore') (Line: 388)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('entity_load', Object) (Line: 396)
Drupal\Core\Entity\EntityStorageBase->postLoad(Array) (Line: 661)
Drupal\Core\Entity\ContentEntityStorageBase->loadMultipleRevisions(Array) (Line: 634)
Drupal\Core\Entity\ContentEntityStorageBase->loadRevision(1723421) (Line: 208)
Drupal\diff\Form\RevisionOverviewForm->buildForm(Array, Object, Object)
call_user_func_array(Array, Array) (Line: 536)
Drupal\Core\Form\FormBuilder->retrieveForm('revision_overview_form', Object) (Line: 283)
Drupal\Core\Form\FormBuilder->buildForm('Drupal\diff\Form\RevisionOverviewForm', Object) (Line: 224)
Drupal\Core\Form\FormBuilder->getForm('Drupal\diff\Form\RevisionOverviewForm', Object) (Line: 25)
Drupal\diff\Controller\NodeRevisionController->revisionOverview(Object)
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 592)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 121)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 181)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 52)
Drupal\pqdc\Middleware\Redirect->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 53)
Asm89\Stack\Cors->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Deprecated function: syslog(): Passing null to parameter #1 ($priority) of type int is deprecated in Drupal\syslog\Logger\SysLog->syslogWrapper() (line 114 of core/modules/syslog/src/Logger/SysLog.php).
Drupal\syslog\Logger\SysLog->syslogWrapper(NULL, 'https://dev-edit.pdc.cms.gov|1719610944|dkan|184.25.157.153|https://dev-edit.pdc.cms.gov/node/2746/revisions|https://dev-edit.pdc.cms.gov/node/2746/revisions|1131||Property distribution reference '9f26f09e-4da9-5e90-867d-c44524f6fe43' not found') (Line: 102)
Drupal\syslog\Logger\SysLog->log(NULL, 'Property distribution reference '9f26f09e-4da9-5e90-867d-c44524f6fe43' not found', Array) (Line: 127)
Drupal\Core\Logger\LoggerChannel->log(NULL, 'Property @property_id reference @uuid not found', Array) (Line: 171)
Drupal\metastore\Reference\Dereferencer->dereferenceSingle('distribution', '9f26f09e-4da9-5e90-867d-c44524f6fe43') (Line: 132)
Drupal\metastore\Reference\Dereferencer->dereferenceMultiple('distribution', Array) (Line: 100)
Drupal\metastore\Reference\Dereferencer->dereferencePropertyUuid('distribution', Array) (Line: 77)
Drupal\metastore\Reference\Dereferencer->dereferenceProperty('distribution', Object) (Line: 59)
Drupal\metastore\Reference\Dereferencer->dereference(Object) (Line: 157)
Drupal\metastore\LifeCycle\LifeCycle->datasetLoad(Object) (Line: 135)
Drupal\metastore\LifeCycle\LifeCycle->go('Load', Object) (Line: 75)
metastore_data_lifecycle(Object, 'load') (Line: 19)
metastore_entity_load(Array, 'node') (Line: 397)
Drupal\Core\Entity\EntityStorageBase->Drupal\Core\Entity\{closure}(Object, 'metastore') (Line: 388)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('entity_load', Object) (Line: 396)
Drupal\Core\Entity\EntityStorageBase->postLoad(Array) (Line: 661)
Drupal\Core\Entity\ContentEntityStorageBase->loadMultipleRevisions(Array) (Line: 634)
Drupal\Core\Entity\ContentEntityStorageBase->loadRevision(1723421) (Line: 208)
Drupal\diff\Form\RevisionOverviewForm->buildForm(Array, Object, Object)
call_user_func_array(Array, Array) (Line: 536)
Drupal\Core\Form\FormBuilder->retrieveForm('revision_overview_form', Object) (Line: 283)
Drupal\Core\Form\FormBuilder->buildForm('Drupal\diff\Form\RevisionOverviewForm', Object) (Line: 224)
Drupal\Core\Form\FormBuilder->getForm('Drupal\diff\Form\RevisionOverviewForm', Object) (Line: 25)
Drupal\diff\Controller\NodeRevisionController->revisionOverview(Object)
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 592)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 121)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 181)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 52)
Drupal\pqdc\Middleware\Redirect->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 53)
Asm89\Stack\Cors->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

Anything else?

The relevant bit of code in Drupal 10.3 has not changed in 10 yrs https://git.drupalcode.org/project/drupal/-/blob/10.3.x/core/lib/Drupal/Core/Logger/LoggerChannel.php?ref_type=heads&blame=1#L49

The relative bit of code in DKAN changed 3 months ago. https://github.com/GetDKAN/dkan/blame/db9ceb6fa5a5f752b9be0d05ff21b64c2b579ce6/modules/metastore/src/Reference/Referencer.php#L191C7-L191C7

paul-m commented 1 month ago

I'm unable to reproduce this. I create a new DKAN site and use the sample_content module to create datasets. I visit the revision tab for a dataset and it displays fine, without any errors.

It's entirely possible that there's an edge case we're not testing for here because the coverage report says the code in the Dereferencer class is not covered. In fact there are two places where we call log(), and only one has coverage. The Referencer class has two log() calls as well, and neither has coverage.

Recommendation:

swirtSJW commented 1 month ago

My guess is that it will go away when this https://github.com/GetDKAN/dkan/pull/4217 is merged.

stefan-korn commented 1 month ago

Sorry, I have created a duplicate at #4226 . Closed #4226