[Bug 241954] netgraph fails on concurrent node rename
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Nov 13 18:51:30 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241954
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 at FreeBSD.org
Reporter: freebsd at 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 = "";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.poststop = "";
exec.clean;
mount.devfs;
mount.fdescfs;
mount.procfs;
persist;
vnet = new;
devfs_ruleset = 10; # random, log, null, fd/* and other critical items
# Dynamic wildcard parameter:
# Base the path off the jail name.
path = "/jail/${host.hostname}/root";
exec.consolelog = "/var/log/jail_${host.hostname}_console.log";
################################################################################
# External Jails
################################################################################
ext {
host.hostname = "ext.example.com";
exec.prestart += "jng bridge ext bridge0 bridge1";
exec.poststop += "jng shutdown ext";
vnet.interface = ng0_ext,ng1_ext;
}
################################################################################
# Internal Jails
################################################################################
ns0 {
host.hostname = "ns0.example.com";
exec.prestart += "jng bridge ns0 bridge0 bridge1";
exec.poststop += "jng shutdown ns0";
vnet.interface = ng0_ns0,ng1_ns0;
}
ns1 {
host.hostname = "ns1.example.com";
exec.prestart += "jng bridge ns1 bridge0 bridge1";
exec.poststop += "jng shutdown ns1";
vnet.interface = ng0_ns1,ng1_ns1;
}
wg {
host.hostname = "wg.example.com";
exec.prestart += "jng bridge wg bridge0 bridge1";
exec.poststop += "jng shutdown wg";
vnet.interface = ng0_wg,ng1_wg;
devfs_ruleset = 11; # include tun
}
www {
host.hostname = "www.example.com";
exec.prestart += "jng bridge www bridge0 bridge1";
exec.poststop += "jng shutdown www";
vnet.interface = ng0_www,ng1_www;
sysvshm; # postgresql
}
vault {
host.hostname = "vault.example.com";
exec.prestart += "jng bridge vault bridge0 bridge1";
exec.poststop += "jng shutdown vault";
vnet.interface = 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 at 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
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list