После одного из обновлений OpenSuse Tumbleweed наткнулся я на этот крайне неприятный косяк... практически ни одно приложение не удавалось мне запустить в KDE, кроме того, система необычно долго выполняла reboot и shutdown.
Попытка анализа принесла следующие, весьма странные, результаты:
aleksej@linux-ltgs:~> LC_ALL=C gimp
Skipping duplicate plug-in: '/usr/lib64/gimp/2.0/plug-ins/gmic_gimp'
Maximum number of clients reachedxcb_connection_has_error() returned true
Maximum number of clients reached
(file-jpeg:2837): Gtk-WARNING **: cannot open display: :0.0
^C/usr/lib64/gimp/2.0/plug-ins/script-fu terminated: Interrupt
gimp: terminated: Interrupt
aleksej@linux-ltgs:~> xlsclients | wc -l
Maximum number of clients reachedxlsclients: unable to open display ":0"
0
aleksej@linux-ltgs:~> xlsclients
Maximum number of clients reachedxlsclients: unable to open display ":0"
Нечто похожее происходило и с запуском любых иных приложений, а top при этом изобиловал странными процессами-дублями:
[0;10m 1984 aleksej 20 0 449956 356 12 D 0,316 0,015 0:00.42 xembedsniproxy
[0;10m 2079 aleksej 20 0 449956 2700 2244 D 0,316 0,117 0:00.41 xembedsniproxy
[0;10m 2155 aleksej 20 0 449956 428 0 D 0,316 0,019 0:00.39 xembedsniproxy
[0;10m 2173 aleksej 20 0 449956 1560 1072 D 0,316 0,068 0:00.38 xembedsniproxy
[0;10m 2325 aleksej 20 0 449956 3420 2880 D 0,316 0,148 0:00.35 xembedsniproxy
[0;10m 2373 aleksej 20 0 449956 1536 1124 D 0,316 0,067 0:00.34 xembedsniproxy
[0;10m 2435 aleksej 20 0 449956 1480 1116 D 0,316 0,064 0:00.34 xembedsniproxy
Не раз отмечал отменное дружелюбие и высочайший профессионализм модераторов и участников англоязычного форума поддержки OpenSuse; но и там несколько дней мне не могли ответить, в чем же причина столь странного казуса... было очевидно, что трабла имеет место быть именно в KDE (переключившись в IceWM, например, я начисто лишался проблемы).
Помощь пришла, как нередко бывало и ранее, от wolfi323, Global Moderator форума OpenSuse; попутно рассказавшего весьма интересные вещи о пресловутом xembedsniproxy.
Выяснилось, что xembedsniproxy суть KDE-сервис, преобразующий старый стиль XEmbed system tray icons - в новые стили SNI, адаптируя к Plasma5. В силу некоей невысненной (осталось за кадром) причины, пару месяцев назад уже пофиксеная трабла до сих пор так и осталась висеть в официальных репозиториях Tumbleweed (возможно, и в Leap тоже); последствием же было то, что при перезапуске системы процесс, не проверяя самого себя, запускался второй раз, затем третий, etc, получая в итоге возможность без остатка заполнить все ресурсы системы (особенно, если в системе присутствовали NVIDIA драйвера, но и без них тоже). In two words:
That said, for some reason Tumbleweed still contains a very old version that has two bugs in particular:
- it doesn't disable session management, so the previously running instance gets restarted on login in addition to a new, auto-started, one
- it doesn't check whether it (or another old-style system tray implementation) is already running, and starts anyway, so you can get thousands of processes running over time
Решение, таким образом, крайне несложно: Configure Desktop->Startup and Shutdown->Session Management и отмечаем чекбокс "Начинать с пустого сеанса", там же указываем, что xembedsniproxy запускать не нужно. И/или же достаем из Factory исправленную версию пакета, на момент написания статьи вот так:
sudo rpm -U http://download.opensuse.org/repositories/KDE:/Frameworks5/openSUSE_Factory/x86_64/xembed-sni-proxy-0.0.1git~20151104~ded1538-10.1.x86_64.rpm
Это все.