[veth] Avoid udev race condtion on systems with systemd version > 242.

In systems with systemd version above 242, there is a potential data
race where udev will try to update the MAC address of the device at the
same time as us if the systemd's MacAddressPolicy is set to 'persistent'.

To prevent udev from trying to set the veth device's MAC address by
itself, we must set the device MAC address on creation so that
addr_assign_type will be set to NET_ADDR_SET, which prevents udev from
attempting to change the MAC address of the veth device.

See: https://github.com/torvalds/linux/commit/2afb9b533423a9b97f84181e773cf9361d98fed6
See: https://lore.kernel.org/netdev/CAHXsExy8LKzocBdBzss_vjOpc_TQmyzM87KC192HpmuhMcqasg@mail.gmail.com/T/
See: https://issues.apache.org/jira/browse/MESOS-10243

Review: https://reviews.apache.org/r/75086/
6 files changed
tree: 6a2cf4964914363700c2d45fd7c0e90828fd57ad
  1. 3rdparty/
  2. bin/
  3. cmake/
  4. docs/
  5. include/
  6. m4/
  7. site/
  8. src/
  9. support/
  10. .asf.yaml
  11. .gitattributes
  12. bootstrap
  13. CHANGELOG
  14. CMakeLists.txt
  15. configure.ac
  16. Doxyfile
  17. LICENSE
  18. Makefile.am
  19. mesos.pc.in
  20. NOTICE
  21. README.md
README.md

Apache Mesos

Apache Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks. It can run Hadoop, Jenkins, Spark, Aurora, and other frameworks on a dynamically shared pool of nodes.

Visit us at mesos.apache.org.

Mailing Lists

Documentation

Documentation is available in the docs/ directory. Additionally, a rendered HTML version can be found on the Mesos website's Documentation page.

Installation

Instructions are included on the Getting Started page.

License

Apache Mesos is licensed under the Apache License, Version 2.0.

For additional information, see the LICENSE and NOTICE files.