kascor
@kascor
Web-программист

Modx после переезда на другой сервер начал жрать память, почему?

По запросу к некоторым частям сайта выкидывает по 500 ошибке
в логах
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 72 bytes) in /home/~/public_html/core/model/modx/modresource.class.php on line 881

это в методе getAliasPath этого класса

на строке 881

while ($currResource) {
$parentAlias= $currResource['alias'];
                    if (empty ($parentAlias)) {
                        $parentAlias= "{$pathParentId}";
                    }
                    $parentResources[]= "{$parentAlias}";
                    $pathParentId= $currResource['parent'];
881->                    $query->stmt->execute(array($pathParentId));
                    $currResource= $query->stmt->fetch(PDO::FETCH_ASSOC);
                }
  • Вопрос задан
  • 427 просмотров
Решения вопроса 1
kascor
@kascor Автор вопроса
Web-программист
Проблема была в следующем:
При переносе базы с другого сервера, не обратил внимание что импорт произошел с ошибкой, т.к. сайт заработал, таблички все на месте.
Импорт происходит в такой последовательности:
1. Создание таблиц
2. Назначение первичных ключей и индексов полям
3. Назначение автоинкремента полям (первичным)
4. Добавление данных

Ошибка возникла на этапе назначения первичных ключей, индексов и автоинкрементов. Из за этого я получил таблички с данными, но без первичных ключей, индексов и автоинкрементов, в большей части таблиц.

В связи с этим, при добавления нового ресурса, его id назначался на 0, все тормозило и т.д.

Конкретно код выше, зависал в бесконечном цикле.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы