+++ This bug was initially created as a clone of Bug #152435 +++ Description of problem: Mar 29 16:17:17 tux kernel: process `sysctl' is using deprecated sysctl (syscall) net.ipv6.neigh.lo.base_reachable_time; Use net.ipv6.neigh.lo.base_reachable_time_ms instead. Version-Release number of selected component (if applicable): procps-3.2.5-3 How reproducible: Everytime: Reboot the system, look into /var/log/messages or into dmesg Actual results / Expected results: No message in logfile, no use of deprecated syscall. --- Additional comment from kzak on 2005-04-25 07:53:18 EDT --- *** This bug has been marked as a duplicate of 144459 *** --- Additional comment from redhat-bugzilla on 2006-06-22 16:22:47 EDT --- Reopening, because this bug report is neither a real duplicate of bug #136451 nor is it fixed in Rawhide as bug #136451 is marked. Using procps-3.2.6-4 and kernel-2.6.17-1.2293_FC6 while today's reboot: kernel: process `sysctl' is using deprecated sysctl (syscall) net.ipv6.neigh.lo. base_reachable_time; Use net.ipv6.neigh.lo.base_reachable_time_ms instead. --- Additional comment from kzak on 2006-06-23 09:58:25 EDT --- It's same like bug #158701. I don't have idea where is a problem. There is something what calls sysctl with this old option. I tried add some debug messages to the sysctl command, but it seems that nothing calls (during boot) sysctl with this option, althought the error message is in the /var/log/messages file. Strange... --- Additional comment from redhat-bugzilla on 2006-06-23 11:07:23 EDT --- I would like to track this down and resolve forever as I'm able to reproduce this during any reboot; more information from my syslog (all messages below from Jun 22 18:18:30 -> same second): kernel: ip_tables: (C) 2000-2006 Netfilter Core Team kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team kernel: Netfilter messages via NETLINK v0.30. kernel: ip_conntrack version 2.4 (8191 buckets, 65528 max) - 232 bytes per conntrack kernel: NET: Registered protocol family 10 kernel: lo: Disabled Privacy Extensions kernel: IPv6 over IPv4 tunneling driver kernel: process `sysctl' is using deprecated sysctl (syscall) net.ipv6.neigh.lo. base_reachable_time; Use net.ipv6.neigh.lo.base_reachable_time_ms instead. kernel: ADDRCONF(NETDEV_UP): eth0: link is not ready kernel: tg3: eth0: Link is up at 100 Mbps, full duplex. kernel: tg3: eth0: Flow control is off for TX and off for RX. kernel: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready A `grep -r "net.ipv6.neigh.eth0.base_reachable_time" /etc/* 2> /dev/null` returned nothing. Any suggestions out of the syslog messages? --- Additional comment from kzak on 2006-06-23 11:30:39 EDT --- Albert, do you have any experience with this strange problem on the latest kernels? --- Additional comment from jorton on 2006-06-29 11:14:46 EDT --- I vaguely recall reading that this message is triggered by the kernel on any attempt to *read* that sysctl; which sysctl does at some point, possibly it traverses the whole tree or something? (I also vaguely recall that it was generally agreed to be stupid behaviour on the kernel's part) --- Additional comment from jorton on 2006-06-29 11:20:46 EDT --- Ah, yeah; there is a "sysctl -a" in the /etc/sysconfig/network-scripts/init.ipv6-global. So my bet is that this error doesn't manifest if you explicitly disable IPv6 in the init scripts with NETWORKING_IPV6=no. I guess that the kernel should probably make that procfs file unreadable if it doesn't want sysctl to read it, presumably that would prevent the warning. --- Additional comment from redhat-bugzilla on 2006-06-30 05:13:16 EDT --- So it's more a kernel issue rather a procps problem? And thanks for figgering out... --- Additional comment from jorton on 2006-07-27 05:28:16 EDT --- Yeah, I reckon. The kernel should not make the proc entry readable if it doesn't want it to be used. --- Additional comment from albert.net on 2006-07-27 12:39:41 EDT --- Don't ever make them unreadable. The sysctl command needs to read back the data to verify that the write was accepted and interpreted correctly. If the data can not be read, sysctl needs to report the error to the user. If you want to hide something, then hide it. Make it not show up in a directory listing. Every write-only sysctl is a kernel bug. --- Additional comment from davej on 2006-07-28 12:24:05 EDT --- davem, can we just rip this out ? What's likely to break ? --- Additional comment from redhat-bugzilla on 2006-09-02 11:53:15 EDT --- Ping? --- Additional comment from scott.scriven on 2006-11-29 13:58:14 EDT --- I get a nearly identical error on RHEL5b2, as of yesterday: process `cp' is using deprecated sysctl (syscall) net.ipv6.neigh.eth4. base_reachable_time; Use net.ipv6.neigh.eth4.base_reachable_time_ms instead. This was printed to the console during a postinstall sanity check test. I assume the test tried to "cp /proc/sys/net/ipv6/neigh/eth4/base_reachable_time" somewhere, though I haven't located it yet. I also get the original error during boot, or any time I run "sysctl -a". While the "sysctl -a" is only doing what it's supposed to, it may be worth locating any other places in the distro which might try to access the old syscall. A big "grep -r base_reachable_time" and replace through the entire distro source could probably do the trick. As a quick test, I tried looking through binaries in /bin, /sbin, and /usr. I found only a few matches: [root@host /usr/lib]# grep base_reachable_time * Binary file libnetsnmpmibs.so.10 matches Binary file libnetsnmpmibs.so.10.0.1 matches Binary file libnl.so.1 matches Binary file libnl.so.1.0-pre5 matches --- Additional comment from redhat-bugzilla on 2006-12-09 13:56:37 EDT --- Ping? --- Additional comment from vonbrand.cl on 2007-01-04 18:26:33 EDT --- Is this a case of complaints when /reading/ the /proc entry? I'd understand that one should complain on /writing/... (Yes, still with us with today's rawhide, kernel-2.6.19-1.2904.fc7 and procps-3.2.7-8) --- Additional comment from davem on 2007-03-26 15:55:37 EDT --- The only valid reason to read a sysctl value is to see what it is set to, and based upon that potentially change it. When and if a value goes away, both reads and writes will break, that's why we warn for both read and write accesses. I'm not getting rid of the warning just to satisfy this "sysctl -a" case. We are concerned about readers of the sysctl just as equally as writers, because if the sysctl is taken away it would break a shell script reading this value just as equally as something making modifications. This "sysctl -a" thing makes it absolutely impossible to warn about a deprecated variable properly. We are concerned about "access" of any kind, be it read or write, because once the sysctl goes away both kinds of accesses will stop working. The ipv6 init script can be fixed to only access the sysctl values it is actually interested in rather than everything. It just wants a list of sysctl values that ipv6 provides which match a given regexp, you don't need to open and read the values just to provide that. Please push this back to the script folks, this construct is quite inefficient as well since it has to read all the sysctl values in the system. --- Additional comment from kzak on 2007-04-04 05:35:49 EDT --- I've added to the sysctl command table with deprecated variables. Now, the "sysctl -a" command does ignore and skip these values. It means that deprecated values are hidden when (and only when) you list all values: sysctl -a | egrep "^net.ipv6..*.base_reachable_time =" returns nothing. But you can directly use deprecated values (without -a): sysctl net.ipv6.neigh.lo.base_reachable_time returns expected data. I think it's good compromise. This change doesn't have any impact to our ipv6 init script. The scripts don't look for these deprecated values. --- Additional comment from redhat-bugzilla on 2007-05-28 07:08:38 EDT --- Confirmed to work, closing now.
Created attachment 344850 [details] ignore list for sysctl
Seen on RHEL5.4-Server-20090708.0 tree. RHTS job log: http://rhts.redhat.com/cgi-bin/rhts/test_log.cgi?id=9037246 (see boot.kernel-2.6.18-157.el5)
*** Bug 518225 has been marked as a duplicate of this bug. ***
fixed in procps-3.2.7-12.el5
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-2010-0200.html