На главном сайте вроде все нормально, но при работе с подсайтом через админку время от времени выскакивает ошибка 500.
В логах nginx отображается следующее
2016/12/28 12:01:55 [error] 1321#0: *160155 FastCGI sent in stderr: "PHP message: PHP Fatal error: Unsupported operand types in /data/web/project.dev/www/modules/field/field.info.class.inc on line 495
PHP message: PHP Stack trace:
PHP message: PHP 1. {main}() /data/web/project.dev/www/index.php:0
PHP message: PHP 2. menu_execute_active_handler() /data/web/project.dev/www/index.php:21
PHP message: PHP 3. drupal_deliver_page() /data/web/project.dev/www/includes/menu.inc:542
PHP message: PHP 4. drupal_deliver_html_page() /data/web/project.dev/www/includes/common.inc:2621
PHP message: PHP 5. drupal_render_page() /data/web/project.dev/www/includes/common.inc:2748
PHP message: PHP 6. admin_menu_page_build() /data/web/project.dev/www/includes/common.inc:5879
PHP message: PHP 7. admin_menu_output() /data/web/project.dev/www/sites/sub.project.dev/modules/admin_menu/admin_menu.module:201
PHP message: PHP 8. admin_menu_tree() /data/web/project.dev/www/sites/sub.project.dev/modules/admin_menu/admin_menu.module:508
PHP message: PHP 9. module_invoke_all() /data/web/project.dev/www/sites/sub.project.dev/modules/admin_menu/admin_menu.inc:18
PHP message: PHP 10. call_user_func_array() /data/web/project.dev/www/includes/module.inc:957
PHP message: PHP 11. field_ui_admin_menu_map() /data/web/pproject.dev/www/includes/module.inc:957
PHP message: PHP 12. field_info_instances() /data/web/project.dev/www/sites/sub.project.dev/modules/admin_menu/admin_menu.map.inc:87
PHP message: PHP 13. FieldInfo->getBundleInstances() /data/web/project.dev/www/modules/field/field.info.inc:606
PHP message: PHP 14. FieldInfo->prepareField() /data/web/project.dev/www/modules/field/field.info.class.inc:405" while reading response header from upstream, client: 10.101.0.11, server: sub.project.dev, request: "GET /admin/content HTTP/1.0", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "sub.project.dev", referrer: "https://sub.project.dev/admin/content"
PHP message: PHP Stack trace:
PHP message: PHP 1. {main}() /data/web/project.dev/www/index.php:0
PHP message: PHP 2. menu_execute_active_handler() /data/web/project.dev/www/index.php:21
PHP message: PHP 3. drupal_deliver_page() /data/web/project.dev/www/includes/menu.inc:542
PHP message: PHP 4. drupal_deliver_html_page() /data/web/project.dev/www/includes/common.inc:2621
PHP message: PHP 5. drupal_render_page() /data/web/project.dev/www/includes/common.inc:2748
PHP message: PHP 6. admin_menu_page_build() /data/web/project.dev/www/includes/common.inc:5879
PHP message: PHP 7. admin_menu_output() /data/web/project.dev/www/sites/sub.project.dev/modules/admin_menu/admin_menu.module:201
PHP message: PHP 8. admin_menu_tree() /data/web/project.dev/www/sites/sub.project.dev/modules/admin_menu/admin_menu.module:508
PHP message: PHP 9. module_invoke_all() /data/web/project.dev/www/sites/sub.project.dev/modules/admin_menu/admin_menu.inc:18
PHP message: PHP 10. call_user_func_array() /data/web/project.dev/www/includes/module.inc:957
PHP message: PHP 11. field_ui_admin_menu_map() /data/web/pproject.dev/www/includes/module.inc:957
PHP message: PHP 12. field_info_instances() /data/web/project.dev/www/sites/sub.project.dev/modules/admin_menu/admin_menu.map.inc:87
PHP message: PHP 13. FieldInfo->getBundleInstances() /data/web/project.dev/www/modules/field/field.info.inc:606
PHP message: PHP 14. FieldInfo->prepareField() /data/web/project.dev/www/modules/field/field.info.class.inc:405" while reading response header from upstream, client: 10.101.0.11, server: sub.project.dev, request: "GET /admin/content HTTP/1.0", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "sub.project.dev", referrer: "https://sub.project.dev/admin/content"
Drupal версии 7.53
С чем это может быть связано ?
Сайт на поддомене был пересоздан (удалено содержимое папки sub.project.dev, создан новый settings.php с новым префиксом таблиц для повторной установки)
Начала появляться следующая проблема
2016/12/30 17:31:02 [error] 1725#0: *9067 FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to undefined function field_attach_load() in /data/web/project.dev/www/includes/entity.inc on line 354
PHP message: PHP Stack trace:
PHP message: PHP 1. {main}() /data/web/project.dev/www/index.php:0
PHP message: PHP 2. menu_execute_active_handler() /data/web/project.dev/www/index.php:21
PHP message: PHP 3. call_user_func_array() /data/web/project.dev/www/includes/menu.inc:527
PHP message: PHP 4. user_page() /data/web/project.dev/www/includes/menu.inc:527
PHP message: PHP 5. menu_execute_active_handler() /data/web/project.dev/www/modules/user/user.pages.inc:596
PHP message: PHP 6. menu_get_item() /data/web/project.dev/www/includes/menu.inc:522
PHP message: PHP 7. _menu_translate() /data/web/project.dev/www/includes/menu.inc:482
PHP message: PHP 8. _menu_load_objects() /data/web/project.dev/www/includes/menu.inc:771
PHP message: PHP 9. user_load() /data/web/project.dev/www/includes/menu.inc:603
PHP message: PHP 10. user_load_multiple() /data/web/project.dev/www/modules/user/user.module:366
PHP message: PHP 11. entity_load() /data/web/project.dev/www/modules/user/user.module:291
PHP message: PHP 12. DrupalDefaultEntityController->load() /data/web/project.dev/www/includes/common.inc:8005
PHP message: PHP 13. UserController->attachLoad() /data/web/project.dev/www/includes/entity.inc:206
PHP message: PHP 14. DrupalDefaultEntityController->attachLoad() /data/web/project.dev/www/modules/user/user.module:337" while reading response header from upstream, client: 10.101.0.11, server: sub.project.dev, request: "GET /?q=user HTTP/1.0", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "sub.project.dev", referrer: "https://sub.project.dev/admin"
PHP message: PHP Stack trace:
PHP message: PHP 1. {main}() /data/web/project.dev/www/index.php:0
PHP message: PHP 2. menu_execute_active_handler() /data/web/project.dev/www/index.php:21
PHP message: PHP 3. call_user_func_array() /data/web/project.dev/www/includes/menu.inc:527
PHP message: PHP 4. user_page() /data/web/project.dev/www/includes/menu.inc:527
PHP message: PHP 5. menu_execute_active_handler() /data/web/project.dev/www/modules/user/user.pages.inc:596
PHP message: PHP 6. menu_get_item() /data/web/project.dev/www/includes/menu.inc:522
PHP message: PHP 7. _menu_translate() /data/web/project.dev/www/includes/menu.inc:482
PHP message: PHP 8. _menu_load_objects() /data/web/project.dev/www/includes/menu.inc:771
PHP message: PHP 9. user_load() /data/web/project.dev/www/includes/menu.inc:603
PHP message: PHP 10. user_load_multiple() /data/web/project.dev/www/modules/user/user.module:366
PHP message: PHP 11. entity_load() /data/web/project.dev/www/modules/user/user.module:291
PHP message: PHP 12. DrupalDefaultEntityController->load() /data/web/project.dev/www/includes/common.inc:8005
PHP message: PHP 13. UserController->attachLoad() /data/web/project.dev/www/includes/entity.inc:206
PHP message: PHP 14. DrupalDefaultEntityController->attachLoad() /data/web/project.dev/www/modules/user/user.module:337" while reading response header from upstream, client: 10.101.0.11, server: sub.project.dev, request: "GET /?q=user HTTP/1.0", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "sub.project.dev", referrer: "https://sub.project.dev/admin"
Комментарии
Навскидку причина может быть в версии php-fpm так как лог пишет о неподдерживаемом операнде
Call to undefined function field_attach_load() -
вызов функции из ядра сайта которая еще по каким то причинам не загружена...
удалите все таблицы с префиксом cache
очистите каталог tmp
и выполните /update.php
Как я уже писал ранее, проблема была в том, что в функции prepareField(), принимающей на вход $field, такие необходимые данные как $field['settings'] и $field['storage']['settings'] по какой-то причине приезжают как NULL. Соответственно, PHP никак не может переварить строки
$field['settings'] += field_info_field_settings($field['type']);
и
$field['storage']['settings'] += field_info_storage_settings($field['storage']['type']);
и отсюда получается первая из вышеуказанных ошибок.
Проблема решается заглушкой в виде изменения кода на следующий:
if (!$field['settings']) //KOSTYL.php
$field['settings'] = field_info_field_settings($field['type']); //KOSTYL.php
else //KOSTYL.php
$field['settings'] += field_info_field_settings($field['type']);
//KOSTYL.php
if (!$field['storage']['settings']) //KOSTYL.php
$field['storage']['settings'] = field_info_storage_settings($field['storage']['type']);//KOSTYL.php
else //KOSTYL.php
$field['storage']['settings'] += field_info_storage_settings($field['storage']['type']);
Кто-нибудь встречался с подобными косяками и, если да, то как удалось решить?
попробуйте переустановить модуль admin_menu, судя по стеку в нем может быть дело - этот модуль не из ядра