Вы здесь

Сломались загрузки файлов на Drupal 6

0

Пока перенос на Drupal 8 идёт так себе, старый сайт пока еще работает и начал вставлять палки в колёса.

Сначала о проблеме, а затем попытаюсь восстановить цепочку событий, которые этому могли поспособствовать.

При загрузке картинок, в качестве обложек материалов, вылезает ошибка:

Произошла неизвестная ошибка. Данная форма не содержится в кэше форм на сервере. Попробуйте перезагрузить страницу и отправить форму снова.

Она же на английском:

An unrecoverable error occurred. This form was missing from the server cache. Try reloading the page and submitting again.

Форма для загрузки файлов так же не фурычит:

Ошибка при проверке значения, пожалуйста повторите. Если ошибка повторится, сообщите администратору сайта.

На англ. та же ошибка:

Validation error, please try again. If this error persists, please contact the site administrator.

А теперь о моих догадках. Сайт работает на PHP 5.3.29. Решил попробовать поставить модуль memcached, с которым я удачно реализовал фичу на другом изолированном самописном проекте. Всё завелось с пол тычка и работало прекрасно ровно до тех пор, пока я не поставил тот же модуль на соседний сайт, работающий на Drupal 7 и на PHP 7.1.22.

Но каково было моё удивление, когда после установки соответствующего php модуля и активации модуля на Drupal 7, оба сайта расхреначило так, что я до сих пор в шоке.

Во-первых, закешировались вызовы крона и сброса кеша так, что я не мог их вызвать.

Во-вторых, слетели все блоки! Настройки многих блоков, в том числе мест размещения, были удалены. Все блоки отключились. На первом, который D6, в общей сложности около 200 различных блоков, которые накопились за 8 лет существования сайта. Из них активных было около 30-50, но каких именно я уже не помнил, названия многих схожи.

Представляете оказаться в 2 часа ночи с посещаемым сайтом, на котором ни один блок не активен? Шикарно!

До 7 утра разгребал это дело, периодами прерываясь на разрывание кожи на лице, сопровождая сие действие отборными матами.

Пришлось отключать модули memcache, как самих сайтов, так и php, после чего чистить кэш на компе и только после этих манипуляций удалось посбрасывать кэши на сайтах и восстановить блоки (которые до этого не сохранялись).

Вишенкой на торте вылезла ошибка с файлами, описанная в первой половине этого опуса.

Второй сайт на D7 еще маленький, там буквально несколько блоков, восстановил за 10 мин. Да и загрузка файлов и картинок там работает.

В error логе при попытке загрузки файла появляется следующее:

2019/03/29 00:36:22 [warn] 2348#2348: *1696575 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000711, client: 111.22.333.44, server: site.ru, request: "POST /filefield/ahah/file/field_postimg/0 HTTP/1.1", host: "site.ru", referrer: "https://site.ru/node/add/file"

Версия Drupal: 
6.x
Связанные проекты: 
FileField
Вопрос задан 29.03.2019 - 23:57

Ответы

0

Не смейтесь, но "разговоры с уточкой" работают. Оставлю решение здесь, на тот случай, если кому-то поможет.

Из settings.php забыл удалить настройку:

$conf['cache_inc'] ='sites/all/modules/memcache/memcache.inc';

Закомментил её и всё взлетело.

Остаётся открытым лишь вопрос о том, почему два сайта оказались работать с memcahce.

Ответ дан 30.03.2019 - 00:05