Суть проблемы в следующем: захожу под гостем на сайт - всё отлично грузится. Перехожу на форум, смотрю статьи - всё ОК. Жму ссылку "На главную". В результате сервер возвращает браузеру пустую страницу. Пытаюсь зайти на форум - результат тот же, белая страница везде где я был.
Очищаю кэш. Гружу главную страницу - всё ОК. Отключаю кэш вообще - сайт работает как положено, никаких белых страниц.
Кто-нибудь сталкивался с подобной проблемой? От кэша не хочу отказываться, он ведь значительно снижает нагрузку на сервер.
Комментарии
Да, сталкивался на drupal.ru и других сайтах под 4.5. Проблема не в кеше - он работает как надо, а в некоторых некорректных contrib-модулях. Но может быть и в API Drupal 4.5 - не разбирался детально. Я только заметил, что проблема возникает в модулях использующих функцию drupal_set_html_head(). Что-то некорректно генерируется в заголовке (или заголовок генерируется не вовремя) - баг воспроизводится если при генерации страницы (послав один запрос) сразу её обновить (т.е. послать ещё один запрос. Стабильно при этом получается ошибка и в её результате пустой буфер вывода, который исправно записывается в кеш. Кеш потом отдаёт эту пустую страницу для анонимных посетителей. Приходящий в голову workaround - проверять запись в кеш на длину данных (маловероятно, что кто-то будет сохранять в кеш старницу длиной с десяток байтов - что как раз получается при данной ошибке). Если короткие и пустые страницы не сохранять в кеше, то по идее при возникновении ошибки она проявится только для одного запроса, но не будет перманентной, т.к. в кеш ошибочных данных не попадёт.
Я не проверял сохранился ли этот баг на 4.6.
--
Axel,
www.axel.drupal.ru
На drupal.ru проблема была "решена" отключением некоторых модулей, в частности codefilter стабильно вызывал данную ошибку. Посмотрим что будет после апгрейда на 4.6.
Вполне вероятно, дело ещё в каких-то настройках PHP, поскольку если бы ошибка была стабильной на всех конфигурациях - об этом бы давно уже кричали на drupal.org, я же прямых упоминаний о ней там не нашёл.
--
Axel,
www.axel.drupal.ru
Ага, спасибо. У меня модулей мало стоит и я сразу отловил "злодея". QuickTags зовётся - делает удобные кнопочки "bold", "italic" и пр. над каждой текстовой областью. Отключил и проблема исчезла. Надо будет найти ему альтернативу.
Ага, вспомнил, quicktags на drupal.ru тоже тогда пришлось отключать: http://drupal.ru/node/648
--
Axel,
www.axel.drupal.ru
Еще какие? На локалке таже фигня с 4.6. только у меня включены ошибки...
( топик в форуме: http://drupal.ru/node/943 )
Нужно помотреть какие сторонние модули подключены. Пробовать отключать (особое внимание обраить на те, которые используют drupal_set_html_head()), не забывая при этом очищать кэш и смотреть что получилось.
в том то вся и соль, что даже при установке "нулевого" друпала все сыпется... склоняюсь к проблеме локального сервачка... но всё может быть.
а какая должна быть посещаемость сайта, что была необходимость включить кэширование страниц?
Может создать отдельную тему в которую народ напишет модули, которые вызывают проблемы с кешированием?