[arch-projects] [initscripts][PATCH] arch-sysctl: suppress errors about unknown keys
C Anthony Risinger
anthony at xtfx.me
Tue Dec 13 19:23:50 EST 2011
On Tue, Dec 13, 2011 at 2:44 PM, lolilolicon <lolilolicon at gmail.com> wrote:
> On Wed, Dec 14, 2011 at 3:48 AM, Tom Gundersen <teg at jklm.no> wrote:
>> On Tue, Dec 13, 2011 at 8:09 PM, lolilolicon <lolilolicon at gmail.com> wrote:
>>> According to sysctl(8), the -e option is used to "ignore errors about
>>> unknown keys", so no "other error" would be hidden by it.
>> Many reasons for "unknown keys", maybe the module is no longer
>> installed (by mistake), or it failed loading, or, ....
> But in case of those failures, one shouldn't expect to look for errors in
> the sysctl error messages in the first place. Those error messages should
> be supplementary at best.
>>> It's a good thing if we can report error on misspelled keys, but only if
>>> we don't report the same errors when the keys are just unknown due to
>>> disabled modules.
>> I can't imagine how that could be done...
>>> Currently I have IPv6 disabled, so I get in boot
>>> error: "net.ipv6.conf.all.use_tempaddr" is an unknown key
>>> error: "net.ipv6.conf.default.use_tempaddr" is an unknown key
>> To me it makes most sense to disable the sysctl entries if you disable
>> the modules, anything else should give errors.
> To me, the sysctl entries are to the modules what configuration files are
> to e.g. daemons -- you don't comment/rename configs if you disable daemons
> in rc.conf.
>>> Now if I consistently get these errors, it would be very likely for me to
>>> ignore some other real errors, like misspelling:
>>> error: "net.ipv9.conf.default.use_tempaddr" is an unknown key
>> With your patch this error would be ignored anyway...
> Yes, but if in either case it will be ignored, better just not print it :P
> My point is that if one gets used to the net.ipv6.* key errors, other real
> errors would more likely be ignored; if instead, we suppress the
> non-critical unknown key errors, the other real errors will stand out.
>>> BTW, pre arch-sysctl, it used to be `sysctl -q -p &>/dev/null`, which
>>> really hides *all* errors;
>> Yeah, we are slowly moving away from ignoring errors wherever we can.
> I can understand the intent.
>>> in contrast, The -e option sounds far more
>> Sure, but it still risks ignoring some real errors, which is worse
>> than being annoying.
> I still think in reality -e is pretty safe; I wonder what the original
> intent for the -e option.
> Well, I think I've made my points. Comparing options, I would add the -e
> to my copy of arch-sysctl, if unfortunately we couldn't agree on this
i don't know how beneficial it is to worry about disabled daemons, or
much else related to sysctl ... because imo the whole thing is
busted/outdated, even sysctl.d as implemented by systemd. in
`/etc/rc.multi`, `arch-sysctl` is called *before* any daemons are
started, so anything added to /proc after that will not be affected
anyway (eg. any modules loaded by daemons et al).
the sad truth is sysctl is not hot-plug friendly at all AFAIK, and
only sysfs attributes (/sys) can be [cleanly] modified by udev rules
i know this because i have a desire to disable bridge firewalling on
many of my setups, a /proc/net entry, but the hierarchy doesn't exist
until the bridge modules are loaded ... which, unless explicitly
requested, will almost certainly happen after sysctl stuff has fired.
More information about the arch-projects