Bug 36911 - Ест 100% cpu и блокирует работу ssh
Summary: Ест 100% cpu и блокирует работу ssh
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: gnome-keyring (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Yuri N. Sedunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 33000
  Show dependency tree
 
Reported: 2019-06-17 14:06 MSK by Anton V. Boyarshinov
Modified: 2022-01-20 18:58 MSK (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton V. Boyarshinov 2019-06-17 14:06:10 MSK
После обновления на p9 (версия в Сизифе та же), gnome-keyring-daemon при запуске ssh клиента начинает потреблять 100% CPU и не отвечает ssh в заявленном им SSH_AUTH_SOCK. strace даёт вот что: 
strace: Process 241333 attached
futex(0x1ca45a8, FUTEX_WAIT_PRIVATE, 2, NULL^Cstrace: Process 241333 detached

То есть один тред занимает CPU, а другой его ждёт.
До убивания gnome-keyring-daemon KILL-ом, использование ssh невозможно.
Comment 1 Yuri N. Sedunov 2019-06-17 15:21:59 MSK
$ ps aux|grep ssh
?
C запущенным gnome-keyring.
Comment 2 Anton V. Boyarshinov 2019-06-17 15:41:45 MSK
root        2203  0.0  0.0  13060  2892 ?        Ss   июн13   0:00 /usr/sbin/sshd -D
avb         3046  0.0  0.0   5796   284 ?        Ss   июн13   0:00 ssh-agent -u
avb         3899  0.0  0.0   5712  1248 ?        S    июн13   0:00 /usr/bin/ssh-agent -D -a /run/user/500/keyring/.ssh
avb       239082  0.0  0.0  10844  4440 pts/5    S+   13:12   0:00 ssh kernelbot
avb       240964  0.0  0.0  10844  4884 pts/6    S+   13:40   0:00 ssh basalt
avb       248088  0.0  0.0  10844  6012 pts/1    S+   15:41   0:00 ssh basalt
avb       248098  0.0  0.0   4400   780 pts/0    S+   15:41   0:00 grep ssh
Comment 3 Yuri N. Sedunov 2019-06-17 16:24:07 MSK
Хм, у тебя тут несколько ssh-сессий, а ты говоришь что пользоваться ssh невозможно.
c запущенным gnome-keyring.
Не настроен ли где запуск ssh-agent?
Comment 4 Anton V. Boyarshinov 2019-06-17 16:46:30 MSK
(В ответ на комментарий №3)
> Хм, у тебя тут несколько ssh-сессий, а ты говоришь что пользоваться ssh
> невозможно.

ну, логично. Я захожу в сеанс, запускаю ssh, ругаюсь, убиваю gnome-keyring-daemon, пользуюсь ssh. Потом для того, чтоб прислать ps aux снова запускаю gnome-keyring-daemon, запускаю ssh, он висит пока я не убиваю gnome-keyring-daemon

> Не настроен ли где запуск ssh-agent?

avb@boyarsh ~ $ cat /etc/X11/profile.d/ssh-agent.sh
#!/bin/sh

[ -n "$SSH_AUTH_SOCK" ] ||
	eval `ssh-agent -u 2>/dev/null`
avb@boyarsh ~ $ rpm -qf /etc/X11/profile.d/ssh-agent.sh
openssh-clients-7.9p1-alt1.x86_64
Comment 5 Yuri N. Sedunov 2019-06-17 16:57:54 MSK
(В ответ на комментарий №4)
> > Не настроен ли где запуск ssh-agent?
> 
> avb@boyarsh ~ $ cat /etc/X11/profile.d/ssh-agent.sh
> #!/bin/sh
> 
> [ -n "$SSH_AUTH_SOCK" ] ||
>     eval `ssh-agent -u 2>/dev/null`
> avb@boyarsh ~ $ rpm -qf /etc/X11/profile.d/ssh-agent.sh
> openssh-clients-7.9p1-alt1.x86_64

Надо попробовать обезвредить этот ssh-agent.sh и отдаться gnome-keyring'у.
Comment 6 Anton V. Boyarshinov 2019-06-17 17:08:21 MSK
> Надо попробовать обезвредить этот ssh-agent.sh и отдаться gnome-keyring'у.

Если его убить, то работает, да. Но это дефолтная конфигурация, однако. Так что неплохо было бы, если бы gnome-keyring-daemon тоже проверял переменную и если она выставлена -- не лез был вторым в ту же прорубь
Comment 7 Yuri N. Sedunov 2019-06-17 17:17:12 MSK
Дефолтные конфигурации имеют свойство устаревать. Да и пользователям GNOME они не мешают,  поскольку GDM ничего не исполняет из /etc/X11/profile.d/.
В общем, enhancement и не уверен, что на gnome-keyring.
Comment 8 Yuri N. Sedunov 2019-06-17 17:21:28 MSK
(В ответ на комментарий №6)
> > Надо попробовать обезвредить этот ssh-agent.sh и отдаться gnome-keyring'у.
> 
> Если его убить, то работает, да. Но это дефолтная конфигурация, однако. Так что
> неплохо было бы, если бы gnome-keyring-daemon тоже проверял переменную и если
> она выставлена -- не лез был вторым в ту же прорубь

Или ssh-agent можно не запускать из /etc/X11/profile.d/ssh-agent.sh, если есть
/etc/xdg/autostart/gnome-keyring-ssh.desktop
Comment 9 Антон Мидюков 2019-06-17 19:45:16 MSK
В чём проблема добавить в оба скрипта проверку уже запущенного другого?(В ответ на комментарий №8)
> (В ответ на комментарий №6)
> > > Надо попробовать обезвредить этот ssh-agent.sh и отдаться gnome-keyring'у.
> > 
> > Если его убить, то работает, да. Но это дефолтная конфигурация, однако. Так что
> > неплохо было бы, если бы gnome-keyring-daemon тоже проверял переменную и если
> > она выставлена -- не лез был вторым в ту же прорубь
> 
> Или ssh-agent можно не запускать из /etc/X11/profile.d/ssh-agent.sh, если есть
> /etc/xdg/autostart/gnome-keyring-ssh.desktop

Пусть ssh-agent.sh проверяет при запуске наличие запущенного gnome-keyring, а gnome-keyring - запущенного ssh-agent. Как такой вариант? Итого нужно будет открыть и исправить два бага на оба пакета, чтобы закрыть этот.

Тут правда будет, кто первый встал, того и тапки, что не радует.

Есть ещё вариант запускать их как сервисы logind/elogind. Там вроде можно конфликт прописать в юнитах.

Бага актуальна для реугулярок/стартеркитов cinnamon и mate, следовательно, и для Workstation.
Comment 10 Anton V. Boyarshinov 2019-06-17 19:51:20 MSK
(В ответ на комментарий №9)
> В чём проблема добавить в оба скрипта проверку уже запущенного другого?(В ответ
> на комментарий №8)
> > (В ответ на комментарий №6)
> > > > Надо попробовать обезвредить этот ssh-agent.sh и отдаться gnome-keyring'у.
> > > 
> > > Если его убить, то работает, да. Но это дефолтная конфигурация, однако. Так что
> > > неплохо было бы, если бы gnome-keyring-daemon тоже проверял переменную и если
> > > она выставлена -- не лез был вторым в ту же прорубь
> > 
> > Или ssh-agent можно не запускать из /etc/X11/profile.d/ssh-agent.sh, если есть
> > /etc/xdg/autostart/gnome-keyring-ssh.desktop
> 
> Пусть ssh-agent.sh проверяет при запуске наличие запущенного gnome-keyring, а
> gnome-keyring - запущенного ssh-agent. Как такой вариант? Итого нужно будет
> открыть и исправить два бага на оба пакета, чтобы закрыть этот.

ssh-agent.sh уже проверяет -- нет ли другого агента, проверяя наличие выставленной переменной.
Comment 11 Anton V. Boyarshinov 2019-06-17 19:53:10 MSK
Возвращаю статус major, потому что в lightdm + mate наблюдается в полный рост, а наши продукты основаны именно на них.
На самом деле это вообще blocker для ALT Workstation
Comment 12 Yuri N. Sedunov 2019-06-17 20:10:15 MSK
С какой стати следует безусловно лишать пользователей возможности хранить парольные фразы ssh-ключей в gnome-keyring?
Comment 13 Anton V. Boyarshinov 2019-06-17 20:14:47 MSK
(В ответ на комментарий №12)
> С какой стати следует безусловно лишать пользователей возможности хранить
> парольные фразы ssh-ключей в gnome-keyring?

Пусть хранят где хотят. Но gnome-keyring-daemon не должен виснуть и блокировать ssh-client. Если ты можешь предложить другой способ исправления gnome-keyring-daemon -- пожалуйста. Но виснуть он не должен.

Не будет виснуть -- будет возможность обсудить -- какой keyring лучше и как дать пользователям выбор.
Comment 14 Yuri N. Sedunov 2019-06-24 09:28:19 MSK
Проверяйте.
#232911 TESTED #1 [test-only] sisyphus srpm=gnome-keyring-3.31.91-alt2.src.rpm srpm=gnome3-3.32.1-alt1.src.rpm
Comment 15 Антон Мидюков 2019-06-24 09:34:55 MSK
(В ответ на комментарий №14)
> Проверяйте.
> #232911 TESTED #1 [test-only] sisyphus srpm=gnome-keyring-3.31.91-alt2.src.rpm
> srpm=gnome3-3.32.1-alt1.src.rpm

Уже проверял на регулярках cinnamon и mate. Проблема решается. Без установленного gnome-keyring-ssh при установке ssh-соединения gnome-keyring не запускает своего ssh-агента.
Comment 16 AEN 2019-06-24 14:22:04 MSK
(In reply to comment #15)
> (В ответ на комментарий №14)
> > Проверяйте.
> > #232911 TESTED #1 [test-only] sisyphus srpm=gnome-keyring-3.31.91-alt2.src.rpm
> > srpm=gnome3-3.32.1-alt1.src.rpm
> 
> Уже проверял на регулярках cinnamon и mate. Проблема решается. Без
> установленного gnome-keyring-ssh при установке ssh-соединения gnome-keyring не
> запускает своего ssh-агента.

Можно собирать и закрывать?
Comment 17 Антон Мидюков 2019-06-24 14:23:40 MSK
(В ответ на комментарий №16)
> (In reply to comment #15)
> > (В ответ на комментарий №14)
> > > Проверяйте.
> > > #232911 TESTED #1 [test-only] sisyphus srpm=gnome-keyring-3.31.91-alt2.src.rpm
> > > srpm=gnome3-3.32.1-alt1.src.rpm
> > 
> > Уже проверял на регулярках cinnamon и mate. Проблема решается. Без
> > установленного gnome-keyring-ssh при установке ssh-соединения gnome-keyring не
> > запускает своего ssh-агента.
> 
> Можно собирать и закрывать?

Думаю, что да.
Comment 18 Антон Мидюков 2022-01-20 18:58:24 MSK
* Sat Jun 22 2019 Yuri N. Sedunov <aris@altlinux.org> 3.31.91-alt2
- moved ssh part to separate subpackage
- fixed busy-loop waiting for the ssh-agent (ALT #36911)
  See:
  https://bugzilla.gnome.org/show_bug.cgi?id=794848
  https://gitlab.gnome.org/GNOME/gnome-keyring/issues/25