Проблемы с кэшем. Белая страница для гостей

Главные вкладки

Аватар пользователя rezus rezus 14 мая 2005 в 1:13

Суть проблемы в следующем: захожу под гостем на сайт - всё отлично грузится. Перехожу на форум, смотрю статьи - всё ОК. Жму ссылку "На главную". В результате сервер возвращает браузеру пустую страницу. Пытаюсь зайти на форум - результат тот же, белая страница везде где я был.
Очищаю кэш. Гружу главную страницу - всё ОК. Отключаю кэш вообще - сайт работает как положено, никаких белых страниц.
Кто-нибудь сталкивался с подобной проблемой? От кэша не хочу отказываться, он ведь значительно снижает нагрузку на сервер.

Комментарии

Аватар пользователя axel axel 14 мая 2005 в 17:25

Да, сталкивался на drupal.ru и других сайтах под 4.5. Проблема не в кеше - он работает как надо, а в некоторых некорректных contrib-модулях. Но может быть и в API Drupal 4.5 - не разбирался детально. Я только заметил, что проблема возникает в модулях использующих функцию drupal_set_html_head(). Что-то некорректно генерируется в заголовке (или заголовок генерируется не вовремя) - баг воспроизводится если при генерации страницы (послав один запрос) сразу её обновить (т.е. послать ещё один запрос. Стабильно при этом получается ошибка и в её результате пустой буфер вывода, который исправно записывается в кеш. Кеш потом отдаёт эту пустую страницу для анонимных посетителей. Приходящий в голову workaround - проверять запись в кеш на длину данных (маловероятно, что кто-то будет сохранять в кеш старницу длиной с десяток байтов - что как раз получается при данной ошибке). Если короткие и пустые страницы не сохранять в кеше, то по идее при возникновении ошибки она проявится только для одного запроса, но не будет перманентной, т.к. в кеш ошибочных данных не попадёт.

Я не проверял сохранился ли этот баг на 4.6.

--
Axel,
www.axel.drupal.ru

Аватар пользователя axel axel 14 мая 2005 в 17:27

На drupal.ru проблема была "решена" отключением некоторых модулей, в частности codefilter стабильно вызывал данную ошибку. Посмотрим что будет после апгрейда на 4.6.

Вполне вероятно, дело ещё в каких-то настройках PHP, поскольку если бы ошибка была стабильной на всех конфигурациях - об этом бы давно уже кричали на drupal.org, я же прямых упоминаний о ней там не нашёл.

--
Axel,
www.axel.drupal.ru

Аватар пользователя rezus rezus 14 мая 2005 в 17:42

Ага, спасибо. У меня модулей мало стоит и я сразу отловил "злодея". QuickTags зовётся - делает удобные кнопочки "bold", "italic" и пр. над каждой текстовой областью. Отключил и проблема исчезла. Надо будет найти ему альтернативу.

Аватар пользователя rezus rezus 17 мая 2005 в 12:01

Нужно помотреть какие сторонние модули подключены. Пробовать отключать (особое внимание обраить на те, которые используют drupal_set_html_head()), не забывая при этом очищать кэш и смотреть что получилось.

Аватар пользователя arsart arsart 19 мая 2005 в 2:02

в том то вся и соль, что даже при установке "нулевого" друпала все сыпется... склоняюсь к проблеме локального сервачка... но всё может быть.

Аватар пользователя qman qman 19 мая 2005 в 6:28

а какая должна быть посещаемость сайта, что была необходимость включить кэширование страниц?
Может создать отдельную тему в которую народ напишет модули, которые вызывают проблемы с кешированием?