Как обновить модуль, если composer пишет killed?

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

Аватар пользователя Alex1989_drupal Alex1989_drupal 21 ноября 2022 в 17:24

Приветствую. Как обновить модуль, если composer пишет killed?

composer update drupal/search_api --with-dependencies

Система пишет Killed. Прочитал, что composer нужно больше оперативной памяти. У меня 2 ГБ всего. Из них свободно 900м.
Composer version 2.0.12

Комментарии

Аватар пользователя ivnish ivnish 21 ноября 2022 в 17:30

Это на локалке? Попробуй добавить файла подкачки гигов 8

Но, ИМХО, с 2 гигами оперативки нормально веб-разработкой заниматься не получится

Аватар пользователя ivnish ivnish 21 ноября 2022 в 17:48
1

На продакшене не нужно запускать composer update. Обновляться нужно на локалке, а на проде запускать composer install

Аватар пользователя marassa marassa 21 ноября 2022 в 17:32

Alex1989_drupal wrote: Система пишет Killed

Чуть подробнее бы, можно со скриншотом.

Alex1989_drupal wrote: Прочитал, что composer нужно больше оперативной памяти. У меня 2 ГБ всего

Это первый композер был прожорлив, второй нет. У меня на хостинге тоже 2 ГБ и всё работает. Это не так уж мало.

Аватар пользователя marassa marassa 21 ноября 2022 в 17:44

Alex1989_drupal wrote: некоторые модули могут обновиться, некоторым не хватает ресурсов.

А сколько памяти выделено для PHP на сервере? Это можно посмотреть на /admin/reports/status

Аватар пользователя marassa marassa 21 ноября 2022 в 17:47

Вот это точно очень мало, по умолчанию 256. Гугл или настоящие боевые сисадмины подскажут как увеличить, я навскидку не помню Wink

Аватар пользователя ivnish ivnish 21 ноября 2022 в 17:51

В "отчете о состоянии" это память для веб-запросов. А для php-cli ограничения памяти отдельно задаются.

Аватар пользователя bsyomov bsyomov 22 ноября 2022 в 14:39

Там было бы не killed, а ошибка php в стиле "memory limit exceed".
Тут не хватает именно выделения на стороне ОС, и срабатывает OOM killer.

Правильно - надо делать update на dev, а на prod делать install, как правильно выше написано.
Второй вариант - свап или доп. память.

Второй композер конечно менее прожорлив, но не так уж и лёгок в update. Первый конечно мог и пару гигов целиком сожрать. Но и второй несколько сот мегов может.

Аватар пользователя Alex1989_drupal Alex1989_drupal 27 ноября 2022 в 18:54

Не нашел про install.
Сделал так:
composer require 'drupal/search_api:^1.28'
Вроде работает. Вообще, читая мануалы не очень ясно как именно правильно. Возможно я не внимательно читал, но на орге в мануалах именно composer update или composer require

Аватар пользователя Photo_Almaty Photo_Almaty 6 января 2023 в 0:38

Если Composer возвращает ошибку «Killed» при попытке обновить модуль, это означает, что процесс был прерван до того, как он смог завершиться. Это может быть вызвано различными проблемами, такими как нехватка памяти или тайм-аут.

Чтобы устранить эту проблему, вы можете попробовать выполнить следующие действия:

Проверьте журналы ошибок вашего сервера, чтобы узнать, есть ли какие-либо подсказки относительно того, почему процесс был завершен.
Увеличьте лимит памяти для Composer, добавив следующую строку в файл «composer.json»:

<?php"config": {
    "platform": {
        "php": "7.4"
    },
    "memory-limit": -1
}
?>

Если проблема не устранена, вам может потребоваться увеличить лимит времени ожидания для Composer, добавив следующую строку в файл «composer.json»:

<?php"config": {
    "platform": {
        "php": "7.4"
    },
    "process-timeout": 3600
}?>

Если проблема не устранена, вам может потребоваться обновить модуль вручную, загрузив последнюю версию с веб-сайта проекта и извлекая ее в каталог «modules» вашего сайта.

Аватар пользователя bsyomov bsyomov 7 января 2023 в 16:21

Нет, вы ошибаетесь, это не будет работать при таком сообщении. В обоих случаях, и при memory_limit и при таймауте выполнения, была бы внятная ошибка со стороны php, точно указывающая на причину проблемы.

Ошибка "Killed", как тут, это либо вручную снят процесс, либо OOM killer при критичной нехватке памяти( ну а точнее SIGKILL или SIGTERM отправленные процессу извне, если быть точным). И именно в данном случае, это наверняка OOM Killer.