maxpelevin
@maxpelevin
Java-разработчик

Артефакты отрисовки Qt и Java приложений после продолжительной работы в Ubuntu 15.10 (и других)?

Краткая предыстория возникновения проблемы:

После обновления на Ubuntu 15.10 при продолжительной работе в IntellijIDEA при открытии любых Qt-приложений вместо нормального окна я наблюдал различные артефакты: какие-то части окна не отрисовывались, где-то надписи наезжали друг на друга, что не позволяло пользоваться этими приложениями. Исправить такое поведение удалось благодаря найденному ответу на форуме archlinux, а именно за счёт прописанной настройки для Qt, а также перехода с openjdk на оракловский.

Вторая история, которая, по всей видимости, связано с первой, заключается в том, что при долгой работе и отладке приложений (Java + Swing), диалоги и окна в IntellijIDEA, а также в отлаживаемых приложениях (написаны на NetBeans RCP) могли становиться прозрачными, недоступными, или же просто прокликиваться. Помогает только перезапуск клиентов. Такая проблема наблюдается и у моих коллег, которые пользуются, например, Fedora + KDE.

Бага очень неприятная, т.к. наши продукты, запускаемые под *nix также время от времени делают диалоги недоступными для кликов и перерисовки. Просмотр багтрекингов различных производителей ни к чему не привёл, хотя я до сих пор надеюсь, что найдётся внятное объяснения появления этого бага.

Есть рабочая гипотеза, почему так происходит, но мне не хватает знаний, для того, чтобы довести её до логического конца. Смысл сводится к тому, что при неправльно настроеном x-сервере и при продолжительной работе одновременно Qt и Java приложений (каждый из которых имеют свои тулкиты), они начинают конфликтовать, что приводит к появлению артефактов.
  • Вопрос задан
  • 652 просмотра
Пригласить эксперта
Ответы на вопрос 1
EXL
@EXL
Энтузиаст
Есть рабочая гипотеза, почему так происходит, но мне не хватает знаний, для того, чтобы довести её до логического конца.

Такое у многих: https://www.linux.org.ru/forum/general/12077621
https://bugs.kde.org/show_bug.cgi?id=350976
https://bugs.launchpad.net/ubuntu/+source/openjdk-... (по ссылке найдёте несколько "решений" проблемы, вроде выставление переменной окружения QT_X11_NO_MITSHM в 1 и др.)

Это проблема в Java, она забивает и не чистит shmem. Погуглите словосочетание "Java Qt shmem". В вашем случае поможет лишь обновление JRE/JDK. GTK+-приложения на так часто лазят в shmem, как Java или Qt и потому проблема редко выявляется на популярных GTK-окружениях. Однако баг всё же имеет место быть.

Заведите багрепорт в багртрекере своего дистрибутива (я так понял, что вы используете Fedora), если он уже не заведён.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы