Summary: | udev: тупит при загрузке (init == propagator) | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Alexey Sheplyakov <asheplyakov> | ||||
Component: | propagator | Assignee: | Anton Farygin <rider> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P5 | CC: | antohami, darktemplar, iv, jqt4, mike, rider, sem, sin, voropaevdmtr, zerg | ||||
Version: | unstable | ||||||
Hardware: | aarch64 | ||||||
OS: | Linux | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 40766 | ||||||
Attachments: |
|
Description
Alexey Sheplyakov
2021-08-09 17:10:50 MSK
Похоже это propagator виноват Хорошо воспроизводится и в p10/сизифе. Виснет *наверное* здесь: #0 0x0000ffff823e8740 in __libc_read (fd=12, buf=0xffff81dea038, nbytes=nbytes@entry=262144) at ../sysdeps/unix/sysv/linux/read.c:26 #1 0x0000ffff82451b64 in read (__nbytes=262144, __buf=<optimized out>, __fd=<optimized out>) at /usr/include/bits/unistd.h:46 #2 read_buffer (len=262144, real_off=1831862272, pr=0xaaab03436e10) at libblkid/src/probe.c:564 #3 blkid_probe_get_buffer (pr=pr@entry=0xaaab03436e10, off=off@entry=1831862272, len=len@entry=262144) at libblkid/src/probe.c:678 #4 0x0000ffff82465b60 in probe_zfs (pr=0xaaab03436e10, mag=<optimized out>) at libblkid/src/superblocks/zfs.c:287 #5 0x0000ffff824623cc in superblocks_probe (pr=pr@entry=0xaaab03436e10, chn=chn@entry=0xaaab03436e70) at libblkid/src/superblocks/superblocks.c:412 #6 0x0000ffff824629e4 in superblocks_safeprobe (pr=0xaaab03436e10, chn=0xaaab03436e70) at libblkid/src/superblocks/superblocks.c:474 #7 0x0000ffff82454020 in blkid_do_safeprobe (pr=pr@entry=0xaaab03436e10) at libblkid/src/probe.c:1389 #8 0x0000aaaae6f04c7c in probe_superblocks (pr=0xaaab03436e10) at ../src/udev/udev-builtin-blkid.c:234 #9 builtin_blkid (dev=0xaaab03461df0, argc=<optimized out>, argv=<optimized out>, test=false) at ../src/udev/udev-builtin-blkid.c:320 #10 0x0000aaaae6ef3bb0 in udev_builtin_run (dev=dev@entry=0xaaab03461df0, cmd=cmd@entry=UDEV_BUILTIN_BLKID, command=command@entry=0xffffd2d31ba8 "blkid", test=test@entry=false) at ../src/udev/udev-builtin.c:127 #11 0x0000aaaae6ef5ae8 in udev_rule_apply_token_to_event (rules=rules@entry=0xaaab0342ac50, dev=0xaaab03461df0, event=event@entry=0xaaab03449ad0, timeout_usec=timeout_usec@entry=600000000, timeout_signal=timeout_signal@entry=9, properties_list=properties_list@entry=0xaaab034205a8) at ../src/udev/udev-rules.c:1832 #12 0x0000aaaae6ef8930 in udev_rule_apply_line_to_event (next_line=<synthetic pointer>, properties_list=0xaaab034205a8, timeout_signal=9, timeout_usec=600000000, event=0xaaab03449ad0, rules=0xaaab0342ac50) at ../src/udev/udev-rules.c:2328 #13 udev_rules_apply_to_event (rules=0xaaab0342ac50, event=0xaaab03449ad0, timeout_usec=600000000, timeout_signal=9, properties_list=0xaaab034205a8) at ../src/udev/udev-rules.c:2356 #14 0x0000aaaae6eec73c in udev_event_execute_rules (event=0xaaab03449ad0, inotify_fd=<optimized out>, timeout_usec=600000000, timeout_signal=9, properties_list=0xaaab034205a8, rules=0xaaab0342ac50) at ../src/udev/udev-event.c:1032 #15 0x0000aaaae6ee64a0 in worker_process_device (dev=0xaaab03461df0, manager=0xaaab0341fc50) at ../src/udev/udevd.c:489 #16 worker_device_monitor_handler (monitor=monitor@entry=0xaaab03441d10, dev=dev@entry=0xaaab03461df0, userdata=userdata@entry=0xaaab0341fc50) at ../src/udev/udevd.c:520 #17 0x0000aaaae6ee7e50 in worker_main (first_device=0xaaab03461df0, monitor=<optimized out>, _manager=0xaaab0341fc50) at ../src/udev/udevd.c:585 #18 worker_spawn (event=0xaaab03439fe0, manager=0xaaab0341fc50) at ../src/udev/udevd.c:623 #19 event_run (event=0xaaab03439fe0, manager=0xaaab0341fc50) at ../src/udev/udevd.c:683 #20 event_queue_start (manager=manager@entry=0xaaab0341fc50) at ../src/udev/udevd.c:962 #21 0x0000aaaae6ee85c4 in on_uevent (monitor=<optimized out>, dev=0xaaab03461df0, userdata=0xaaab0341fc50) at ../src/udev/udevd.c:1061 #22 0x0000aaaae6f1f89c in device_monitor_event_handler (s=<optimized out>, fd=<optimized out>, revents=<optimized out>, userdata=0xaaab0341fdb0) at ../src/libsystemd/sd-device/device-monitor.c:238 #23 0x0000aaaae6f37690 in source_dispatch (s=0xaaab03421bc0) at ../src/libsystemd/sd-event/sd-event.c:3504 #24 0x0000aaaae6f3821c in sd_event_dispatch (e=0xaaab0341ff20) at ../src/libsystemd/sd-event/sd-event.c:4078 #25 sd_event_run (timeout=18446744073709551615, e=<optimized out>) at ../src/libsystemd/sd-event/sd-event.c:4139 #26 sd_event_loop (e=0xaaab0341ff20) at ../src/libsystemd/sd-event/sd-event.c:4160 #27 0x0000aaaae6ed883c in main_loop (manager=0xaaab0341fc50) at ../src/udev/udevd.c:1823 #28 run_udevd (argv=<optimized out>, argc=<optimized out>) at ../src/udev/udevd.c:1935 #29 run (argv=<optimized out>, argc=<optimized out>) at ../src/udev/udevadm.c:116 #30 main (argc=<optimized out>, argv=<optimized out>) at ../src/udev/udevadm.c:133 "Наверное" -- потому, что в initrd gdb/gdbserver далеко не всегда работает. Пока что удалось прицепиться к зависшему udevd только один раз, и backtrace вот такой. #282445 TESTED #1 [test-only] sisyphus propagator.git=20210811-alt1 Предлагаю пересобрать и потестировать на этой сборке propagator некоторые starterkits для x86_64 и aarch64 - mate, gnome, rescue. (In reply to Evgeny Sinelnikov from comment #4) > Предлагаю пересобрать и потестировать на этой сборке propagator некоторые > starterkits для x86_64 и aarch64 - mate, gnome, rescue. Хорошо. Соберу. (In reply to Alexey Sheplyakov from comment #3) > #282445 TESTED #1 [test-only] sisyphus propagator.git=20210811-alt1 Не доступно. Я так понимаю, актуальное: [#282489] TESTED propagator.git=20210811-alt1 ? (In reply to Антон Мидюков from comment #6) > (In reply to Alexey Sheplyakov from comment #3) > > #282445 TESTED #1 [test-only] sisyphus propagator.git=20210811-alt1 > > Не доступно. Я так понимаю, актуальное: > [#282489] TESTED propagator.git=20210811-alt1 > > ? Собрал с этим заданием в: http://nightly.altlinux.org/p10/beta/ http://nightly.altlinux.org/p10-aarch64/beta/ (In reply to Антон Мидюков from comment #7) > (In reply to Антон Мидюков from comment #6) > > (In reply to Alexey Sheplyakov from comment #3) > > > #282445 TESTED #1 [test-only] sisyphus propagator.git=20210811-alt1 > > > > Не доступно. Я так понимаю, актуальное: > > [#282489] TESTED propagator.git=20210811-alt1 > > Тоже подойдёт (кроме исправления $subj там ещё 1) улучшение загрузки по http, и 2) загрузка без ramdisk_size). > Собрал с этим заданием в: > http://nightly.altlinux.org/p10/beta/ > http://nightly.altlinux.org/p10-aarch64/beta/ Спасибо. Проверили локальную загрузку с alt-p10-mate-20210812-x86_64.iso. Упорно делает вид, что работает. Правда, automatic=cdrom всё равно монтирует stage2 с носителя (даже если НЕ указан параметр lowmem). Но это уже тема другого для другого бага. Проверили загрузку с alt-p10-mate-20210812-aarch64.iso на плате TF307 (с процессором BE-M1000). Загружали локально с ISO и по сети через HTTP. Загружается. Но пользоваться этим невозможно. Открываем терминал, нажимаем Ctrl-L - и всё, сеанс окончен. Running Xsession[2363] /usr/bin/mate-session Agent pid 2404 gnome-keyring-daemon: no process capabilities, insecure memory might get used ** Message: 16:18:34.069: couldn't access control socket: /run/user/500/keyring/control: No such file or directory mate-session[2363]: WARNING: Unable to find provider '' of required component 'dock' SSH_AUTH_SOCK=/run/user/500/keyring/ssh Window manager warning: Log level 128: unsetenv() is not thread-safe and should not be used after threads are created gnome-keyring-daemon: no process capabilities, insecure memory might get used SSH_AUTH_SOCK=/run/user/500/keyring/ssh Looking in '/etc/xdg/parcellite/parcelliterc' Looking in '/etc/xdg/parcellite/parcelliterc' gnome-keyring-daemon: no process capabilities, insecure memory might get used SSH_AUTH_SOCK=/run/user/500/keyring/ssh (caja:2493): Gtk-WARNING **: 16:18:35.289: Failed to register client: GDBus.Error:org.gnome.SessionManager.AlreadyRegistered: Unable to register client Flag 0x0001, status 0, EXIT 1 STAT 0 Initializing caja-image-converter extension Initializing caja-open-terminal extension Xorg завершается штатно. (In reply to Alexey Sheplyakov from comment #9) > Проверили загрузку с alt-p10-mate-20210812-aarch64.iso на плате TF307 (с > процессором BE-M1000). > > Загружали локально с ISO и по сети через HTTP. Загружается. Но пользоваться > этим невозможно. Открываем терминал, нажимаем Ctrl-L - и всё, сеанс окончен. > > Running Xsession[2363] /usr/bin/mate-session > Agent pid 2404 > gnome-keyring-daemon: no process capabilities, insecure memory might get used > ** Message: 16:18:34.069: couldn't access control socket: > /run/user/500/keyring/control: No such file or directory > mate-session[2363]: WARNING: Unable to find provider '' of required > component 'dock' > SSH_AUTH_SOCK=/run/user/500/keyring/ssh > Window manager warning: Log level 128: unsetenv() is not thread-safe and > should not be used after threads are created > gnome-keyring-daemon: no process capabilities, insecure memory might get used > SSH_AUTH_SOCK=/run/user/500/keyring/ssh > Looking in '/etc/xdg/parcellite/parcelliterc' > Looking in '/etc/xdg/parcellite/parcelliterc' > gnome-keyring-daemon: no process capabilities, insecure memory might get used > SSH_AUTH_SOCK=/run/user/500/keyring/ssh > > (caja:2493): Gtk-WARNING **: 16:18:35.289: Failed to register client: > GDBus.Error:org.gnome.SessionManager.AlreadyRegistered: Unable to register > client > Flag 0x0001, status 0, EXIT 1 STAT 0 > Initializing caja-image-converter extension > Initializing caja-open-terminal extension > > Xorg завершается штатно. На Raspberry Pi 4 на этом же образе эта проблема не воспроизводится. По ctr+L очищается экран терминала. Сложный графический эффект для Байкала? Ну, такая проблема бывает с этим gnome-keyring-daemon: - https://forums.opensuse.org/showthread.php/529753-How-to-fix-quot-access-control-socket-keyring-control-quot-error - https://forums.opensuse.org/showthread.php/529517-XDM-and-gnome-keyring Это может быть: "GNOME compatibility is enabled" / "gnome-keyring-daemon: insufficient process capabilities, insecure memory might get used": they might point to a misconfiguration": - https://forums.opensuse.org/showthread.php/541216-Slow-starting-at-boot/page2 Что не так на байклале с этим самым capability: - https://unix.stackexchange.com/questions/112030/gnome-keyring-daemon-insufficient-process-capabilities-unsecure-memory-might-g What happens is that the gkd process does not have the ability to perform a CAP_IPC_LOCK to lock memory. If your filesystem supports capabilities, you can give the executable this capability with this terminal command: sudo setcap cap_ipc_lock=+ep `which gnome-keyring-daemon` (In reply to Антон Мидюков from comment #10) > На Raspberry Pi 4 на этом же образе эта проблема не воспроизводится. На raspberry pi 4 этот образ загружается с efifb. Так что сравнение такое себе. > По ctr+L очищается экран терминала. Сложный графический эффект для Байкала? Сложный графический эффект для mate. # systemctl stop lightdm # rmmod panfrost # systemctl start lightdm И вот теперь, если запустить терминал и нажать Ctrl-L - сеанс завершается. Mate зачем-то позарез нужен аппаратный GL (ES). На llvmpipe mate категорически не согласен. Но как-то он ухитряется работать с efifb/fbdevhw. А аппаратный GL ES с этим образом не доступен из-за странного/старого ядра. Странность в том, что 1) присутствует полу-закрытый драйвер GPU mali_kbase 2) Для загрузки драйвера panfrost требуется дополнительный параметр. В результате первым загружается модуль mali_kbase, для которого в userspace нет ответной части, и аппаратный GL ES недоступен. Просто так выгрузить mali_kbase и вместо него загрузить panfrost не выходит - mali_kbase оставляет GPU в полу-зависшем состоянии, так что помогает только перезагрузка (c параметром modprobe.blacklist=mali_kbase). Created attachment 9586 [details]
setup-mate-nocomposite.spec
Возможно, пригодится:
[org.mate.Marco.general]
compositing-manager = false
(In reply to Michael Shigorin from comment #13) > Created attachment 9586 [details] > setup-mate-nocomposite.spec > > Возможно, пригодится: > > [org.mate.Marco.general] > compositing-manager = false или пакет mate-reduced-resource тогда уж. (In reply to Michael Shigorin from comment #13) > Created attachment 9586 [details] > setup-mate-nocomposite.spec > > Возможно, пригодится: > > [org.mate.Marco.general] > compositing-manager = false Спасибо, но это не совсем то, что нужно. Подпирать костылями для каждой платы (да ещё и в зависимости от набора загруженных модулей) - плохо масштабируется. (In reply to Антон Мидюков from comment #7) > (In reply to Антон Мидюков from comment #6) > > (In reply to Alexey Sheplyakov from comment #3) > > > #282445 TESTED #1 [test-only] sisyphus propagator.git=20210811-alt1 > > > > Не доступно. Я так понимаю, актуальное: > > [#282489] TESTED propagator.git=20210811-alt1 > > > > ? > > Собрал с этим заданием в: > http://nightly.altlinux.org/p10/beta/ Проверил загрузку по сети на x86_64 машине (NUC7i3BNB). mate и gnome 3 загружаются (и по http, и по cifs), и упорно делают вид, что работают. > http://nightly.altlinux.org/p10-aarch64/beta/ Предлагаю сделать уже не тестовую сборку и, после падения в EPERM, дожидаться одобрения. (In reply to Evgeny Sinelnikov from comment #17) > Предлагаю сделать уже не тестовую сборку и, после падения в EPERM, > дожидаться одобрения. #282489 EPERM #2 sisyphus propagator.git=20210811-alt1 @zerg тут неплохо было бы сделать review изменений. спасибо. > бы сделать review изменений 2 darktemplar: посмотри, пожалуйста, http://git.altlinux.org/tasks/282489/gears/100/git (Ответ для Anton Farygin на комментарий #19) > @zerg тут неплохо было бы сделать review изменений. спасибо. Создал задачу во внутренней кухне. propagator-20210823-alt1 -> sisyphus: Mon Aug 23 2021 Alexey Sheplyakov <asheplyakov@altlinux> 20210823-alt1 - Avoid deadlock between udev probing stage2 and stage1 mounting it (closes: #40687) |