First of all, let me say that this problem is happening in Queens (but also reproducible in newer branches) and using PY2.
The patch introducing this regression is [1], because now we are checking with a timeout when the dnsmasq process is enabled (actually when the dnsmasq process finished the _enabled function correctly, because this won't check the status of the process, but this another issue).
In PY2, due to the amount of "root" commands executed (in Queens, the pyroute2 migration was starting) and the problem this Python version has with process.Popen() (15x slower than PY3), the DHCP start operation in a heavy loaded server takes more than this time. process.Popen() is used to communicate to rootwrap daemon to execute the "root" commands.
As a quick fix for this regression, we need to increase the timeout time as described in the bug description. This won't have the same impact when using PY3.
Hello:
First of all, let me say that this problem is happening in Queens (but also reproducible in newer branches) and using PY2.
The patch introducing this regression is [1], because now we are checking with a timeout when the dnsmasq process is enabled (actually when the dnsmasq process finished the _enabled function correctly, because this won't check the status of the process, but this another issue).
In PY2, due to the amount of "root" commands executed (in Queens, the pyroute2 migration was starting) and the problem this Python version has with process.Popen() (15x slower than PY3), the DHCP start operation in a heavy loaded server takes more than this time. process.Popen() is used to communicate to rootwrap daemon to execute the "root" commands.
As a quick fix for this regression, we need to increase the timeout time as described in the bug description. This won't have the same impact when using PY3.
Regards.
[1] https:/ /review. opendev. org/#/q/ I18d73b787fa3ab 8803e12d5e5eb2b b7109205aba