Date: Mon, 12 May 1997 20:40:04 -0700 (PDT) From: David Greenman <dg@root.com> To: freebsd-bugs Subject: Re: kern/3583: 'sysctl kern' dumps core when displaying clockrate Message-ID: <199705130340.UAA26087@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/3583; it has been noted by GNATS. From: David Greenman <dg@root.com> To: randy@zyzzyva.com Cc: FreeBSD-gnats-submit@FreeBSD.ORG, phk@FreeBSD.ORG Subject: Re: kern/3583: 'sysctl kern' dumps core when displaying clockrate Date: Mon, 12 May 1997 20:30:16 -0700 > sysctl kern works fine within the first few minutes after a reboot. > Soon, it begins dumping core when attempting to print/retreive > kern.clockrate. I've reported this in the past, but I cannot find it > in the gnats DB. It is possible that it was mistakenly closed when I > thought it had been fixed since it works right after rebooting. >! i = sysctl(oid, nlen, 0, &j, 0, 0); >! j += j; /* we want to be sure :-) */ >! > val = alloca(j); > len = j; > i = sysctl(oid, nlen, val, &len, 0, 0); >--- 341,347 ---- > > /* find an estimate of how much we need for this var */ > j = 0; >! i = sysctl(oid, nlen, NULL, &j, 0, 0); > val = alloca(j); > len = j; The problem is caused by the proc structs being too large to fit on your stack - thus causing an rlimit violation. This is actually an architectural flaw in the sysctl mechanism since the information returned from reading the struct procs is actually later discarded. The code needs to be re-written to only retrieve sysctl variables that are actually needed. You can temporarily work around the problem by increasing your stack rlimit to something larger than 8MB. -DG David Greenman Core-team/Principal Architect, The FreeBSD Project
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705130340.UAA26087>