Bug 665601
Summary: | sysctl calls fail with VLANs (mostly breaking IPv6) | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Pierre Ossman <ossman> | ||||||
Component: | initscripts | Assignee: | initscripts Maintenance Team <initscripts-maint-list> | ||||||
Status: | CLOSED ERRATA | QA Contact: | qe-baseos-daemons | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | low | ||||||||
Version: | 5.8 | CC: | albert, azelinka, benchoff, harald, jscotka, notting, ricky.schneberger | ||||||
Target Milestone: | rc | ||||||||
Target Release: | --- | ||||||||
Hardware: | x86_64 | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: |
The sysctl utility uses "." as the path delimiter while VLAN interfaces use "." as the ID delimiter. This conflict caused all sysctl calls on a VLAN interface to terminate without any output, causing various issues with IPv6 auto-configuration feature. With this update, several scripts of the iniscripts package have been patched and the sysctl calls no longer hang on VLAN interfaces.
|
Story Points: | --- | ||||||
Clone Of: | |||||||||
: | 667211 1139560 (view as bug list) | Environment: | |||||||
Last Closed: | 2011-07-21 08:37:18 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Bug Depends On: | |||||||||
Bug Blocks: | 667211, 668576, 1139560 | ||||||||
Attachments: |
|
Description
Pierre Ossman
2010-12-25 11:16:19 UTC
Created attachment 470819 [details]
initscripts-sysctl-vlan.patch
Hmm.. patch got lost somewhere...
Given that the /proc/sys entries properly contain the '.', and this could happen in other places, I'm inclined to say 'fix /sbin/sysctl'. The problem for /sbin/sysctl is the ambiguity between "." as a delimiter and "." as a part of a component name. Do we really want it guessing? I'd rather stuff fail than pick the wrong entry because of a naming conflict. I just find the idea of a first pass that converts certain '.' to '/' when calling sysctl, just so sysctl can then run a two-pass sed that changes '.' to '/' and '/' to '.' rather cumbersome. Seems simpler to just skip sysctl entirely. No objection to that. I don't know the motivation for using sysctl rather than /proc in the first place. So change the component back to initscripts? Well, I can still change initscripts; but it would be good if /sbin/sysctl was fixed. The upstream man page says: variable The name of a key to read from. An example is kernel.ostype. The '/' separator is also accepted in place of a '.'. ... which implies that it *should* work without the substitution. I don't see any way of just "fixing" sysctl. It's the interface that's crap, not the implementation. So any good fixes to sysctl would require changes to initscripts as well. One variant is to change initscripts to not use "." but rather "/" as the delimiter. That would solve my use case. Not sure if a stray "/" can occur in any component name though... Yeah, I suppose the docs should be updated for sysctl to not imply that it actually works. In any case, can change initscripts in the mean time. For existing RHEL releases, will probably do the sysctl device substitution as above... would want to investigate in Fedora whether we can get away with direct echos, etc. (For example, in some policy settings, sysctl might be a specific restricted security context that the script isn't.) Created attachment 471742 [details]
updated patch
Will also need 4ac5634 from git master. (In reply to comment #10) > Will also need 4ac5634 from git master. not really, because we do: sysctl -a | grep "^net\.ipv6\.conf\." | awk -F. '{ print $4 }' | sort -u | while read interface; do instead of: for i in /proc/sys/net/ipv6/conf/* ; do Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: The sysctl utility uses "." as the path delimiter while VLAN interfaces use "." as the ID delimiter. This conflict caused all sysctl calls on a VLAN interface to terminate without any output, causing various issues with IPv6 auto-configuration feature. With this update, several scripts of the iniscripts package have been patched and the sysctl calls no longer hang on VLAN interfaces. An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2011-1081.html An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2011-1081.html |