Bug 27706

Summary: sysctl -a freezes my server
Product: Base System Reporter: kar_alerts <kar_alerts>
Component: miscAssignee: jkh
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.3-STABLE   
Hardware: Any   
OS: Any   

Description kar_alerts 2001-05-28 14:20:00 UTC
command "sysctl -a" freezes my server.

Fix: 

don't know
How-To-Repeat: type "sysctl -a"
Comment 1 sos 2001-05-28 14:22:41 UTC
It seems kar_alerts@mglorysb.com wrote:
> >Environment:
> FreeBSD svr.mgsb.domain 4.3-STABLE FreeBSD 4.3-STABLE #0: Mon May 28 13:26:03 GMT 2001     root@svr.mgsb.domain:/usr/src/sys/compile/SVRFW  i386
> >Description:
> command "sysctl -a" freezes my server.
> >How-To-Repeat:
> type "sysctl -a"

Yeps I see this too, 4.3-stable is broken here....

-Søren
Comment 2 ru freebsd_committer freebsd_triage 2001-05-28 19:21:13 UTC
On Mon, May 28, 2001 at 06:30:03AM -0700, Søren Schmidt wrote:
> The following reply was made to PR misc/27706; it has been noted by GNATS.
> 
> From: Søren Schmidt <sos@freebsd.dk>
> To: kar_alerts@mglorysb.com
> Cc: freebsd-gnats-submit@FreeBSD.ORG
> Subject: Re: misc/27706: sysctl -a freezes my server
> Date: Mon, 28 May 2001 15:22:41 +0200 (CEST)
> 
>  It seems kar_alerts@mglorysb.com wrote:
>  > >Environment:
>  > FreeBSD svr.mgsb.domain 4.3-STABLE FreeBSD 4.3-STABLE #0: Mon May 28 13:26:03 GMT 2001     root@svr.mgsb.domain:/usr/src/sys/compile/SVRFW  i386
>  > >Description:
>  > command "sysctl -a" freezes my server.
>  > >How-To-Repeat:
>  > type "sysctl -a"
>  
>  Yeps I see this too, 4.3-stable is broken here....
>  
This is caused by ata-disk.c calling disk_create() twice with the
same "struct disk" pointer, once as "ad" and second time as "wd".
This creates the forever loop in sysctl_disks().  -CURRENT is not
vulnerable.

The following patch is enough to fix this:

Index: ata-disk.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-disk.c,v
retrieving revision 1.60.2.12
diff -u -p -r1.60.2.12 ata-disk.c
--- ata-disk.c	2001/04/05 17:21:54	1.60.2.12
+++ ata-disk.c	2001/05/28 18:17:27
@@ -208,8 +208,10 @@ ad_attach(struct ata_softc *scp, int dev
     dev->si_iosize_max = 256 * DEV_BSIZE;
     adp->dev1 = dev;
 
+#if 0
     dev = disk_create(adp->lun, &adp->disk, 0, &fakewd_cdevsw,
 		      &fakewddisk_cdevsw);
+#endif
     dev->si_drv1 = adp;
     dev->si_iosize_max = 256 * DEV_BSIZE;
     adp->dev2 = dev;

-- 
Ruslan Ermilov		Oracle Developer/DBA,
ru@sunbay.com		Sunbay Software AG,
ru@FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age
Comment 3 Poul-Henning Kamp freebsd_committer freebsd_triage 2001-05-28 21:13:10 UTC
Responsible Changed
From-To: freebsd-bugs->jkh

This is jordans MFC of the kern.disks sysctl. 
He has backed it out now, but I belive with the patch in the PR 
that it will work and apologize for forgetting that detail when 
I advised Jordan on this MFC.
Comment 4 kar_alerts 2001-05-29 13:36:06 UTC
The patch solved the problem.

However "sysctl -a" works fine with the latest cvsup-ped source (with 
subr_disk.c -1.20.2.3).Here is my server info:

*--
FreeBSD svr.mgsb.domain 4.3-STABLE FreeBSD 4.3-STABLE #0: Tue May 29 11:53:02
GMT 2001     root@svr.mgsb.domain:/usr/src/sys/compile/SVRFW  i386
*--

Thanks a lot for the patch + the quick solution.

This PR may be closed.
Comment 5 ru freebsd_committer freebsd_triage 2001-05-31 17:49:00 UTC
State Changed
From-To: open->closed

The origin of this problem has been fixed in ata_disk.c,v 1.60.2.13.