Chrome и Chromium оба отказываются запускаться [FATAL:partition_address_space]

Вопрос или проблема

Я потратил 2 дня, пытаясь выяснить, почему chromium и chrome-linux не запускаются на моем сервере из командной строки.

Я также пробовал несколько версий обоих программ, множество комбинаций различных флагов (--no-zygote и т.д.). Не обнаружено отсутствующих библиотек (ldd chrome | grep not ничего не возвращает). Он работает только в том случае, если я запускаю его как root, как показано ниже:

/home/my-user-folder/chrome-linux/chrome --headless --no-sandbox --disable-gpu --print-to-pdf=/home/my-user-folder/output.pdf https://www.google.com 2>&1 | tee chrome-error.log

В результате я получаю PDF-файл с содержимым google.com, что приемлемо, но если я запускаю ту же команду не от имени root, я получаю следующее:

[FATAL:partition_address_space.cc(77)] Проверка не удалась: false. 
#00 0x55b268094c82  (/home/my-user-folder/chrome-linux/chrome+0x924cc82)
#01 0x55b26809b443  (/home/my-user-folder/chrome-linux/chrome+0x9253443)
#02 0x55b26809b35c  (/home/my-user-folder/chrome-linux/chrome+0x925335c)
#03 0x55b2680a0737  (/home/my-user-folder/chrome-linux/chrome+0x9258737)
#04 0x55b2680a0cbd  (/home/my-user-folder/chrome-linux/chrome+0x9258cbd)
#05 0x55b2680ae508  (/home/my-user-folder/chrome-linux/chrome+0x9266508)
#06 0x55b2680a71df  (/home/my-user-folder/chrome-linux/chrome+0x925f1df)
#07 0x55b2680a6ad9  (/home/my-user-folder/chrome-linux/chrome+0x925ead9)
#08 0x7f89f37d25ef  (/lib64/libc-2.28.so+0x475ef)

Я также посмотрел в /var/log/messages, чтобы увидеть, что появляется в журнале каждый раз, когда я запускаю chrome от имени пользователя, и вот что я получил.

10 сент. 14:36:23 xxxxxxxxx kernel: traps: chrome[3587350] ловит trap int3 ip:55e8901b7cad sp:7ffd344644f0 ошибка:0 в chrome[55e88b0e3000+b896000]
10 сент. 14:36:23 xxxxxxxxx systemd[1]: Запущен процесс получения дампа памяти (PID 3587352/UID 0).
10 сент. 14:36:23 xxxxxxxxx systemd-coredump[3587353]: Ограничения ресурсов отключают дампы памяти для процесса 3587350 (chrome).
10 сент. 14:36:23 xxxxxxxxx systemd-coredump[3587353]: Процесс 3587350 (chrome) пользователя 1005 создал дамп памяти.
10 сент. 14:36:23 xxxxxxxxx systemd[1]: [email protected]: Успешно.

Сервер работает под управлением Cloudlinux и cPanel. Мне нужно использовать chrome (или chromium) на хостинговом веб-сайте, у которого, насколько я знаю, есть все необходимые разрешения. Более того, я также пробовал отключить CageFS, SELinux и убрать все ограничения (веб-сайт/пользователь имеет неограниченные CPU, память и т.д.), но ничего не меняется.

Я только что столкнулся с такой же проблемой. В моем случае я запускал chromium из подпроцесса. Подпроцесс был запущен с помощью python, и я использовал модуль resource, чтобы установить лимит на использование памяти и применить это в:

def preexec():
   resource.setrlimit(resource.RLIMIT_AS, (mem_limit, mem_limit))
await asyncio.create_subprocess_exec(cmd, preexec_fn=preexec)

Удаление функции preexec решило проблему. Я нашел эту проблему, которая подсказала мне. Возможно, что-то, что запускает chromium, устанавливает ограничения ресурсов?

Ответ или решение

Проблема с запуском Chrome и Chromium с ошибкой [FATAL:partition_address_space], о которой вы упоминаете, может быть связана с несколькими факторами, особенно в окружении, как CloudLinux и cPanel.

Возможные причины и решения:

  1. Проблемы с правами доступа и окружением:

    • Chromium может требовать определенные права доступа к системным ресурсам или файлам, которые могут быть ограничены в рамках вашего пользователя. Попробуйте выполнить команду с привилегиями пользователя, который имеет доступ ко всем необходимым ресурсам, или измените конфигурацию пользователя для большего доступа.
  2. Использование CageFS:

    • Хотя вы упомянули, что отключили CageFS, убедитесь, что все секции конфигурации действительно отключены или что вы действуете в неограниченной среде. Некоторые файловые системы и библиотеки могут по-прежнему находиться под управлением CageFS, что может вызывать проблемы при запуске Chromium.
  3. SELinux и ограничения безопасности:

    • Если вы используете SELinux, попробуйте временно отключить его, чтобы убедиться, что он не мешает запуску. Для этого выполните команду:
      setenforce 0
    • Важно помнить, что если это решает проблему, нужно будет составить правила безопасности, чтобы не оставлять систему без защиты.
  4. Запуск процесса с ограничениями:

    • Если Chromium запускается в контексте, где применяются ограничения на использование ресурсов (например, с помощью модуля resource в Python), это может вызывать сбои. Убедитесь, что вы не вводите ограничения на память или адресное пространство, или временно исключите их, как вы уже делали.
  5. Пробный запуск без дополнительных флагов:

    • Попробуйте выполнить команду без дополнительных флагов, таких как --no-sandbox, чтобы проверить, влияет ли это на запуск. Иногда специфические флаги могут вызывать конфликты, особенно в средах с ограничениями.
  6. Обновление библиотек и компонентов:

    • Поскольку вы упомянули, что у вас нет отсутствующих библиотек, проверьте, актуальны ли версии используемых вами библиотек. Обновление до последних стабильных версий может решить проблему. Убедитесь также, что все зависимости Chromium соответствуют требованиям.
  7. Логи и диагностика:

    • Всегда полезно внимательно изучить логи системных сообщений и попытаться выявить другие возможные ошибки или предупреждения, которые могут указать на причину сбоя. Ваша команда dmesg может показать более детальную информацию о системных ошибках.
  8. Тестирование с другим пользователем:

    • Если у вас есть возможность, создайте нового пользователя в системе и запустите Chromium под этим пользователем. Это может помочь исключить проблемы, связанные с конкретным профилем пользователя или конфигурацией.

Заключение:

Если ни одно из вышеперечисленных решений не подходит, возможно, стоит рассмотреть использование другой версии или сборки Chromium/Chrome, или даже альтернативных инструментов для автоматизации браузера, таких как Puppeteer или Playwright, которые могут работать с вашими ограничениями.

Оцените материал
Добавить комментарий

Капча загружается...