Summary: | journald failed to start after recent selinux update | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vladimir D. Seleznev <vseleznv> |
Component: | libselinux | Assignee: | Anton Farygin <rider> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | aen, darktemplar, evg, glebfm, nbr, rider, shaba, vladimir.didenko, vseleznv |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Vladimir D. Seleznev
2016-11-21 18:53:17 MSK
Как воспроизводить ? у меня journal прекрасно работает с новым libselinux. Воспроизвёл на машине с выключенным selinux. У меня на x86_64/systemd/un-def c выключенным SELinux после обновления но без перезапуска демонов проявилось после засыпания/просыпания машины. Проявилось смертью systemd-networkd сначала с SIGABRT, потом с SIGSYS. Позже умер с SIGSYS и systemd-hostnamed. А включение selinux не помогает ? хотя бы без политики. Судя по логам journald запускается, но процесс systemd его прибивает: Nov 22 09:23:18 my.host systemd-journald[253]: Received SIGTERM from PID 1 (systemd). Кто-нибуть знает, зачем он это делает ? 2361 - это journald, запуск из под systemd [pid 2361] statfs("/sys/fs/selinux", 0x7ffca0c32f20) = -1 ENOENT (No such file or directory) [pid 2361] statfs("/selinux", {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=28817674, f_bfree=4310618, f_bavail=2840993, f_files=7331840, f_ffree=6803083, f_fsid={1759202911, 2549185661}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOATIME}) = 0 [pid 2361] +++ killed by SIGSYS +++ Тоже самое запуск без systemd напрямую (/lib/systemd/systemd-journald) 2475 statfs("/sys/fs/selinux", 0x7ffc2b6cb740) = -1 ENOENT (No such file or directory) 2475 statfs("/selinux", {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=28817674, f_bfree=4310265, f_bavail=2840640, f_files=7331840, f_ffree=6802971, f_fsid={1759202911, 2549185661}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOATIME}) = 0 2475 mount("proc", "/proc", "proc", 0, NULL) = -1 EBUSY (Device or resource busy) 2475 open("/proc/filesystems", O_RDONLY) = 3 2475 fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 А можно краткую инструкцию, как включить selinux без политики и ничего не сломать? Тогда смогу вечером попробовать, если ещё нужно будет. Если убрать в systemd-journald.service из фильров системных вызовов @mount то всё начинает работать. Всё дело в этом изменении в апстриме libselinux: commit 9df498884665d79474b79f0f30d1cd67df11bd3e Author: Ben Shelton <ben.shelton@ni.com> Date: Wed Apr 15 15:56:57 2015 -0500 libselinux: Mount procfs before checking /proc/filesystems In the case where the SELinux security module is not loaded in the kernel and it's early enough in the boot process that /proc has not yet been mounted, selinuxfs_exists() will incorrectly return 1, and selinux_init_load_policy() will print a message like this to the console: Mount failed for selinuxfs on /sys/fs/selinux: No such file or directory To fix this, mount the procfs before attempting to open /proc/filesystems, and unmount it when done if it was initially not mounted. This is the same thing that selinux_init_load_policy() does when reading /proc/cmdline. Signed-off-by: Ben Shelton <ben.shelton@ni.com> Сейчас соберу исправление libselinux-1:2.5-alt2 -> sisyphus: * Tue Nov 22 2016 Anton Farygin <rider@altlinux> 1:2.5-alt2 - upstream fixes for /proc mounting (closes: #32778) Да, у меня так работает. |