vlan/track interface generates error "Can't assign requested address" during boot
I have LAN interface that is a vlan and is configured to track my WAN interface. After upgrading to 2.3 I started seeing following error message during boot:
rc.bootup: The command '/sbin/ifconfig vmx1_vlan10 inet6 fe80::20c:29ff:1234:1234%vmx1_vlan10 delete' returned exit code '1', the output was 'ifconfig: ioctl (SIOCDIFADDR): Can't assign requested address'
Turns out function interface_track6_configure(), that replaces MAC based LL address with fe80::1:1, gets called twice for each vlan/tracking interface during boot. Second time it is called it uses stale LL address and tries to remove IP address that does not exist.
"Call stack" of the 2 calls:
interfaces_configure -> interfaces_vlan_configure -> interface_vlan_configure -> interface_configure -> interface_track6_configure interfaces_configure -> interface_configure -> interface_track6_configure