Red Hat Bugzilla – Bug 948824
ifup-aliases arping check takes too long
Last modified: 2016-11-25 07:57:09 EST
The change in ifup-aliases to arping every address takes way too long, especially on systems with lots of IPs (web hosting servers for example). I'm using ifcfg-*range* files to create lots of aliases rapidly (380 on one server for example), but with the arping added, my 2 minute reboot goes up to 15, with no output at the console about what is happening (just looks like the system is hung).
ARPCHECK=no should be the default for range files (which are typically used for lots of IPs), and there should be some console output about what is happening. If this is going to be enabled by default for range files, there should be a better way to check (some type of parallel check or something; anything that doesn't take 2 seconds per IP).
Also, while I saw the technical note about ifup-aliases checking for duplicate IPs, it didn't mention that this would cause a 2 second pause for each additional IP, nor did it mention the ARPCHECK=no setting to disable this. This should have been better documented (and IMHO such a change should have defaulted to off).
*** Bug 948833 has been marked as a duplicate of this bug. ***
Thanks for submitting this bug. In previous version there was no possibility to check for duplicates for aliases and I think that was wrong. I agree that this change id not ideal for everyone and I should mention ARPCHECK=no in release notes. I don't think that disabling arp check by default for some set of configuration files would be the best way, because it would bring inconsistency. I also can't add parallel check for this, because that could cause nondeterministic behavior. Because of these reasons, I would rather keep current behavior, but I am open to other suggestions and I will definitely consider adding some info message about running arping, so the system would not look stuck.
I did figure out one inconsistency (that confused me for a bit): I had two servers that were not affected by this change. They have nVidia network interfaces with the forcedeth module, and it apparently doesn't set /sys/class/net/<dev>/operstate, so ifup-aliases didn't run arping on those servers. It looks like nothing else (at least in the "classic" network scripts) checks operstate, so that should probably be changed (add check to ifup or drop it from ifup-aliases).
Anyway, I understand the motivation for the change (I'm mostly just frustrated by it being made in the middle of RHEL 6, even at a point release, and that the effects weren't more prominently documented). I'd suggest that all arping checks (including in ifup-eth) should probably print a message, since each one causes a two-second pause (in the normal case of "no conflict found"). I hadn't really looked, but I'd wondered why "ifup eth0" with a static IP (and no aliases) went from a fraction of a second to several seconds; printing something would be good.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.