Kubuntu 24.04 “иногда” зависает при закрытии окон (по, казалось бы, случайным причинам)

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

При закрытии программ у меня периодически происходит сбой Plasmashell. Я бы сказал, что это случается примерно в 0,5% случаев для большинства программ, но около 95% случаев, когда, например, речь идет о KeepassXC, который сворачивается при закрытии и переходит в системный трей. После долгих поисков я думал, что исправил проблему, удалив несколько неиспользуемых и/или сломанных пользовательских тем и виджетов из ~/.local/share/plasma.

Вызывая сбой, закрывая Keepass, я получил следующий вывод от journalctl -f | grep --line-buffered plasmashell:

emil ~ ➜ journalctl -f | grep --line-buffered plasmashell
17 сен 19:58:18 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:18 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT3/present")
17 сен 19:58:18 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT3/present не существует."
17 сен 19:58:19 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:19 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:20 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:20 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:21 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:21 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT0/power_now")
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT0/power_now не существует."
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT1/present")
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT1/present не существует."
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT2/present")
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT2/present не существует."
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT3/present")
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT3/present не существует."
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: QSortFilterProxyModel: Несоответствуя изменениям, о которых сообщается исходной модели
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT0/power_now")
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT0/power_now не существует."
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT1/present")
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT1/present не существует."
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT2/present")
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT2/present не существует."
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: XMLHttpRequest: Использование GET для локального файла небезопасно и будет отключено по умолчанию в будущих версиях Qt. Установите QML_XHR_ALLOW_FILE_READ в 1, если вы хотите продолжить использовать эту функцию.
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: Не удалось создать синхронный XHR для QUrl("file:///sys/class/power_supply/BAT3/present")
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: kf.kio.widgets: ПРИЧИНА: "Файл или папка /sys/class/power_supply/BAT3/present не существует."
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 25 -- exe=/usr/bin/plasmashell
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 17 -- platform=wayland
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 20 -- appname=plasmashell
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 17 -- apppath=/usr/bin
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 10 -- signal=11
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 10 -- pid=22207
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 19 -- appversion=5.27.11
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 19 -- programname=Plasma
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: 31 -- [email protected]
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: KCrash: сбой... crashRecursionCounter = 2
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: KCrash: Название приложения = plasmashell, путь = /usr/bin, pid = 22207
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: KCrash: Аргументы: /usr/bin/plasmashell --no-respawn
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: KCrash: Попытка запустить /usr/lib/x86_64-linux-gnu/libexec/drkonqi
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: QSocketNotifier: Неверный сокет 17 и тип 'Read', отключение...
17 сен 19:58:22 kubuntu-leptop plasmashell[22207]: QSocketNotifier: Неверный сокет 19 и тип 'Read', отключение...
17 сен 19:58:23 kubuntu-leptop plasmashell[22207]: Не удалось запустить Доктора Конки
17 сен 19:58:23 kubuntu-leptop plasmashell[22207]: Повторное поднятие сигнала для обработки дампа памяти.

Затем я запустил coredumpctl, чтобы найти правильный (автоматически сгенерированный) дамп памяти:

emil ~ ➜ coredumpctl
ВРЕМЯ                            PID  UID  GID СИГ    ФАЙЛ ДАМПА     EXE                                РАЗМЕР
[другие]
Пн 2024-09-16 18:56:45 CEST   5595 1000 1000 SIGABRT присутствует      /usr/bin/plasmashell              81.3M
[другие]

А затем использование coredumpctl gdb [PID] выдает следующий вывод: см. gist

Я не думаю, что публикация всего (1,4 ГБ в распакованном виде) дампа памяти безопасна.

Графическое приложение для обработки сбоев также открывается только около 10% времени, и когда это происходит, оно полно [Новый LWP [4 цифры]], как видно внизу команды coredumpctl gdb. Прокрутка вниз в диалоговом окне информации для разработчиков приводит к тому, что обработчик сбоев становится неотзывчивым и аварийно завершается.

У меня сегодня были подобные проблемы. Оказалось, что это вызвано виджетом, который я добавил, под названием Power Monitor, который по какой-то причине заставил KDE функционировать неправильно. У вас есть какой-либо подобный виджет, установленный или в вашем диспетчере задач? Если да, попробуйте удалить его из диспетчера задач и посмотрите, решит ли это проблему. Похоже, что что-то, связанное с доступом к файлу батареи или что-то в этом роде, вызывает странные проблемы. Надеюсь, это поможет или хотя бы даст отправную точку.

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

Проблема, с которой вы столкнулись, связана со сбоем plasmashell при закрытии окон приложений, особенно таких как KeepassXC, когда они сворачиваются в системный трей. На основе предоставленных вами логов и описания, возможные причины и решения этой проблемы могут быть следующими.

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

  1. Конфликт в темах или виджетах: Вы уже упомянули, что удалили несколько неиспользуемых или поврежденных тем и виджетов. Иногда сторонние виджеты, особенно те, которые работают с системной информацией, могут вызвать сбои в plasmashell.

  2. Ошибки доступа к системным файлам: Логи показывают ошибки, связанные с попытками доступа к файлам в /sys/class/power_supply/, которые отсутствуют на вашей системе. Возможно, вы используете виджет, который пытается считывать данные о батарее, и вызывает сбой при отсутствии доступа к требуемым файлам.

  3. Возможные проблемы в версии plasmashell или библиотеках Qt: Версии, с которыми вы работаете, могут содержать ошибки, которые были исправлены в последующих обновлениях. Использование устаревших или экспериментальных компонентов может привести к нестабильной работе окружения.

Рекомендации по устранению проблемы

  1. Удаление подозрительных виджетов: Убедитесь, что никаких нестандартных виджетов (особенно, связанных с мониторингом электроэнергии) нет на панели задач. Попробуйте временно отключить или удалить такие виджеты и проверьте, решит ли это проблему.

  2. Обновление системы: Проверьте наличие обновлений для Kubuntu и установите их. Возможно, обновления содержат исправления для plasmashell или библиотек, от которых он зависит:

    sudo apt update
    sudo apt upgrade
  3. Запуск в безопасном режиме: Попробуйте загрузиться в безопасном режиме или использовать другую сессию (например, без Wayland) для проверки, сохраняется ли проблема. Вы можете также попробовать использовать X11 вместо Wayland, чтобы понять, связано ли это с конкретной сессией.

  4. Анализ кэша и конфигурационных файлов: Удалите или переименуйте файлы конфигурации Plasma, чтобы избавиться от потенциально поврежденных настроек:

    mv ~/.config/plasma* ~/.config/plasma_backup/
  5. Запуск GDB: Попробуйте запустить plasmashell через GDB, чтобы более детально просмотреть стеки вызовов и разобраться с причиной сбоя:

    gdb plasmashell
    (gdb) run
  6. Сообщение об ошибке: Если проблема сохраняется, возможно, вам стоит сообщить о ней разработчикам KDE через баг-репорт. Используйте платформу, такую как Bugzilla или GitLab, для отчетности о сбоях.

Заключение

Проверка на наличие нестандартных виджетов, обновление системы и анализ конфигурации помогут вам в решении проблемы. Если вы выполните все указанные рекомендации и проблема все еще останется нерешенной, тогда краш-репорты и подробные логи, как вы уже сделали, будут полезны для дальнейшего анализа проблемы. Надеюсь, что эти шаги помогут вам стабилизировать работу вашего рабочего окружения.

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

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