In the vyos_net_name file, the locking relies on the threading.Lock() object, which is incorrect, because this object exists inside a process. As a result, locking is efficiently disabled.
Because of this mistake and udev nature, multiple vyos_net_name scripts can run simultaneously, which often leads to returning the same name for multiple interfaces (probably, there can be extra reasons for this inside biosdevname or other parts, but it is out of scope for this specific bug).
The locking should be rewritten to avoid this kind of issue.