Date: Wed, 13 Nov 2019 18:51:29 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 241954] netgraph fails on concurrent node rename Message-ID: <bug-241954-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D241954 Bug ID: 241954 Summary: netgraph fails on concurrent node rename Product: Base System Version: 12.1-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: freebsd@otoh.org I have a FreeBSD 12.1 host on which I'm using jng to create netgraph nodes = for host interfaces. If I start the jails in series, it works fine. If I start = them in parallel netgraph fails to rename the nodes and those jails fail to initialize. jail.conf: exec.prestart =3D ""; exec.start =3D "/bin/sh /etc/rc"; exec.stop =3D "/bin/sh /etc/rc.shutdown"; exec.poststop =3D ""; exec.clean; mount.devfs; mount.fdescfs; mount.procfs; persist; vnet =3D new; devfs_ruleset =3D 10; # random, log, null, fd/* and other critical items # Dynamic wildcard parameter: # Base the path off the jail name. path =3D "/jail/${host.hostname}/root"; exec.consolelog =3D "/var/log/jail_${host.hostname}_console.log"; ###########################################################################= ##### # External Jails ###########################################################################= ##### ext { host.hostname =3D "ext.example.com"; exec.prestart +=3D "jng bridge ext bridge0 bridge1"; exec.poststop +=3D "jng shutdown ext"; vnet.interface =3D ng0_ext,ng1_ext; } ###########################################################################= ##### # Internal Jails ###########################################################################= ##### ns0 { host.hostname =3D "ns0.example.com"; exec.prestart +=3D "jng bridge ns0 bridge0 bridge1"; exec.poststop +=3D "jng shutdown ns0"; vnet.interface =3D ng0_ns0,ng1_ns0; } ns1 { host.hostname =3D "ns1.example.com"; exec.prestart +=3D "jng bridge ns1 bridge0 bridge1"; exec.poststop +=3D "jng shutdown ns1"; vnet.interface =3D ng0_ns1,ng1_ns1; } wg { host.hostname =3D "wg.example.com"; exec.prestart +=3D "jng bridge wg bridge0 bridge1"; exec.poststop +=3D "jng shutdown wg"; vnet.interface =3D ng0_wg,ng1_wg; devfs_ruleset =3D 11; # include tun } www { host.hostname =3D "www.example.com"; exec.prestart +=3D "jng bridge www bridge0 bridge1"; exec.poststop +=3D "jng shutdown www"; vnet.interface =3D ng0_www,ng1_www; sysvshm; # postgresql } vault { host.hostname =3D "vault.example.com"; exec.prestart +=3D "jng bridge vault bridge0 bridge1"; exec.poststop +=3D "jng shutdown vault"; vnet.interface =3D ng0_vault,ng1_vault; } dmesg: WARNING: attempt to domain_add(netgraph) after domainfinalize() bridge0: promiscuous mode enabled ngeth0: link state changed to UP ngeth0: changing name to 'ng0_www' bridge1: promiscuous mode enabled ngeth1: link state changed to UP ngeth1: changing name to 'ng1_www' ng_ether_ifnet_arrival_event: can't re-name node ng0_www ng_ether_ifnet_arrival_event: can't re-name node ng1_www lo0: link state changed to UP Jail start (clean after boot with jails disabled): [root@ext]# service jail start Starting jails:ngctl: send msg: File exists ngctl: send msg: File exists ngctl: send msg: File exists ngctl: jail: send msgns0: jng bridge ns0 bridge0 bridge1: failed: jail: ngctl: wg: jng bridge wg bridge0 bridge1: failedFile exists send msgjail: : ns1: jng bridge ns1 bridge0 bridge1: failed File exists jail: vault: jng bridge vault bridge0 bridge1: failed jail: numbat: jng bridge numbat bridge0 bridge1: failed ng0_www ng1_www www: created --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-241954-227>