-
Notifications
You must be signed in to change notification settings - Fork 85
IPv6 static address creation fails sometimes #1592
Copy link
Copy link
Open
Labels
Sled AgentRelated to the Per-Sled Configuration and ManagementRelated to the Per-Sled Configuration and Managementbootstrap servicesFor those occasions where you want the rack to turn onFor those occasions where you want the rack to turn onbugSomething that isn't working.Something that isn't working.networkingRelated to the networking.Related to the networking.
Metadata
Metadata
Assignees
Labels
Sled AgentRelated to the Per-Sled Configuration and ManagementRelated to the Per-Sled Configuration and Managementbootstrap servicesFor those occasions where you want the rack to turn onFor those occasions where you want the rack to turn onbugSomething that isn't working.Something that isn't working.networkingRelated to the networking.Related to the networking.
Type
Fields
Give feedbackNo fields configured for issues without a type.
During multi-sled deployment testing with falcon, the static unique local
underlay0/bootstrap6address fails to properly initialize and we end up with the following (note the question mark):The following error message gets written to the sled-agent svc log:
The creation of the static IPv6 address must occur after the creation of the link-local address on the same interface (underlay0 in this case). After some testing, and based on prior discoveries, @rcgoodfellow realized that there appears to be a race condition. The call to
ipadmto create the link-local address is not exactly synchronous, and so it returns before the kernel is done with initialization. When the call to create thestaticaddress occurs too soon after the creation of the link-local, we get the failure above.This theory was further verified by inserting a 10 second sleep in the call to
zone::ensure_has_global_zone_v6_addressbetween the call to create the link-local address and the static address. With that sleep inserted, the static address is created successfully on theunderlay0/bootstrap6network.The ideal fix for this is to make the call to
ipadmsynchronous inside illumos. As a workaround though, we can ensure that we see that the link-local address has been successfully created before we try to create theunderlay0address.