Bug 2688

Summary: gdm: Чистая инсталляция, новый пользователь — не пускает, похоже пускает и выбрасывает.
Product: Desktop Internal Reporter: Stanislav Fomin <stanislav.fomin>
Component: ---Assignee: Arkady L. Shane <arkady.shane>
Status: RESOLVED FIXED QA Contact: Anton Peyter <anton.peyter>
Severity: major    
Priority: Normal CC: arkady.shane, denis.silakov
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard: [GNOME 1524]
Platform: --- ROSA Vulnerability identifier:
RPM Package: ISO-related:
Bad POT generating: Upstream:

Description Stanislav Fomin 2013-09-17 00:19:37 MSK
Дикое количество жалоб на gdm в устном общении, а зафиксированных багов совсем нет.
Так что фиксирую — 1524 образ, новый пользователь (заведенный с адовым трудом, см. Bug 2687), и нифига — нельзя залогинится, причем похоже сначала пустила и выбросила, потом просто писала про authentification problem.
Comment 1 Stanislav Fomin 2013-10-22 02:33:38 MSK
После исследования с Аркадием, выяснено, что все эти проблемы вызываются скриптами из  /etc/bash_completion.d/ ( /etc/bash_completion.d/systemd, но и не только).

В какой-то момент, при запуске сессии из gdm через bash и при выполнении этих скриптов, у кого-то едете крыша, эти скрипты падают с ошибками парсинга и все идет нафиг.

По уму, это было бы интересно исследовать.

Но по большому счету, запускать из gdm через bash (и получать риски упасть из-за сломанных скриптов автокомплишна), это какой-то бред.

Предлагаю просто прибить гвоздями запуск сессии через /bin/sh без всяких комплишнов.

Аркадий, коллеги?

Вешаю флаг, чтобы не утерять внимание.
Comment 2 Denis Silakov 2013-11-07 17:07:56 MSK
Корень зла в том, что /etc/X11/gdm/Xsesison начинается с #!/bin/sh, а "scripts starting with #!/bin/sh tell BASH to run in POSIX conformance mode".

В то же время /etc/X11/gdm/Xsesison делает такую вещь как ". /etc/profile"

Внутри /etc/profile в свою очередь загружаются все файлы из /etc/profile.d. А внутри этого каталога есть, например, 20bash-completion.sh, который, видимо, сразу считывает все сови completion-ы. При этом в completion'ах могут быть "bash-измы" (что мы и наблюдаем в случае с systemd), а поскольку Xsession изначально запустил Bash в POSIX-compatible mode, то на эти башизмы шелл ругается и падает.

Пути решения:
1) Простой и быстры - поменять /bin/sh на /bin/bash в /etc/X11/gdm/Xsesison
2) Выкинуть из /etc/X11/gdm/Xsesison загрузку /etc/profile и грузить только те файлы, которые реально необюходимы - например, /etc/X11/Xsession грузит только /etc/profile.d/10lang.sh.

Imho, единственный плюч второго подхода - что он немного ускорит заугрзку (скорее всего на мизерное число миллисекунд). Зато может что-нибудь неожиданно овалиться, если ме перестанем считывать /etc/profile.

Так что я за простую замену /bin/sh на /bin/bash в /etc/X11/gdm/Xsesison.
Comment 3 Arkady L. Shane 2013-11-07 17:57:37 MSK
Исправлено в сборках gdm 3.8.1.1-11

https://abf.rosalinux.ru/build_lists/1381126
https://abf.rosalinux.ru/build_lists/1381127
Comment 4 Arkady L. Shane 2013-11-07 20:46:43 MSK
Так же можно это потестировать на образе 

https://abf.rosalinux.ru/platforms/rosa2012.1/products/32/product_build_lists/1867
Comment 5 Arkady L. Shane 2013-11-09 11:14:51 MSK
Вот тут (http://bugs.rosalinux.ru/show_bug.cgi?id=3099) говорят, что что-то что-то(!) не исправляет. Давайте уже бахнем и добьём, а то испорченный телефон получается.
Comment 6 Stanislav Fomin 2013-11-25 12:31:29 MSK
Вроде же доисследовали и добили, или есть еще какие-то кейсы, кроме bash-ошибок при sh-интерпретации?
Comment 7 Arkady L. Shane 2013-11-25 12:56:52 MSK
Его надо пропустить через QA.
Comment 8 Arkady L. Shane 2013-12-05 13:32:24 MSK
Апдейт в репозитории