Вопрос или проблема
С тех пор как вчера были сделаны единственные изменения: sudo apt dist-upgrade
и sudo snap refresh
, несколько приложений зависают навсегда / перестают отвечать после перезапуска приложения – (Eclipse (через snap), VSCode (через apt/Microsoft), Signal (через snap)). Signal и VSCode висят на пустом экране, Eclipse зависает при выполнении нескольких действий, таких как прокручивание.
Пустой экран VSCode:
Процессы нельзя завершить (kill, kill -9, killall) (killall code
-> pidof code
показывает от 3 до 5 процессов), а именно Eclipse остается на экране, несмотря на отсутствие процесса (pidof eclipse
пусто). Выключение Kubuntu занимает вечность (нужно нажимать кнопку питания).
Переустановка Eclipse или VSCode ничего не дает.
Что я могу сделать, чтобы найти проблему / получить больше информации / всё исправить?
Я проверил журналы ядра. Вот самые интересные сообщения:
... kernel: traps: WatchDogQueue[7496] trap int3 ip:701222d23def sp:7011b7dff5e0 ошибка:0 в libglib-2.0.so.0.8000.5[701222cdb000+a2000]
... kernel: INFO: задача WebKitWebProces:19436 блокирована более чем на 122 секунды.
Ответ или решение
Проблема с зависанием приложений, таких как Eclipse, VSCode и Signal, может быть связана с несколькими факторами, особенно после эффективного обновления системы. Давайте рассмотрим несколько шагов, которые помогут вам выявить причину и решить эту проблему.
1. Проверка графической подсистемы
Поскольку все указанные приложения зависят от графических библиотек, начнем с проверки вашей графической подсистемы:
- Драйвера графической карты: Убедитесь, что вы используете актуальные драйвера графической карты. Если у вас видеокарта Nvidia, проверьте, установлены ли проприетарные драйвера, поскольку они чаще всего более стабильные, чем открытые драйвера Nouveau.
- Проблемы с OpenGL: Некоторые проблемы совместимости могут возникнуть из-за OpenGL или других графических систем. Попробуйте запустить приложения с различными параметрами отображения, например, используя
MESA_GL_VERSION_OVERRIDE=3.3
или другие переменные окружения.
2. Проверка и очистка кэша
Возможно, проблема связана с мусором в кэше или конфигурации:
-
Для Signal и VSCode, попробуйте удалить кэш:
rm -rf ~/.config/Signal rm -rf ~/.config/Code
-
Для Eclipse, зайдите в директорию рабочего пространства и удалите файлы конфигурации, которые могут вызывать проблему.
3. Установка недостающих библиотек
После обновления системы могут быть удалены или повреждены некоторые необходимые библиотеки:
-
Проверьте наличие всех необходимых библиотек для приложений:
sudo apt install --reinstall libglib2.0-0
-
Также возможно, что приложения используют snap, который в свою очередь имеет свои зависимости. Попробуйте удалить и переустановить приложения через snap:
sudo snap remove eclipse sudo snap remove signal sudo snap remove code sudo snap install eclipse sudo snap install signal sudo snap install code --classic
4. Логи и диагностика
Изучите логи системы на наличие ошибок:
-
Проверьте журналы с помощью утилиты
dmesg
и журнала ошибок системы:dmesg | grep -i error journalctl -xe
-
Также стоит просмотреть логи, связанные с графическим сервером или xorg:
cat /var/log/Xorg.0.log | grep '(EE)'
5. Отключение аппаратного ускорения
При использовании GTK/Bluetooth или других библиотек может быть полезным отключить аппаратное ускорение:
-
Для VSCode, создайте или измените файл настроек
settings.json
:"disable-hardware-acceleration": true
-
Для других приложений, проверьте их документацию на наличие аналогичных опций.
6. Изолированное тестирование
Запустите приложения в "безопасном режиме" или с минимальными параметрами, чтобы проверить, возникает ли проблема:
-
Для Eclipse:
eclipse -clean
-
Для других приложений, проверьте их документацию на наличие аналогичных параметров.
7. Статус системы
Проверьте состояние системы и конфигурацию с помощью утилит, которые оценят блокировку задач:
- Установите и используйте
htop
илиglances
для мониторинга активности; - Попробуйте использовать
strace
, чтобы увидеть системные вызовы и определить момент блокировки.
Заключение
Если вышеуказанные шаги не помогли, возможно, вам придется обратиться на форумы или к разработчикам ваших приложений. Убедитесь, что вы упомянули все диагностические данные и изменения, которые могли привести к возникновению проблемы.