Something similar got reported recently upstream, and I got a brand new discovery that one should actually call $ udevadm control --reload -> whenever configuration is changed, as upstream knows that all of their internal state caching and reloading is racy.
Could you please modify your reproducer test case to have: udevadm control --reload, before calling trigger action and check if this resolves your issue?
If true, I believe netplan must call udevadm control --reload after writing out anything that udevd reads, which is udev .rules files and .link files.
Something similar got reported recently upstream, and I got a brand new discovery that one should actually call $ udevadm control --reload -> whenever configuration is changed, as upstream knows that all of their internal state caching and reloading is racy.
Could you please modify your reproducer test case to have: udevadm control --reload, before calling trigger action and check if this resolves your issue?
If true, I believe netplan must call udevadm control --reload after writing out anything that udevd reads, which is udev .rules files and .link files.