πŸ‡ΊπŸ‡ΈUnited States @msielski

Account created on 22 December 2007, over 16 years ago
#

Recent comments

πŸ‡ΊπŸ‡ΈUnited States msielski

Re-rolling patch from #3 for 10.2.4 while work continues on this ticket.

πŸ‡ΊπŸ‡ΈUnited States msielski

@ji_gravityworks May be off-topic but group_content_menu has similar functionality, although a different architecture, and G2 and G3 support.

πŸ‡ΊπŸ‡ΈUnited States msielski

Reviewed the MR and tested it - fixes the problem.

πŸ‡ΊπŸ‡ΈUnited States msielski

To apply the diff (from the MR) with a composer install, #84 is correct you just need one more blank line of context. I'm not sure how to adjust this so it works for non-composer and composer installs, but my updated patch is attached and applies to 3.0.0. I am skipping submitting this change to the MR since it would break the patch for non-composer users. Anyone who knows the best way to handle this problem (I've seen it before with patching info.yml files) please let us know.

πŸ‡ΊπŸ‡ΈUnited States msielski

I updated patch #14 to address the "value should be of correct primitive type" error we were receiving. I used a solution similar to https://www.drupal.org/project/drupal/issues/2220381#comment-12771574 β†’ , adding a massageFormValues to the widget to unset empty values. You'll still manually need to update existing DB fields to remove their NOT NULL constraints.

πŸ‡ΊπŸ‡ΈUnited States msielski

To use groupmenu with Group 1.x we had to patch Group to use strings as entity IDs ( https://www.drupal.org/project/group/issues/2797793#comment-14198690 ✨ Entities identified by strings as group content Closed: won't fix ). That patch no longer applies to Group 2.x, so will a version of groupmenu which works with Group 2.x require that patch?

πŸ‡ΊπŸ‡ΈUnited States msielski

Attaching patch I created and am testing to use recurring events with group 2.x. I believe more work will still be needed.

πŸ‡ΊπŸ‡ΈUnited States msielski

Looking into this I saw that config_views/src/Plugin/views/query/ConfigEntityQuery::build does not contain a few lines of code which views/src/Plugin/views/query/Sql::build contains. This missing code sets $view->build_info['query'] which is what is not set when group_views_query_alter runs. With the change in the linked MR, the reported issue seems to be fixed and can no longer be reproduced.

πŸ‡ΊπŸ‡ΈUnited States msielski

msielski β†’ made their first commit to this issue’s fork.

πŸ‡ΊπŸ‡ΈUnited States msielski

Debugging this today with @beeyayjay and we discovered that the problem has to do with circular dependencies in a module's configuration schema. For example the Fallback Formatter module which our site uses has the config schema:

field.formatter.settings.fallback:
  type: mapping
  label: 'Fallback formatter settings'
  mapping:
    formatters:
      type: sequence
      label: 'Formatters'
      sequence:
        - type: mapping
          label: 'Formatter settings'
          mapping:
            status:
              type: boolean
              label: 'Status'
            weight:
              type: integer
              label: 'Weight'
            formatter:
              type: string
              label: 'Formatter'
            settings:
              type: field.formatter.settings.[%parent.formatter]
              label: 'Settings'

And when we added some debugging output to _views_views_config_process_schema to track the config definition label as it recurses, we see a progression like:

//Block////Field formatter/Settings
//Block////Field formatter/Settings/Fallback formatter settings
//Block////Field formatter/Settings/Fallback formatter settings/Formatters
//Block////Field formatter/Settings/Fallback formatter settings/Formatters/Formatter settings
//Block////Field formatter/Settings/Fallback formatter settings/Formatters/Formatter settings/Settings
//Block////Field formatter/Settings/Fallback formatter settings/Formatters/Formatter settings/Settings/Fallback formatter settings
//Block////Field formatter/Settings/Fallback formatter settings/Formatters/Formatter settings/Settings/Fallback formatter settings/Formatters
...

Our initial proof of concept fix was to keep a history array of the config definition labels and to confirm the current label is not present before proceeding. This fixed the memory error but broke certain config from showing in views. I'm still looking into why exactly it broke, but I'd guess some config definitions are nested more than 1 cycle deep.

Our second attempt allows the label to exist once, but not twice in the history. It fixed the memory issue and we don't see any problems where we're using config_views - but our choice of allowing 2 cycles is arbitrary and I'd imagine some modules could need more. So, some refinement may be needed. Or, maybe this is just helpful to reveal the nature of the problem and will illuminate a better solution.

FWIW, modules we ran into trouble with were Fallback Formatter, and Rules. Even with the attached fix Rules still cycles hundreds of times but doesn't crash.

πŸ‡ΊπŸ‡ΈUnited States msielski

msielski β†’ made their first commit to this issue’s fork.

πŸ‡ΊπŸ‡ΈUnited States msielski

I'm still seeing the same out of memory error with either the exclude facets patch in #16 or the by-reference changes in MR 2 / #20. Site has lots of config, and does use facets.

PHP Fatal error: Allowed memory size of 939524096 bytes exhausted (tried to allocate 24576 bytes) in /var/www/web/modules/contrib/config_views/config_views.views.inc on line 156

Production build 0.69.0 2024