Skip site navigation (1)Skip section navigation (2)
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>