backdrop-contrib / entity_plus

This module wraps in a variety of additional entity-related functionality from various sources. Partial port of D7 Entity API.
https://backdropcms.org/project/entity_plus
GNU General Public License v2.0
3 stars 11 forks source link

Had fatal error on site with PHP 8.1 that may be down to this module #166

Open yorkshire-pudding opened 11 months ago

yorkshire-pudding commented 11 months ago

I've had a site on PHP 8.1 for a while with no problem. Yesterday on mobile, I updated a field on a node and saved. Wasn't showing in view to attempted to flush caches.

Site went 500 for logged in users whilst could still load front end, but eventually front end went as well (presumably when cache expired). When I got a minute, I went on and tried a few things to fix.

Tried clearing caches with bee and got this error:

TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in in_array() (line 280 of /home/user_name/website/production/docroot/modules/contrib/entity_plus/entity_plus.module

Put in maintenance mode with bee

Deleted the entity_plus directory and re-downloaded (so latest version) with bee (no disabling or uninstalling - too many dependencies). No change I then tried PHP 8.0 - same. Then tried PHP 7.4 and site worked. This site had been a bit neglected (not any security updates) and there were a few updates. I did those updates in GUI (including core) and was fine. I then tried putting it back to PHP 8.1 and everything was fine again.

I'm reluctant to call it a bug as I have no idea of steps to reproduce. It could be a combination of things and I don't want to try and reproduce. I just wanted to put this here in case this bit of code could be improved to prevent this happening again if conditions give this function the wrong type again?

argiepiano commented 11 months ago

Thanks for reporting, @yorkshire-pudding. This is a strange error that I've never seen before.

Entity Plus is like a mini-core for entities. Often the errors you get are produced in other places, but since a lot of the "traffic" goes through Entity Plus, you only see the E+ error. The error you saw is produced when checking the entity controller definition of an entity - presumably a custom entity provided by a contrib module. So, this is probably some weird combination of factors that prevents the info to have an entity controller - perhaps an issue with cached information. The fact that things got "fixed" once you ran 7.4 may indicate an issue with a contrib module that's not compliant with 8.1 and fails to initialize their entity info... in specific situations.

If you want to troubleshoot this, we'll need all the errors (including anything that happened before the one you posted), as well as a list of contrib modules in your site.

oadaeh commented 11 months ago

class_implements($info['controller class']) is returning FALSE, so that should be added as another condition in line 280 to avoid the fatal error, which might or might not mask the actual cause, but would certainly avoid unnecessarily taking down the site.

yorkshire-pudding commented 10 months ago

I've had the issue again and switched to PHP 7.4 straight away and it fixed. Only happening on certain pages with 8.1 so time to test locally and see if I can get some useful Krumo backtraces

yorkshire-pudding commented 10 months ago
Stack trace ``` Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /app/docroot/modules/contrib/entity_plus/entity_plus.module:994 Stack trace: #0 /app/docroot/modules/contrib/entity_plus/entity_plus.module(994): in_array('EntityPlusContr...', false) #1 /app/docroot/core/includes/theme.inc(558): entity_plus_theme(Array, 'module', 'entity_plus', 'modules/contrib...') #2 /app/docroot/core/includes/theme.inc(715): _theme_process_registry(Array, 'entity_plus', 'module', 'entity_plus', 'modules/contrib...') #3 /app/docroot/core/includes/theme.inc(355): _theme_build_registry(Object(stdClass), Array, 'phptemplate') #4 /app/docroot/core/includes/theme.inc(304): _theme_load_registry(Object(stdClass), Array, 'phptemplate') #5 /app/docroot/core/includes/theme.inc(440): theme_get_registry() #6 /app/docroot/core/includes/theme.inc(424): ThemeRegistry->initializeRegistry() #7 /app/docroot/core/includes/theme.inc(365): ThemeRegistry->__construct('theme_registry:...', 'cache') #8 /app/docroot/core/includes/theme.inc(304): _theme_load_registry(Object(stdClass), Array, 'phptemplate', false) #9 /app/docroot/core/includes/theme.inc(1024): theme_get_registry(false) #10 /app/docroot/core/includes/errors.inc(256): theme('maintenance_pag...', Array) #11 /app/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error(Array, true) #12 [internal function]: _backdrop_exception_handler(Object(TypeError)) #13 {main} thrown in /app/docroot/modules/contrib/entity_plus/entity_plus.module on line 994 ```

Also got warning:

Warning: class_implements(): Class MatchRedirectEntityController does not exist and could not be loaded in entity_plus_theme() (line 994 of /app/docroot/modules/contrib/entity_plus/entity_plus.module).

yorkshire-pudding commented 10 months ago

Tracked it down. Match Redirect module is causing it. As this is not essential to the site (was using it to redirect bots looking for Wordpress pages to a custom page) I can disable without causing any issues until this is resolved. I have transferred log details to an issue there, but if you have any insights on what is going on there, then might be helpful; looking at the module it looks like the class MatchRedirectEntityController does exist and is referenced in `hook_autoload_info, but perhaps I'm missing something. https://github.com/backdrop-contrib/match_redirect/blob/89836b662351c8eef4cf90922f64e216010cd0ed/match_redirect.module#L26-L35

argiepiano commented 10 months ago

@yorkshire-pudding thanks for including the backtrace. I'm looking at it, and there are some clues of what's going on there.

First, this whole chain of events is happening because of an earlier "custom PHP error" (see line 12 in the backtrace), that triggers a "fallback" to maintenance mode. You can see that in number 10 in the backtrace (the lower you go in that backtrace, the further from "now" you are). When backdrop tries to theme the error, to do that it has to reinitialize the whole theme registry, which is not cached for some reason (see number 6). The problem is that, when you are in maintenance mode, that include file with MatchRedirectEntityController is not loaded, which triggers the fatal error. Apparently, the autoload hooks are not run when in maintenance mode - need to verify that's the case.

It would be helpful to check your log to see if there are any other errors logged in before the fatal one - that can offer clues to what was the initial error that unleashed the whole series of events.

Ultimately, perhaps a good stopgap measure would be for entity_plus_theme() to check if we are in maintenance mode before returning the theme information. My concern with that is that this info is cached, and while it may prevent the fatal, it may create issues down the road with that incomplete cached theme registry.

So, in the end, while disabling Match Redirect may help, ideally we need to find where the original uncaught PHP error. occurred.

I'll try to come up with a way for you to temporarily patch Entity Plus in php 8.1 so that you can try to reproduce the error. Once patched, we may be able to see what the original error was. More later

argiepiano commented 10 months ago

Hmmm... some of my logic above may not be correct - not sure if we are in maintenance mode. _backdrop_log_error() themes the error as if it was in maintenance mode, but the site is not put in MM. However, the rest may all be true. Please check the dblog thoroughly for earlier errors. And you say this is happening when running database update?

yorkshire-pudding commented 10 months ago

I'll try to see what other errors could be related. Just to clarify though:

And you say this is happening when running database update?

No - it happened first updating a node. That node has entity reference fields, data, embedded youtube but nothing particularly special. After it happened there it then happened on nearly every page load until I fixed it. Then after putting it back to PHP 8.1 it behaved mostly until I tried updating a node again.

yorkshire-pudding commented 10 months ago

Got this when accessing status report:

Warning: class_implements(): Class MatchRedirectEntityController does not exist and could not be loaded in entity_plus_crud_get_info() (line 180 of /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module).

Also got this odd error:

Error: Cannot use object of type stdClass as array in system_page_delivery_callback_alter() (line 1136 of /home/username/website/production/docroot/core/modules/system/system.module).

but the calling URL is https://www.domain.tld/apple-touch-icon.png

The header very clearly says:

<link rel="apple-touch-icon" sizes="180x180" href="/files/favicons/apple-touch-icon.png"/>

( I use responsive favicons module to handle these)

PHP error log in docroot - from yesterday ```[22-Oct-2023 09:35:26 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:35:32 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:35:34 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:36:32 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:36:39 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:36:50 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:36:53 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:36:56 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:38:39 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:38:42 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:38:44 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:40:59 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:41:03 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 [22-Oct-2023 09:45:42 Europe/London] PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, bool given in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:180 Stack trace: #0 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(180): in_array() #1 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(126): entity_plus_crud_get_info() #2 /home/username/website/production/docroot/core/includes/module.inc(975): entity_plus_entity_property_info() #3 /home/username/website/production/docroot/modules/contrib/entity_plus/includes/entity_plus.property.inc(37): module_invoke_all() #4 /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module(1130): entity_plus_get_property_info() #5 /home/username/website/production/docroot/modules/contrib/entity_token/entity_token.tokens.inc(401): entity_plus_metadata_site_wrapper() #6 /home/username/website/production/docroot/core/includes/module.inc(975): entity_token_tokens() #7 /home/username/website/production/docroot/core/includes/token.inc(177): module_invoke_all() #8 /home/username/website/production/docroot/core/includes/token.inc(86): token_generate() #9 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(320): token_replace() #10 /home/username/website/production/docroot/modules/contrib/metatag/metatag.inc(429): BackdropTextMetaTag->getValue() #11 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1229): BackdropTitleMetaTag->getElement() #12 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(1829): metatag_metatags_view() #13 /home/username/website/production/docroot/modules/contrib/metatag/metatag.module(2157): metatag_prepare_tags() #14 /home/username/website/production/docroot/core/includes/theme.inc(1131): metatag_preprocess_maintenance_page() #15 /home/username/website/production/docroot/core/includes/errors.inc(256): theme() #16 /home/username/website/production/docroot/core/includes/bootstrap.inc(2989): _backdrop_log_error() #17 [internal function]: _backdrop_exception_handler() #18 {main} thrown in /home/username/website/production/docroot/modules/contrib/entity_plus/entity_plus.module on line 180 ```
argiepiano commented 10 months ago

Thanks for the additional info. All of these logs point out at an initial error that triggers the whole chain reaction that ends with the E+ fatal. The first function in the chain is always _backdrop_exception_handler()

In order to find out what is producing this error, please try the following manual patches:

Line 180 of entity_plus.module

    if (isset($info['controller class']) && class_exists($info['controller class']) && in_array('EntityPlusControllerInterface',  class_implements($info['controller class']))) {

Line 994 of the same:

    if (isset($info['controller class']) && class_exists($info['controller class']) &&  in_array('EntityPlusControllerInterface', class_implements($info['controller class']))) {

Then, using PHP 8.1, edit that node once again to trigger the initial error. Supposedly, the patches above will prevent E+ from crashing (they may produce other problems, though). The crashing happens because those E+ functions are being called at a time when autoload hooks haven't yet run.

So, the above should hopefully reveal what the original error is that's triggering all of this.

argiepiano commented 10 months ago

(Fixed a typo in the above)

argiepiano commented 10 months ago

Shoot. More typos! Let me fix those before you patch.

yorkshire-pudding commented 10 months ago

And presume I should re-enable match_redirect, right?

argiepiano commented 10 months ago

OK, done.

argiepiano commented 10 months ago

Yes, get the site to the state where it was when it crashed.

yorkshire-pudding commented 10 months ago

Must have been something else as well as it will not recreate the error 😕

argiepiano commented 10 months ago

Can you check the dblog for the most recent messages after you've updated the node?

argiepiano commented 10 months ago

Also, clear caches, update node again, save, clear caches again? Then check dblog.

yorkshire-pudding commented 10 months ago

Nothing there at all either before or after clearing caches. 😕

argiepiano commented 10 months ago

Hmm... the other odd error you included there:

Error: Cannot use object of type stdClass as array in system_page_delivery_callback_alter() (line 1136 of /home/username/website/production/docroot/core/modules/system/system.module).

This is strange, and may be the originating error that triggered the whole thing - but obviously hard to reproduce. Somehow, the variable $page_callback_result passed to the hook implementation system_page_delivery_callback_alter() is an object instead of a string. This may be produced by one of the contrib modules in the site. If you have the time - could you include the list of contrib modules you are using?

Otherwise, that manual patch should prevent the fatal error for now. Keep an eye on the dblog for other errors, esp, the one above.

argiepiano commented 10 months ago

One common thing in all the backtraces you posted: they ALL happen in relation to maintenance mode. Can you try putting your site in maintenance mode and editing that node once again?

yorkshire-pudding commented 10 months ago

No difference with maintenance mode:

list of modules NAME | FILENAME | STATUS | TYPE | SCHEMA VERSION -- | -- | -- | -- | -- admin_bar | core/modules/admin_bar/admin_bar.module | Enabled | module | 0 block | core/modules/block/block.module | Enabled | module | 1,004 ckeditor | core/modules/ckeditor/ckeditor.module | Enabled | module | 0 comment | core/modules/comment/comment.module | Enabled | module | 1,008 config | core/modules/config/config.module | Enabled | module | 0 contextual | core/modules/contextual/contextual.module | Enabled | module | 1,000 dashboard | core/modules/dashboard/dashboard.module | Enabled | module | 1,000 date | core/modules/date/date.module | Enabled | module | 1,002 dblog | core/modules/dblog/dblog.module | Enabled | module | 1,003 email | core/modules/email/email.module | Enabled | module | 1,000 entity | core/modules/entity/entity.module | Enabled | module | 0 entityreference | core/modules/entityreference/entityreference.module | Enabled | module | 1,002 field | core/modules/field/field.module | Enabled | module | 1,004 field_sql_storage | core/modules/field/modules/field_sql_storage/field_sql_storage.module | Enabled | module | 0 list | core/modules/field/modules/list/list.module | Enabled | module | 0 number | core/modules/field/modules/number/number.module | Enabled | module | 0 options | core/modules/field/modules/options/options.module | Enabled | module | 0 text | core/modules/field/modules/text/text.module | Enabled | module | 1,000 field_ui | core/modules/field_ui/field_ui.module | Enabled | module | 0 file | core/modules/file/file.module | Enabled | module | 1,009 filter | core/modules/filter/filter.module | Enabled | module | 1,004 image | core/modules/image/image.module | Enabled | module | 1,008 installer | core/modules/installer/installer.module | Enabled | module | 1,000 layout | core/modules/layout/layout.module | Enabled | module | 0 link | core/modules/link/link.module | Enabled | module | 1,001 menu | core/modules/menu/menu.module | Enabled | module | 1,006 node | core/modules/node/node.module | Enabled | module | 1,022 path | core/modules/path/path.module | Enabled | module | 1,001 redirect | core/modules/redirect/redirect.module | Enabled | module | 1,003 search | core/modules/search/search.module | Enabled | module | 1,003 system | core/modules/system/system.module | Enabled | module | 1,092 taxonomy | core/modules/taxonomy/taxonomy.module | Enabled | module | 1,010 telemetry | core/modules/telemetry/telemetry.module | Enabled | module | 0 update | core/modules/update/update.module | Enabled | module | 1,005 user | core/modules/user/user.module | Enabled | module | 1,026 views | core/modules/views/views.module | Enabled | module | 1,007 views_ui | core/modules/views_ui/views_ui.module | Enabled | module | 1,001 standard | core/profiles/standard/standard.profile | Enabled | module | 0 basis | core/themes/basis/basis.info | Enabled | theme | -1 seven | core/themes/seven/seven.info | Enabled | theme | -1 admin_bar_views_grouping | modules/contrib/admin_bar_views_grouping/admin_bar_views_grouping.module | Enabled | module | 0 antibot | modules/contrib/antibot/antibot.module | Enabled | module | 1,000 auto_nodetitle | modules/contrib/auto_nodetitle/auto_nodetitle.module | Enabled | module | 1,001 better_exposed_filters | modules/contrib/better_exposed_filters/better_exposed_filters.module | Enabled | module | 0 bigmenu | modules/contrib/bigmenu/bigmenu.module | Enabled | module | 1,000 blockreference | modules/contrib/blockreference/blockreference.module | Enabled | module | 0 conditional_fields | modules/contrib/conditional_fields/conditional_fields.module | Enabled | module | 1,000 devel | modules/contrib/devel/devel.module | Enabled | module | 1,006 devel_generate | modules/contrib/devel/devel_generate/devel_generate.module | Enabled | module | 0 devel_node_access | modules/contrib/devel/devel_node_access/devel_node_access.module | Enabled | module | 0 disable_login_errors | modules/contrib/disable_login_errors/disable_login_errors.module | Enabled | module | 0 editableviews | modules/contrib/editableviews/editableviews.module | Enabled | module | 0 elements | modules/contrib/elements/elements.module | Enabled | module | 0 entity_plus | modules/contrib/entity_plus/entity_plus.module | Enabled | module | 0 entity_token | modules/contrib/entity_token/entity_token.module | Enabled | module | 0 entity_ui | modules/contrib/entity_ui/entity_ui.module | Enabled | module | 0 fast_token_browser | modules/contrib/fast_token_browser/fast_token_browser.module | Enabled | module | 0 feeds | modules/contrib/feeds/feeds.module | Enabled | module | 1,005 feeds_ui | modules/contrib/feeds/feeds_ui/feeds_ui.module | Enabled | module | 7,000 feeds_tamper | modules/contrib/feeds_tamper/feeds_tamper.module | Enabled | module | 1,001 feeds_tamper_ui | modules/contrib/feeds_tamper/feeds_tamper_ui/feeds_tamper_ui.module | Enabled | module | 0 field_group | modules/contrib/field_group/field_group.module | Enabled | module | 1,000 field_visibility_condition | modules/contrib/field_visibility_condition/field_visibility_condition.module | Enabled | module | 0 field_wrappers | modules/contrib/field_wrappers/field_wrappers.module | Enabled | module | 0 filter_perms | modules/contrib/filter_perms/filter_perms.module | Enabled | module | 0 flexible_layout | modules/contrib/flexible_layout/flexible_layout.module | Enabled | module | 0 fontyourface | modules/contrib/fontyourface/fontyourface.module | Enabled | module | 1,000 edge_fonts | modules/contrib/fontyourface/modules/edge_fonts/edge_fonts.module | Enabled | module | 1,000 fontyourface_ui | modules/contrib/fontyourface/modules/fontyourface_ui/fontyourface_ui.module | Enabled | module | 1,000 local_fonts | modules/contrib/fontyourface/modules/local_fonts/local_fonts.module | Enabled | module | 0 font_awesome | modules/contrib/font_awesome/font_awesome.module | Enabled | module | 1,102 font_awesome_field | modules/contrib/font_awesome/font_awesome_field/font_awesome_field.module | Enabled | module | 0 fullcalendar_lib | modules/contrib/fullcalendar_lib/fullcalendar_lib.module | Enabled | module | 0 fullcalendar_views | modules/contrib/fullcalendar_views/fullcalendar_views.module | Enabled | module | 0 image_effects_coloractions | modules/contrib/image_effects/coloractions/image_effects_coloractions.module | Enabled | module | 7,101 image_effects | modules/contrib/image_effects/image_effects.module | Enabled | module | 7,002 job_scheduler | modules/contrib/job_scheduler/job_scheduler.module | Enabled | module | 1,001 match_redirect | modules/contrib/match_redirect/match_redirect.module | Enabled | module | 1 matomo | modules/contrib/matomo/matomo.module | Enabled | module | 1,001 metatag | modules/contrib/metatag/metatag.module | Enabled | module | 1,006 metatag_opengraph | modules/contrib/metatag/metatag_opengraph/metatag_opengraph.module | Enabled | module | 7,106 clone | modules/contrib/node_clone/clone.module | Enabled | module | 1,000 override_node_options | modules/contrib/override_node_options/override_node_options.module | Enabled | module | 1,000 paragraphs_bundle_permissions | modules/contrib/paragraphs/modules/paragraphs_bundle_permissions/paragraphs_bundle_permissions.module | Enabled | module | 1,100 paragraphs | modules/contrib/paragraphs/paragraphs.module | Enabled | module | 1,003 paragraphs_jquery_ui_accordion | modules/contrib/paragraphs_jquery_ui_accordion/paragraphs_jquery_ui_accordion.module | Enabled | module | 0 paragraphs_jquery_ui_accordion2 | modules/contrib/paragraphs_jquery_ui_accordion2/paragraphs_jquery_ui_accordion2.module | Enabled | module | 0 pdfjs | modules/contrib/pdfjs/pdfjs.module | Enabled | module | 0 prepopulate | modules/contrib/prepopulate/prepopulate.module | Enabled | module | 1,000 publication_date | modules/contrib/publication_date/publication_date.module | Enabled | module | 1,000 r4032login | modules/contrib/r4032login/r4032login.module | Enabled | module | 7,000 realname | modules/contrib/realname/realname.module | Enabled | module | 0 reftagger | modules/contrib/reftagger/reftagger.module | Enabled | module | 1,001 repeating_dates | modules/contrib/repeating_dates/repeating_dates.module | Enabled | module | 0 responsive_favicons | modules/contrib/responsive_favicons/responsive_favicons.module | Enabled | module | 1,001 rules | modules/contrib/rules/rules.module | Enabled | module | 1,003 rules_admin | modules/contrib/rules/rules_admin/rules_admin.module | Enabled | module | 0 simple_gmap | modules/contrib/simple_gmap/simple_gmap.module | Enabled | module | 0 simplify | modules/contrib/simplify/simplify.module | Enabled | module | 1,100 svg_image | modules/contrib/svg_image/svg_image.module | Enabled | module | 0 tocbot | modules/contrib/tocbot/tocbot.module | Enabled | module | 1,000 token_filter | modules/contrib/token_filter/token_filter.module | Enabled | module | 0 token_help | modules/contrib/token_help/token_help.module | Enabled | module | 1,000 username_enumeration_prevention | modules/contrib/username_enumeration_prevention/username_enumeration_prevention.module | Enabled | module | 0 actions_permissions | modules/contrib/views_bulk_operations/modules/actions_permissions.module | Enabled | module | 0 views_bulk_operations | modules/contrib/views_bulk_operations/views_bulk_operations.module | Enabled | module | 1,000 views_conditional | modules/contrib/views_conditional/views_conditional.module | Enabled | module | 0 views_data_export | modules/contrib/views_data_export/views_data_export.module | Enabled | module | 1,000 views_menu_children_filter | modules/contrib/views_menu_children_filter/views_menu_children_filter.module | Enabled | module | 0 webform | modules/contrib/webform/webform.module | Enabled | module | 1,607 webform_share | modules/contrib/webform_share/webform_share.module | Enabled | module | 0 webform_telephone | modules/contrib/webform_telephone/webform_telephone.module | Enabled | module | 0 xmlsitemap | modules/contrib/xmlsitemap/xmlsitemap.module | Enabled | module | 1,003 xmlsitemap_custom | modules/contrib/xmlsitemap/xmlsitemap_custom/xmlsitemap_custom.module | Enabled | module | 0 xmlsitemap_node | modules/contrib/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module | Enabled | module | 0 youtube | modules/contrib/youtube/youtube.module | Enabled | module | 1,000 field_wrappers_extra | modules/custom/field_wrappers_extra/field_wrappers_extra.module | Enabled | module | 0 service_schedule | modules/custom/service_schedule/service_schedule.module | Enabled | module | 0 seven_pm | themes/seven_pm/seven_pm.info | Enabled | theme | -1 tatsu | themes/tatsu/tatsu.info | Enabled | theme | -1 tatsu_sbc | themes/tatsu_sbc/tatsu_sbc.info | Enabled | theme | -1 block_test | core/modules/block/tests/block_test/block_test.module | Disabled | module | -1 book | core/modules/book/book.module | Disabled | module | -1 color | core/modules/color/color.module | Disabled | module | -1 config_test | core/modules/config/tests/config_test/config_test.module | Disabled | module | -1 config_test_hooks | core/modules/config/tests/config_test_hooks/config_test_hooks.module | Disabled | module | -1 contact | core/modules/contact/contact.module | Disabled | module | -1 entity_cache_test | core/modules/entity/tests/entity_cache_test/entity_cache_test.module | Disabled | module | -1 entity_cache_test_dependency | core/modules/entity/tests/entity_cache_test_dependency/entity_cache_test_dependency.module | Disabled | module | -1 entity_caching_test | core/modules/entity/tests/entity_caching_test/entity_caching_test.module | Disabled | module | -1 entity_crud_hook_test | core/modules/entity/tests/entity_crud_hook_test/entity_crud_hook_test.module | Disabled | module | -1 entity_query_access_test | core/modules/entity/tests/entity_query_access_test/entity_query_access_test.module | Disabled | module | -1 entity_test | core/modules/entity/tests/entity_test/entity_test.module | Disabled | module | -1 entityreference_views_test | core/modules/entityreference/tests/entityreference_views_test/entityreference_views_test.module | Disabled | module | -1 list_test | core/modules/field/modules/list/tests/list_test.module | Disabled | module | -1 field_test | core/modules/field/tests/field_test/field_test.module | Disabled | module | -1 view_mode_test | core/modules/field_ui/tests/view_mode_test/view_mode_test.module | Disabled | module | -1 file_module_test | core/modules/file/tests/file_module_test/file_module_test.module | Disabled | module | -1 filter_formtest | core/modules/filter/tests/filter_formtest.module | Disabled | module | -1 image_module_test | core/modules/image/tests/image_module_test/image_module_test.module | Disabled | module | -1 aaa_installer_test | core/modules/installer/tests/aaa_installer_test/aaa_installer_test.module | Disabled | module | -1 bbb_installer_test | core/modules/installer/tests/bbb_installer_test/bbb_installer_test.module | Disabled | module | -1 ccc_installer_test | core/modules/installer/tests/ccc_installer_test/ccc_installer_test.module | Disabled | module | -1 installer_test | core/modules/installer/tests/installer_test/installer_test.module | Disabled | module | -1 language | core/modules/language/language.module | Disabled | module | -1 layout_test | core/modules/layout/tests/layout_test/layout_test.module | Disabled | module | -1 locale | core/modules/locale/locale.module | Disabled | module | -1 locale_test | core/modules/locale/tests/locale_test/locale_test.module | Disabled | module | -1 node_access_test | core/modules/node/tests/node_access_test/node_access_test.module | Disabled | module | -1 node_layout_preview_revision_test | core/modules/node/tests/node_layout_preview_revision_test/node_layout_preview_revision_test.module | Disabled | module | -1 node_layout_preview_test | core/modules/node/tests/node_layout_preview_test/node_layout_preview_test.module | Disabled | module | -1 node_test | core/modules/node/tests/node_test/node_test.module | Disabled | module | -1 node_test_exception | core/modules/node/tests/node_test_exception/node_test_exception.module | Disabled | module | -1 search_embedded_form | core/modules/search/tests/search_embedded_form/search_embedded_form.module | Disabled | module | -1 search_extra_type | core/modules/search/tests/search_extra_type/search_extra_type.module | Disabled | module | -1 simpletest | core/modules/simpletest/simpletest.module | Disabled | module | -1 actions_loop_test | core/modules/simpletest/tests/actions_loop_test.module | Disabled | module | -1 ajax_forms_test | core/modules/simpletest/tests/ajax_forms_test.module | Disabled | module | -1 ajax_test | core/modules/simpletest/tests/ajax_test.module | Disabled | module | -1 backdrop_system_listing_compatible_test | core/modules/simpletest/tests/backdrop_system_listing_compatible_test/backdrop_system_listing_compatible_test.module | Disabled | module | -1 backdrop_system_listing_incompatible_test | core/modules/simpletest/tests/backdrop_system_listing_incompatible_test/backdrop_system_listing_incompatible_test.module | Disabled | module | -1 batch_test | core/modules/simpletest/tests/batch_test.module | Disabled | module | -1 boot_test_1 | core/modules/simpletest/tests/boot_test_1.module | Disabled | module | -1 boot_test_2 | core/modules/simpletest/tests/boot_test_2.module | Disabled | module | -1 common_test | core/modules/simpletest/tests/common_test.module | Disabled | module | -1 common_test_cron_helper | core/modules/simpletest/tests/common_test_cron_helper.module | Disabled | module | -1 config_obj_test | core/modules/simpletest/tests/config_obj_test/config_obj_test.module | Disabled | module | -1 database_test | core/modules/simpletest/tests/database_test.module | Disabled | module | -1 dependency_test1 | core/modules/simpletest/tests/dependency_test1.module | Disabled | module | -1 dependency_test2 | core/modules/simpletest/tests/dependency_test2.module | Disabled | module | -1 dependency_test3 | core/modules/simpletest/tests/dependency_test3.module | Disabled | module | -1 error_test | core/modules/simpletest/tests/error_test.module | Disabled | module | -1 file_test | core/modules/simpletest/tests/file_test.module | Disabled | module | -1 filter_test | core/modules/simpletest/tests/filter_test.module | Disabled | module | -1 form_test | core/modules/simpletest/tests/form_test.module | Disabled | module | -1 image_test | core/modules/simpletest/tests/image_test.module | Disabled | module | -1 menu_test | core/modules/simpletest/tests/menu_test.module | Disabled | module | -1 module_test | core/modules/simpletest/tests/module_test.module | Disabled | module | -1 path_test | core/modules/simpletest/tests/path_test.module | Disabled | module | -1 requirements1_test | core/modules/simpletest/tests/requirements1_test.module | Disabled | module | -1 requirements2_test | core/modules/simpletest/tests/requirements2_test.module | Disabled | module | -1 session_test | core/modules/simpletest/tests/session_test.module | Disabled | module | -1 system_dependencies_test | core/modules/simpletest/tests/system_dependencies_test.module | Disabled | module | -1 system_incompatible_core_version_dependencies_test | core/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module | Disabled | module | -1 system_incompatible_core_version_test | core/modules/simpletest/tests/system_incompatible_core_version_test.module | Disabled | module | -1 system_incompatible_module_version_dependencies_test | core/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module | Disabled | module | -1 system_incompatible_module_version_test | core/modules/simpletest/tests/system_incompatible_module_version_test.module | Disabled | module | -1 system_project_namespace_test | core/modules/simpletest/tests/system_project_namespace_test.module | Disabled | module | -1 system_test | core/modules/simpletest/tests/system_test.module | Disabled | module | -1 taxonomy_test | core/modules/simpletest/tests/taxonomy_test.module | Disabled | module | -1 theme_test | core/modules/simpletest/tests/theme_test.module | Disabled | module | -1 token_test | core/modules/simpletest/tests/token_test.module | Disabled | module | -1 update_d7_test_1 | core/modules/simpletest/tests/update_d7_test_1.module | Disabled | module | -1 update_d7_test_2 | core/modules/simpletest/tests/update_d7_test_2.module | Disabled | module | -1 update_script_test | core/modules/simpletest/tests/update_script_test.module | Disabled | module | -1 update_test_1 | core/modules/simpletest/tests/update_test_1.module | Disabled | module | -1 update_test_2 | core/modules/simpletest/tests/update_test_2.module | Disabled | module | -1 update_test_3 | core/modules/simpletest/tests/update_test_3.module | Disabled | module | -1 url_alter_test | core/modules/simpletest/tests/url_alter_test.module | Disabled | module | -1 syslog | core/modules/syslog/syslog.module | Disabled | module | -1 cron_queue_test | core/modules/system/tests/cron_queue_test/cron_queue_test.module | Disabled | module | -1 deprecated_redirect_test | core/modules/system/tests/deprecated_redirect_test/deprecated_redirect_test.module | Disabled | module | -1 system_cron_test | core/modules/system/tests/system_cron_test/system_cron_test.module | Disabled | module | -1 taxonomy_nodes_test | core/modules/taxonomy/tests/taxonomy_nodes_test/taxonomy_nodes_test.module | Disabled | module | -1 taxonomy_vocab_load_test | core/modules/taxonomy/tests/taxonomy_vocab_load_test/taxonomy_vocab_load_test.module | Disabled | module | -1 translation_test | core/modules/translation/tests/translation_test/translation_test.module | Disabled | module | -1 translation | core/modules/translation/translation.module | Disabled | module | -1 aaa_update_test | core/modules/update/tests/aaa_update_test/aaa_update_test.module | Disabled | module | -1 bbb_update_test | core/modules/update/tests/bbb_update_test/bbb_update_test.module | Disabled | module | -1 ccc_update_test | core/modules/update/tests/ccc_update_test/ccc_update_test.module | Disabled | module | -1 update_test | core/modules/update/tests/update_test/update_test.module | Disabled | module | -1 user_flood_test | core/modules/user/tests/user_flood_test/user_flood_test.module | Disabled | module | -1 user_form_test | core/modules/user/tests/user_form_test/user_form_test.module | Disabled | module | -1 user_session_test | core/modules/user/tests/user_session_test/user_session_test.module | Disabled | module | -1 views_test | core/modules/views/tests/views_test/views_test.module | Disabled | module | -1 views_test_entity | core/modules/views/tests/views_test_entity/views_test_entity.module | Disabled | module | -1 bartik | core/themes/bartik/bartik.info | Disabled | theme | -1 stark | core/themes/stark/stark.info | Disabled | theme | -1 bef_test_content | modules/contrib/better_exposed_filters/tests/bef_test_content/bef_test_content.module | Disabled | module | -1 conditional_fields_test | modules/contrib/conditional_fields/tests/conditional_fields_test.module | Disabled | module | -1 editableviews_test | modules/contrib/editableviews/tests/editableviews_test/editableviews_test.module | Disabled | module | -1 editableviews_test_feature | modules/contrib/editableviews/tests/editableviews_test_feature/editableviews_test_feature.module | Disabled | module | -1 entity_plus_i18n | modules/contrib/entity_plus/modules/entity_plus_i18n/entity_plus_i18n.module | Disabled | module | -1 feeds_import | modules/contrib/feeds/feeds_import/feeds_import.module | Disabled | module | -1 feeds_tests | modules/contrib/feeds/tests/feeds_tests/feeds_tests.module | Disabled | module | -1 feeds_test_field | modules/contrib/feeds/tests/modules/feeds_test_field/feeds_test_field.module | Disabled | module | -1 field_group_tests | modules/contrib/field_group/tests/field_group_tests/field_group_tests.module | Disabled | module | -1 fontsquirrel | modules/contrib/fontyourface/modules/fontsquirrel/fontsquirrel.module | Disabled | module | -1 fonts_com | modules/contrib/fontyourface/modules/fonts_com/fonts_com.module | Disabled | module | -1 font_reference | modules/contrib/fontyourface/modules/font_reference/font_reference.module | Disabled | module | -1 google_fonts_api | modules/contrib/fontyourface/modules/google_fonts_api/google_fonts_api.module | Disabled | module | -1 typekit_api | modules/contrib/fontyourface/modules/typekit_api/typekit_api.module | Disabled | module | -1 image_effects_autorotate | modules/contrib/image_effects/autorotate/image_effects_autorotate.module | Disabled | module | -1 image_effects_canvasactions | modules/contrib/image_effects/canvasactions/image_effects_canvasactions.module | Disabled | module | -1 imagecache_customactions | modules/contrib/image_effects/customactions/imagecache_customactions.module | Disabled | module | -1 image_effects_text | modules/contrib/image_effects/image_effects_text/image_effects_text.module | Disabled | module | -1 image_effects_text_test | modules/contrib/image_effects/image_effects_text/image_effects_text_test/image_effects_text_test.module | Disabled | module | -1 image_styles_admin | modules/contrib/image_effects/image_styles_admin/image_styles_admin.module | Disabled | module | -1 image_effects_testsuite | modules/contrib/image_effects/tests/image_effects_testsuite.module | Disabled | module | -1 matomo_testing | modules/contrib/matomo/tests/matomo_testing.module | Disabled | module | -1 metatag_app_links | modules/contrib/metatag/metatag_app_links/metatag_app_links.module | Disabled | module | -1 metatag_dc | modules/contrib/metatag/metatag_dc/metatag_dc.module | Disabled | module | -1 metatag_dc_advanced | modules/contrib/metatag/metatag_dc_advanced/metatag_dc_advanced.module | Disabled | module | -1 metatag_devel | modules/contrib/metatag/metatag_devel/metatag_devel.module | Disabled | module | -1 metatag_facebook | modules/contrib/metatag/metatag_facebook/metatag_facebook.module | Disabled | module | -1 metatag_favicons | modules/contrib/metatag/metatag_favicons/metatag_favicons.module | Disabled | module | -1 metatag_google_cse | modules/contrib/metatag/metatag_google_cse/metatag_google_cse.module | Disabled | module | -1 metatag_google_plus | modules/contrib/metatag/metatag_google_plus/metatag_google_plus.module | Disabled | module | -1 metatag_hreflang | modules/contrib/metatag/metatag_hreflang/metatag_hreflang.module | Disabled | module | -1 metatag_importer | modules/contrib/metatag/metatag_importer/metatag_importer.module | Disabled | module | -1 metatag_mobile | modules/contrib/metatag/metatag_mobile/metatag_mobile.module | Disabled | module | -1 metatag_opengraph_products | modules/contrib/metatag/metatag_opengraph_products/metatag_opengraph_products.module | Disabled | module | -1 metatag_twitter_cards | modules/contrib/metatag/metatag_twitter_cards/metatag_twitter_cards.module | Disabled | module | -1 metatag_verification | modules/contrib/metatag/metatag_verification/metatag_verification.module | Disabled | module | -1 metatag_views | modules/contrib/metatag/metatag_views/metatag_views.module | Disabled | module | 0 metatag_views_tests | modules/contrib/metatag/metatag_views/tests/metatag_views_tests/metatag_views_tests.module | Disabled | module | -1 metatag_search_test | modules/contrib/metatag/tests/metatag_search_test.module | Disabled | module | -1 metatag_test | modules/contrib/metatag/tests/metatag_test/metatag_test.module | Disabled | module | -1 node_clone | modules/contrib/node_clone/node_clone.module | Disabled | module | -1 paragraphs_i18n | modules/contrib/paragraphs/modules/paragraphs_i18n/paragraphs_i18n.module | Disabled | module | -1 role_help | modules/contrib/role_help/role_help.module | Disabled | module | -1 rules_i18n | modules/contrib/rules/rules_i18n/rules_i18n.module | Disabled | module | -1 rules_scheduler | modules/contrib/rules/rules_scheduler/rules_scheduler.module | Disabled | module | -1 rules_scheduler_test | modules/contrib/rules/rules_scheduler/tests/rules_scheduler_test/rules_scheduler_test.module | Disabled | module | -1 rules_export_test | modules/contrib/rules/tests/rules_export_test/rules_export_test.module | Disabled | module | -1 rules_test | modules/contrib/rules/tests/rules_test/rules_test.module | Disabled | module | -1 rules_test_invocation | modules/contrib/rules/tests/rules_test_invocation/rules_test_invocation.module | Disabled | module | -1 xmlsitemap_engines_test | modules/contrib/xmlsitemap/xmlsitemap_engines/tests/xmlsitemap_engines_test.module | Disabled | module | -1 xmlsitemap_engines | modules/contrib/xmlsitemap/xmlsitemap_engines/xmlsitemap_engines.module | Disabled | module | -1 xmlsitemap_i18n | modules/contrib/xmlsitemap/xmlsitemap_i18n/xmlsitemap_i18n.module | Disabled | module | -1 xmlsitemap_menu | modules/contrib/xmlsitemap/xmlsitemap_menu/xmlsitemap_menu.module | Disabled | module | -1 xmlsitemap_taxonomy | modules/contrib/xmlsitemap/xmlsitemap_taxonomy/xmlsitemap_taxonomy.module | Disabled | module | -1 xmlsitemap_user | modules/contrib/xmlsitemap/xmlsitemap_user/xmlsitemap_user.module | Disabled | module | -1 youtube_colorbox | modules/contrib/youtube/modules/youtube_colorbox/youtube_colorbox.module | Disabled | module | -1 feeds_source_update | modules/custom/feeds_source_update/feeds_source_update.module | Disabled | module | -1 devel_subthemer | modules/devel_subthemer/devel_subthemer.module | Disabled | module | 0 replicate | modules/replicate/replicate.module | Disabled | module | 0 replicate_paragraphs | modules/replicate_paragraphs/replicate_paragraphs.module | Disabled | module | 0
yorkshire-pudding commented 10 months ago

Got more errors when running bee config-import even though there was no config update for match_redirect

class_implements(): Class MatchRedirectEntityController does not exist and could not be loaded
 /home/stocksfieldbapti/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:281

in_array() expects parameter 2 to be array, bool given
 /home/stocksfieldbapti/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:281

class_implements(): Class MatchRedirectEntityController does not exist and could not be loaded
 /home/stocksfieldbapti/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:281

in_array() expects parameter 2 to be array, bool given
 /home/stocksfieldbapti/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:281

class_implements(): Class MatchRedirectEntityController does not exist and could not be loaded
 /home/stocksfieldbapti/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:262

in_array() expects parameter 2 to be array, bool given
 /home/stocksfieldbapti/website/production/docroot/modules/contrib/entity_plus/entity_plus.module:262

I did raise this issue quite some time ago so probably all related

argiepiano commented 10 months ago

@yorkshire-pudding those spots can be temporarily fixed the same way I mentioned above - add class_exists($info['controller class']) as the second statement in those if.

It's the same issue: those functions are running before the autoload hooks have run - for an unknown reason.

argiepiano commented 10 months ago

@yorkshire-pudding - question: do you have the Drupal compatibility layer enabled? I see match_redirect still uses some drupal namespaced functions - in hook_init, which may not be caught.

yorkshire-pudding commented 10 months ago

@yorkshire-pudding - question: do you have the Drupal compatibility layer enabled? I see match_redirect still uses some drupal namespaced functions - in hook_init, which may not be caught.

I do have drupal compatibility switched on for that site; checked both locally and on host.

@yorkshire-pudding those spots can be temporarily fixed the same way I mentioned above - add class_exists($info['controller class']) as the second statement in those if.

It's the same issue: those functions are running before the autoload hooks have run - for an unknown reason.

That was with the patch you suggested (it is the same site). The git pull happens before the config-import

argiepiano commented 10 months ago

That was with the patch you suggested (it is the same site). The git pull happens before the config-import

No, no. You fixed those other lines. I meant: you need to fix these NEW lines with the same patch.(281 and 262).

yorkshire-pudding commented 10 months ago

That was with the patch you suggested (it is the same site). The git pull happens before the config-import

No, no. You fixed those other lines. I meant: you need to fix these NEW lines with the same patch.(281 and 262).

Thanks. patching those lines too enables config-import to work