Date: Sat, 21 Jul 2001 23:34:27 -0400 (EDT) From: "Alexander N. Kabaev" <kabaev@mail.ru> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/29131: Current hungs in sysctl -a while booting + patch Message-ID: <200107220334.f6M3YRe01219@kan.dnsalias.net>
next in thread | raw e-mail | index | archive | help
>Number: 29131
>Category: kern
>Synopsis: Current hungs in sysctl -a while booting + patch
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Jul 21 20:40:09 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Alexander N. Kabaev
>Release: FreeBSD 5.0-CURRENT i386
>Organization:
Verizon
>Environment:
System: FreeBSD kan.dnsalias.net 5.0-CURRENT FreeBSD 5.0-CURRENT #1: Sat Jul 21 23:05:49 EDT 2001 root@kan.dnsalias.net:/usr/src/sys/i386/compile/KAN i386
>Description:
-CURRENT appears to hung while booting because sysctl -a never
finishes. ^C can be used to interrupt the sysctl execution and
to continue booting.
It appears, that a sysctl oid_number collision is happening. Namely,
sysctl_register_oid allocates new numbers for OID_AUTO sysctl nodes
starting from the number 100, while at the same time kernel registers
predefined sysctls with ids as high as 255 (see SYSCTL_NODE for
net.inet.raw). If I raise the starting number for dynamic sysctls
to be 255, the problem disappears.
>How-To-Repeat:
N/A
>Fix:
Index: kern_sysctl.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/kern_sysctl.c,v
retrieving revision 1.110
diff -u -u -r1.110 kern_sysctl.c
--- kern_sysctl.c 2001/06/22 19:54:38 1.110
+++ kern_sysctl.c 2001/07/22 03:04:45
@@ -113,7 +113,7 @@
* 100 to leave space for pre-assigned oid numbers.
*/
if (oidp->oid_number == OID_AUTO) {
- static int newoid = 100;
+ static int newoid = 0x100;
oidp->oid_number = newoid++;
if (newoid == 0x7fffffff)
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107220334.f6M3YRe01219>
