Зависает обновление прав доступа после установки Domain access. Обновление проходит как бы на 85-99%, но, судя по таблице node_access, не доходит даже до половины. Самих нод порядка двух тысяч, в таблице node_access затыкается на ~450-550. При отключенном модуле обновление проходит «на ура» (ну а чё там тормозить, если добавляется аж одна запись ). Все ноды заведены админом сайта (user/1). Для друпала на хостинге установлено 128М памяти и максимальное время выполнения 300 секунд (по идее, этого достаточно — для обновления такого количества нод, думаю, более чем достаточно; тем паче, до затыка добегает секунд за 10-15).
Копание в issues модуля на друпал.орг дало пару тредов с такой же проблемой и нулевым результатом — разработчик чуть ли не кармой клянется, что косяк не его. Больше не включено ни одного модуля, который бы теоретически мог влиять на распределение прав доступа. Аналогичные проблемы, но с другими модулями а-ля OG (у меня отсутствует за ненадобностью), возникали и у других (см. тот же друпал.орг), но никаких решений я так и не нашел.
Может кто знает, че делать в таком случае? Модуль реально необходим, и достойных альтернатив в моём случае ему нет.
P.S. Интересный нюанс. Поковырявшись в batch.inc, сменил этот код
<?php
function _batch_start() {
if (isset($_COOKIE['has_js']) && $_COOKIE['has_js']) {
return _batch_progress_page_js();
}
else {
return _batch_progress_page_nojs();
}
}
?>
на этот
<?php
function _batch_start() {
if (isset($_COOKIE['has_js']) && $_COOKIE['has_js']) {
return _batch_progress_page_nojs();
}
else {
return _batch_progress_page_nojs();
}
}
?>
т.е. в любом случае вызывалась страничка обновления прав доступа с отключенным джаваскриптом. При этом обновление благополучно перевалило за 100% и продолжало расти, но в node_access записей не добавлялось (опять затыкалось на тех же ~450-550).
Комментарии
а посмотреть, на какой ноде зависает процесс добавления в node_access и поковыряться с этой нодой? или удалить ее совсем?
у меня было похожая ситуация, но я все бд с темами, комментами и юзерами переносил вручную со старого сайта, при этом были косяки с некоторыми темами - удалил их - все прошло нормально...
gerboss
В том-то и дело, что нода ничем не отличается от остальных — всё то же. Видимых различий я, во всяком случае, не нашел. Вариант с удалением ноды отпадает.
хотя бы для тестирования.
сделать бекап БД, удалить эту ноду, проверить обновление доступа и вернуть все из бекапа.
хм… после удаления ноды всё прошло гладко. Но без цистерны дегтя к нашей бочке мёда, как всегда, не обошлось — не отображаются некоторые типы контента, причем по прямому доступу к ним сама нода отображается, а вот при запросе db_query() — показывает кукиш.
Глюк оказался с конструкцией db_query(db_rewrite_sql($sql)). Если убрать db_rewrite_sql(), который был написан просто по привычке (всё равно запрос был прямым, без ухищрений), то всё работает, и права доступа на вывод не влияют (да и не должны, собственно). Или я чего-то пропустил, или в обновлении 6.14 параметры в db_rewrite_sql() стали обязательными?
Впрочем, это уже мелочи.
В принципе, проблема решена (удаленная нода ушла в
жлес), но только для меня. Общий вопрос с перестроением прав доступа остается открытым. И, чувствую, аж до релиза семерки (как минимум).Столкнулся с похожей проблемой. Помогло: