Date: Mon, 28 May 2001 11:30:03 -0700 (PDT) From: Ruslan Ermilov <ru@FreeBSD.org> To: freebsd-bugs@FreeBSD.org Subject: Re: misc/27706: sysctl -a freezes my server Message-ID: <200105281830.f4SIU3g77341@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR misc/27706; it has been noted by GNATS.
From: Ruslan Ermilov <ru@FreeBSD.org>
To: =?koi8-r?Q?S=F8ren_Schmidt?= <sos@freebsd.dk>
Cc: bug-followup@FreeBSD.org, Jordan Hubbard <jkh@FreeBSD.org>
Subject: Re: misc/27706: sysctl -a freezes my server
Date: Mon, 28 May 2001 21:21:13 +0300
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
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?200105281830.f4SIU3g77341>
