Messages in this thread | | | Date | Wed, 19 Oct 2022 14:31:18 +0200 | From | Petr Vorel <> | Subject | Re: v6.1-rc1: Regression in notification of sethostname changes |
| |
> Hi Torsten,
> > Hello Petr,
> > your commit
> > commit bfca3dd3d0680fc2fc7f659a152234afbac26e4d > > Author: Petr Vorel <pvorel@suse.cz> > > Date: Thu Sep 1 21:44:03 2022 +0200
> > kernel/utsname_sysctl.c: print kernel arch
> > Print the machine hardware name (UTS_MACHINE) in /proc/sys/kernel/arch.
> > This helps people who debug kernel with initramfs with minimal environment > > (i.e. without coreutils or even busybox) or allow to open sysfs file > > instead of run 'uname -m' in high level languages.
> > broke the notification mechanism between the sethostname syscall and the pollers of /proc/sys/kernel/hostname.
> > The table uts_kern_table is addressed within uts_proc_notify by the enum value, however no new enum value was added in "enum uts_proc".
> > I noticed the problem when journald-systemd failed to detect hostname changes made with the sethostname syscall (as used by the hostname tool). > > When setting the hostname through /proc/sys/kernel/hostname the poll notification was working.
> Thanks a lot for your report, working on a fix! > Andrew, Greg, sorry for a regression.
Hi Torsten,
could you please post exact steps to reproduce the problem. Although the required fix to add new enum into enum uts_proc is trivial, I was not able to reproduce the problem with 6.1.0-rc1 (actually 6.1.0-rc1-4.g1d716d8-default which contains few extra patches).
# hostname; hostnamectl hostname; cat /proc/sys/kernel/hostname opensuse-tumbleweed.20221001 opensuse-tumbleweed.20221001 opensuse-tumbleweed.20221001
# hostnamectl set-hostname foo; echo $? 0 # hostname; hostnamectl hostname; cat /proc/sys/kernel/hostname foo foo foo
# hostname bar; echo $? 0 # hostname; hostnamectl hostname; cat /proc/sys/kernel/hostname bar bar bar
# echo "baz" > /proc/sys/kernel/hostname # hostname; hostnamectl hostname; cat /proc/sys/kernel/hostname baz baz baz
# hostnamectl set-hostname foo; reboot After reboot it's 'foo'. What am I missing?
BTW I originally tested the feature only on dracut initramfs (with rapido [1]), which obviously bypass systemd. For a fix I'm creating rpm package (binrpm-pkg).
Kind regards, Petr
[1] https://github.com/rapido-linux/rapido
> Kind regards, > Petr
> > Torsten
| |