- Вопрос или проблема
- Ответ или решение
- Устранение ошибки сегментации в Ubuntu 22.04: Полное руководство
- Проблема
- Шаги диагностики и устранения
- 1. Проверка состояния оборудования
- 2. Драйверы NVIDIA
- 3. Проверка зависимостей и пакетов
- 4. Контроль системных журналов
- 5. Проверка системы на наличие поврежденных пакетов
- 6. Логирование ошибок и анализ дампов
- 7. Переустановка Ubuntu
- Заключение
Вопрос или проблема
Я испытываю сбои сегментации на Ubuntu 22.04 и хотел бы попросить помощи в отладке.
Я получил некоторые сообщения при выполнении sudo apt-get update
: Сбой сегментации... 52%
При запуске обновления программного обеспечения я получаю: update-manager завершился аварийно с SIGSEV
Другой случай был при удалении окружения conda.
Иногда при запуске python-скриптов в spyder:
/home/max/anaconda3/envs/spyder-env/lib/python3.11/site-packages/spyder/plugins/ipythonconsole/scripts/conda-activate.sh: строка 18: 1216748 Сбой сегментации (сохранен дамп памяти) $CONDA_ENV_PYTHON -m spyder_kernels.console -f $SPYDER_KERNEL_SPEC
Серьезная ошибка Python: Сбой сегментации
Основной поток:
Текущий поток 0x00007bc69791f440 (последний вызов первым):
Файл "/media/max/Workspace/Code/attention_states/tests/../src/temporal_response_function.py", строка 55 в trf_train
Файл "/media/max/Workspace/Code/attention_states/tests/../src/temporal_response_function.py", строка 135 в trf_cross_val
Файл "/media/max/Workspace/Code/attention_states/tests/../src/utils.py", строка 128 в trf_region
Файл "<stdin>", строка 1 в <module>
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/site-packages/spyder_kernels/customize/spyderpdb.py", строка 268 в default
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/cmd.py", строка 214 в onecmd
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/pdb.py", строка 853 в onecmd
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/site-packages/spyder_kernels/customize/spyderpdb.py", строка 683 в cmdloop
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/site-packages/spyder_kernels/customize/spyderpdb.py", строка 653 в _cmdloop
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/site-packages/spyder_kernels/customize/spyderpdb.py", строка 333 в interaction
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/pdb.py", строка 437 в user_line
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/bdb.py", строка 122 в dispatch_line
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/bdb.py", строка 96 в trace_dispatch
Файл "/media/max/Workspace/Code/attention_states/tests/global_signal_phonemes_all.py", строка 327 в <module>
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/bdb.py", строка 651 в run
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/site-packages/spyder_kernels/customize/spyderpdb.py", строка 900 в run
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/site-packages/spyder_kernels/customize/spydercustomize.py", строка 473 в exec_code
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/site-packages/spyder_kernels/customize/spydercustomize.py", строка 615 в _exec_file
Файл "/home/max/anaconda3/envs/attention_states/lib/python3.13/site-packages/spyder_kernels/customize/spydercustomize.py", строка 660 в debugfile
Файл "/tmp/ipykernel_1216748/3781023966.py", строка 1 в <module>
Перезапуск ядра...
Кроме того, другие программы, такие как Visual Studio или Google Chrome, аварийно завершаются без ошибок.
Некоторые выводы из journalctl:
02 дек 15:51:06 max-workstation kernel: nvidia: лицензия модуля 'NVIDIA' портит ядро.
02 дек 15:51:06 max-workstation kernel: Отключение отладки блокировок из-за порчи ядра
02 дек 15:51:06 max-workstation kernel: nvidia: проверка модуля не прошла: подпись и/или необходимый ключ отсутствует - порча ядра
02 дек 15:51:06 max-workstation kernel: nvidia: лицензия модуля портит ядро.
02 дек 15:51:06 max-workstation kernel: nvidia-nvlink: идет инициализация Nvlink Core, основной номер устройства 234
02 дек 15:51:24 max-workstation kernel: [drm:nv_drm_master_set [nvidia_drm]] *ОШИБКА* [nvidia-drm] [GPU ID 0x00000100] Не удалось захватить право на режим
02 дек 15:51:06 max-workstation kernel: Предупреждение ACPI: \_SB.PC00.PEG1.PEGP._DSM: Несоответствие типа аргумента #4 - Найден [Buffer], ACPI требует [Package] (20230628/nsarguments-61)
02 дек 15:51:06 max-workstation kernel: Ошибка BIOS ACPI (ошибка): Не удалось создать именованный объект [\_SB.PC00.PEG1.PEGP._DSM.USRG], AE_ALREADY_EXISTS (20230628/dsfield-184)
02 дек 15:51:06 max-workstation kernel: Ошибка ACPI: AE_ALREADY_EXISTS, Не удалось создать BufferField (20230628/dswload2-477)
02 дек 15:51:30 max-workstation kernel: i2c_designware i2c_designware.0: контроллер превышает время ожидания
02 дек 15:00:56 max-workstation kernel: BUG: Плохое состояние страницы в процессе apport pfn:35cb34
02 дек 15:00:56 max-workstation kernel: page:00000000defb099e refcount:0 mapcount:129 mapping:0000000000000000 index:0x1 pfn:0x35cb34
02 дек 15:00:56 max-workstation kernel: memcg:17ffffc0000000
02 дек 15:00:56 max-workstation kernel: флаги анонимности: 0xdead000000000100(active|node=890|zone=5|lastcpupid=0x140000)
02 дек 15:00:56 max-workstation kernel: тип страницы: 0x80()
02 дек 15:00:56 max-workstation kernel: сырые данные: dead000000000100 dead000000000100 dead000000000122 0000000000000001
02 дек 15:00:56 max-workstation kernel: сырые данные: 0000000000000001 0000000000000000 0000000000000080 0017ffffc0000000
02 дек 15:00:56 max-workstation kernel: страница сброшена из-за: страница все еще заряжена на cgroup
02 дек 15:00:56 max-workstation kernel: Подключенные модули: tls xt_mark xt_cgroup xt_comment rfcomm snd_seq_dummy snd_hrtimer qrtr nvidia_uvm(POE) cmac algif_hash algif_skcipher af_alg>
02 дек 15:00:56 max-workstation kernel: irqbypass snd_intel_sdw_acpi crct10dif_pclmul snd_hda_codec polyval_clmulni libarc4 snd_usb_audio polyval_generic snd_hda_core ghash_clmulni_i>
02 дек 15:00:56 max-workstation kernel: pinctrl_alderlake
02 дек 15:00:56 max-workstation kernel: CPU: 26 PID: 14929 Команда: apport Порчено: P OE 6.8.0-49-generic #49-Ubuntu
02 дек 15:00:56 max-workstation kernel: Название оборудования: ASUS System Product Name/ROG STRIX Z690-E GAMING WIFI, BIOS 4001 10/04/2024
02 дек 15:13:52 max-workstation kernel: conda[27217]: сбой сегментации на 59 ip 000000000056e762 sp 00007ffe27297e60 ошибка 6 в python3.10[41f000+1fb000] вероятно на CPU 4 (core 8, socket 0)
02 дек 15:13:52 max-workstation kernel: Код: 38 49 c7 44 24 48 00 00 00 00 48 85 ff 0f 85 9b 00 00 00 48 85 d2 0f 85 de 00 00 00 4d 85 ff 0f 85 bf 00 00 00 49 8b 4c 24 10 <48> c7 41 >
Попробовал до сих пор:
- Переустановил spyder
- Создал новое окружение conda с переустановкой всех используемых мной пакетов.
- Выполнил
conda clean -a
- Выполнил обновление и улучшение с помощью apt-get
- Запустил memtest, который прошел без ошибок
- Нагрузил ЦП
- Попытался исправить поврежденные пакеты в режиме восстановления, что привело к сбою сегментации.
- Обновил BIOS
- Обновил до Ubuntu 24.04
Есть ли у кого-нибудь предложения, как найти корень этой проблемы? Я мог бы переустановить Ubuntu, но хотел бы понять, что происходит.
Ответ или решение
Устранение ошибки сегментации в Ubuntu 22.04: Полное руководство
Сегментационные ошибки (segmentation faults) — это распространенные проблемы в операционных системах на базе Linux, которые могут возникать по множеству причин. Давайте подробно рассмотрим ваш случай на Ubuntu 22.04, в частности, ошибки во время обновления системы, удалении среды Conda и запуске Python-скриптов.
Проблема
Вы столкнулись с несколькими симптомами, включая:
- Ошибка при обновлении системы:
Segmentation faultsts... 52%
- Сбой утилиты обновления:
update-manager crashed with SIGSEV
- Ошибка при удалении среды Conda.
- Сегментационные ошибки при запуске скриптов в Spyder.
- Система возвращает журнал ошибок от ядра, связанный с драйверами NVIDIA.
На основании предоставленных вами данных, можно предположить несколько возможных причин данной проблемы, включая:
- Неправильная установка или конфликт драйверов (особенно с NVIDIA).
- Поврежденные или несоответствующие библиотеке или пакетам.
- Проблемы с памятью или конфигурацией аппаратного обеспечения.
Шаги диагностики и устранения
1. Проверка состояния оборудования
Поскольку вы уже провели тестирование памяти (memtest) и нагрузочное тестирование процессора, это исключает наиболее очевидные аппаратные проблемы. Однако важно также проверить:
- Состояние жесткого диска (можно использовать
SMART
для диагностики). - Наличие обновлений BIOS (вы отметили, что обновили BIOS).
2. Драйверы NVIDIA
Записи из journalctl
указывают на потенциальные проблемы с драйверами NVIDIA, которые могут вызывать сбои в разных приложениях:
- Попробуйте переустановить драйверы NVIDIA. Вы можете сделать это с помощью следующих команд:
sudo apt-get purge nvidia*
sudo ubuntu-drivers autoinstall
После переустановки рекомендуется перезагрузить систему.
3. Проверка зависимостей и пакетов
Поскольку вы упомянули, что использовали conda
, убедитесь, что используемая вами среда Conda корректно настроена:
- Создайте новую среду conda и установите только необходимые пакеты, что уже делали, но попробуйте еще раз с минимальным набором:
conda create -n new-env python=3.10 (или другую версию)
- Убедитесь, что все используемые пакеты совместимы с установленной версией Python.
4. Контроль системных журналов
Записи, связанные с ACPI и i2c_designware, могут указывать на проблему в аппаратной поддержке. Попробуйте посмотреть:
dmesg | grep ACPI
dmesg | grep i2c
Это может дать больше информации о том, происходит ли что-то необъяснимое на уровне оборудования.
5. Проверка системы на наличие поврежденных пакетов
Запустите апгрейд и проверьте наличие поврежденных пакетов:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get -f install
Также можно временно отключить сторонние PPA (если они имеются) и проверить, сохраняется ли проблема.
6. Логирование ошибок и анализ дампов
Когда возникает ошибка сегментации, это часто приводит к созданию дампов памяти (core dumps). Убедитесь, что у вас включено создание дампов для анализа, это поможет выявить источник проблемы:
ulimit -c unlimited
7. Переустановка Ubuntu
Если указанные выше шаги не приводят к разрешению проблемы, возможно, стоит рассмотреть вариант переустановки системы. Однако, прежде чем переходить к крайним мерам, убедитесь, что вы сделали резервные копии всех данных и конфигураций.
Заключение
Сегментационные ошибки в Ubuntu 22.04 могут быть вызваны целым рядом факторов, и ваше описание ситуации дает нам хорошие зацепки для диагностики. Пошаговый подход к устранению неполадок, начиная от проверки оборудования и заканчивая переустановкой драйверов и пакетов, поможет вам выявить корень проблемы. Надеюсь, эти рекомендации будут полезны, и вы сможете исправить проблему без необходимости переустановки операционной системы. Если потребуется дальнейшая помощь, не стесняйтесь задавать дополнительные вопросы.