[devel] Не переключается в графический режим

Leonid Krivoshein klark.devel на gmail.com
Пн Ноя 5 23:57:20 MSK 2018


05.11.2018 21:54, Dmitry V. Levin пишет:
> On Mon, Nov 05, 2018 at 08:25:26PM +0300, Andrey Savchenko wrote:
> [...]
>> Реальная проблема в том, что на обсуждаемом этапе загрузки random
>> ещё не нужен, но используется. Очередная глупость от systemd.
> $ git grep -Fnw initialize_libgcrypt
> src/basic/gcrypt-util.c:9:void initialize_libgcrypt(bool secmem) {
> src/basic/gcrypt-util.c:30:        initialize_libgcrypt(false);
> src/basic/gcrypt-util.h:14:void initialize_libgcrypt(bool secmem);
> src/import/pull-job.c:324:                initialize_libgcrypt(false);
> src/journal/fsprg.c:253:        initialize_libgcrypt(false);
> src/journal/fsprg.c:289:        initialize_libgcrypt(false);
> src/journal/fsprg.c:308:        initialize_libgcrypt(false);
> src/journal/fsprg.c:335:        initialize_libgcrypt(false);
> src/journal/fsprg.c:374:        initialize_libgcrypt(false);
> src/journal/journal-authenticate.c:417:        initialize_libgcrypt(true);
> src/resolve/resolved-dns-dnssec.c:852:        initialize_libgcrypt(false);
> src/resolve/resolved-dns-dnssec.c:1171:        initialize_libgcrypt(false);
> src/resolve/resolved-dns-dnssec.c:1284:        initialize_libgcrypt(false);
>
> Который из них залипает на стадии ранней загрузки?
>

Извиняюсь, если кого ввёл в заблуждение: там говорилось о разработчиках 
в красной шляпе и они у себя там чего-то наотлаживали, при этом была 
оговорка, что ничего похожего в нашем гите я не нашёл. Даже предлагал 
решать проблему без оглядки на RedHat. Тем не менее, на моей машине:

# systemd --version
systemd 237
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP 
+LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS 
+KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid

# strings /lib/systemd/systemd | grep /dev/random
/dev/random
/dev/random

То есть, теоретически, "залипать" может "САМ"! :) Но у меня равно как и 
у большинства ничего не залипает. IMHO: systemd может не быть 
непосредственным виновником, но его асинхронность в ряде конфигураций 
может привести к тому, что "залипнет". Если бы факт наполненности пула 
можно было бы сделать зависимостью, но увы, это величина не постоянна.

Видимо этой проблеме уже присвоена CVE: 
https://access.redhat.com/security/cve/cve-2018-1108 , её пытаются 
решить с последними ядрами:

4.16: https://bugzilla.redhat.com/show_bug.cgi?id=1572944
4.17: https://bugzilla.redhat.com/show_bug.cgi?id=1572916
4.18: https://bugzilla.redhat.com/show_bug.cgi?id=1639840

4.19: 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3243a89dcbd8f5810b72ee0903d349bd000c4c9d 
- good news, "Здравствуй, доверие"! :)

Но первый вопрос -- как это всё касается нас и касается ли вообще? Есть 
такой прецедент:

https://lists.altlinux.org/pipermail/sisyphus/2018-November/367280.html

Логи пока доступны. Едва ли по ним будет ясна проблема. Но из них ясно, 
что НАШ systemd использует /dev/urandom на стадии инициализации журнала. 
Да, ещё не инициализированный, но на этом он точно не залипает. Если там 
что и может залипать, то скорее NetworkManager или то, что зависит от 
сети и без чего почему-то не стартуют иксы. Возможно, стоит попросить 
отключить пока haveged и показать systemd-analaze critical-chain? Есть 
вообще какие-то способы (от initramfs до финальной загрузки) поймать 
всех, кто читает из /dev/random?


-- 
Best regards,
Leonid Krivoshein.



Подробная информация о списке рассылки Devel