Problem/Motivation
We're using data + eck module and after updating from features 7.x-2.14 to 7.x-2.15 the following Fatal Error appears on clearing cache (via cache flush UI or drush cc all):
Fatal error: Uncaught TypeError: Argument 2 passed to SelectQuery::fields() must be of the type array, null given, called in /includes/entity.inc on line 320 and defined in /includes/database/select.inc:1347 Stack trace:
#0 /includes/entity.inc(320): SelectQuery->fields('base', NULL)
#1 /sites/all/modules/contrib/entity/includes/entity.controller.inc(175): DrupalDefaultEntityController->buildQuery(Array, Array, false)
#2 /sites/all/modules/contrib/entity/includes/entity.controller.inc(719): EntityAPIController->buildQuery(Array, Array, false)
#3 /sites/all/modules/contrib/entity/includes/entity.controller.inc(192): EntityAPIControllerExportable->buildQuery(false, Array, false)
#4 /sites/all/modules/contrib/entity/includes/entity.controller.inc(256): EntityAPIController->query(false, Array, false)
#5 /sites/all in /includes/database/select.inc on line 1347
Diving deeper, the relevant part of the error behind backtrace is:
[...]
#8 watchdog(php, %type: !message in %function (line %line of %file)., Array ([%type] => Notice,[!message] => Trying to access array offset on value of type bool,[%function] => drupal_schema_field_types(),[%file] => /includes/common.inc,[%line] => 7388,[severity_level] => 5), 5) called at [/includes/errors.inc:208]
#9 _drupal_log_error(Array ([%type] => Notice,[!message] => Trying to access array offset on value of type bool,[%function] => drupal_schema_field_types(),[%file] => /includes/common.inc,[%line] => 7388,[severity_level] => 5), ) called at [/includes/errors.inc:73]
#10 _drupal_error_handler_real(8, Trying to access array offset on value of type bool, /includes/common.inc, 7388) called at [/includes/bootstrap.inc:2667]
#11 _drupal_error_handler(8, Trying to access array offset on value of type bool, /includes/common.inc, 7388, Array ([table] => eck_crm_portrait_fachverband,[table_schema] => ,[field_types] => Array ())) called at [/includes/common.inc:7388]
#12 drupal_schema_field_types(eck_crm_portrait_fachverband) called at [/includes/common.inc:8036]
#13 entity_get_info() called at [/sites/all/modules/contrib/entity/entity.module:762]
#14 entity_crud_get_info() called at [/sites/all/modules/contrib/entity/entity.features.inc:146]
#15 entity_features_api() called at [/includes/module.inc:966]
#16 module_invoke_all(features_api) called at [/sites/all/modules/contrib/features/features.module:660]
#17 features_get_components(, file, ) called at [/sites/all/modules/contrib/features/features.module:477]
#18 features_include() called at [/sites/all/modules/contrib/features/features.module:1341]
#19 features_ctools_plugin_api_alter(Array ([breakpoints] => Array ([version] => 1,[path] => sites/all/modules/contrib/breakpoints)), data, data_default, ) called at [/includes/module.inc:1172]
#20 drupal_alter(ctools_plugin_api, Array ([breakpoints] => Array ([version] => 1,[path] => sites/all/modules/contrib/breakpoints)), data, data_default) called at [/sites/all/modules/contrib/ctools/includes/plugins.inc:114]
#21 ctools_plugin_api_info(data, data_default, 1, 1) called at [/sites/all/modules/contrib/ctools/includes/plugins.inc:147]
#22 ctools_plugin_api_include(data, data_default, 1, 1) called at [/sites/all/modules/contrib/ctools/includes/export.inc:677]
#23 _ctools_export_get_defaults(data_tables, Array ([key] => name,[identifier] => data_table,[default hook] => data_default,[api] => Array ([owner] => data,[api] => data_default,[minimum_version] => 1,[current_version] => 1),[key name] => Name,[object] => stdClass,[status] => default_data_tables,[can disable] => 1,[primary key] => name,[bulk export] => 1,[list callback] => data_data_tables_list,[to hook code callback] => data_data_tables_to_hook_code,[cache defaults] => ,[default cache bin] => cache,[export type string] => type,[boolean] => 1)) called at [/sites/all/modules/contrib/ctools/includes/export.inc:496]
#24 ctools_export_load_object(data_tables, all, Array ()) called at [/sites/all/modules/data/data.module:358]
#25 _data_load_table(, 1) called at [/sites/all/modules/data/data.module:22]
#26 data_get_all_tables(1) called at [/sites/all/modules/data/data.install:78]
[...]
and finally one of these lines seem to cause the trouble:
#17 features_get_components(, file, ) called at [/sites/all/modules/contrib/features/features.module:477]
#18 features_include() called at [/sites/all/modules/contrib/features/features.module:1341]
#19 features_ctools_plugin_api_alter(Array ([breakpoints] => Array ([version] => 1,[path] => sites/all/modules/contrib/breakpoints)), data, data_default, ) called at [/includes/module.inc:1172]
These are the changes from 2.14 to 2.15: https://git.drupalcode.org/project/features/-/compare/7.x-2.14...7.x-2.1...
No idea what may have caused this issue. But downgrading to 2.14 definitely fixes the issue and cache clear works again. No more errors, warnings or even notices.
We already checked data and eck settings and values, all seems to be fine.
Steps to reproduce
See above
Proposed resolution
Remaining tasks
User interface changes
API changes
Data model changes