*BSD News Article 5534


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!uunet!rde!gator!syscon!news.cs.indiana.edu!att!linac!uwm.edu!wupost!darwin.sura.net!spool.mu.edu!agate!doc.ic.ac.uk!uknet!mcsun!sunic!corax.udac.uu.se!astro.uu.se!goran
From: goran@astro.uu.se (Goran Hammarback)
Newsgroups: comp.unix.bsd
Subject: Re: [386bsd] fsck fails in rc, works otherwise
Message-ID: <19r5m8INNnot@corax.udac.uu.se>
Date: 24 Sep 92 01:29:44 GMT
References: <3891@wzv.win.tue.nl>
Sender: goran@solaris.astro.uu.se (Goran Hammarback)
Organization: Uppsala University
Lines: 56
NNTP-Posting-Host: solaris.astro.uu.se

In article <3891@wzv.win.tue.nl>, guido@gvr.win.tue.nl (Guido van Rooij) writes:
|> Untill today i had 386bsd 0.1 up and running without any problems. However
|> my noname io card went to heavan, and it was replaced by another one 
|> (different manufacturer). And from now on, init hangs during fsck -p from rc.
|> I have 2 harddisks, and my fstab looks as follows:
|> /dev/wd0a		/		ufs	rw 1 1
|> /dev/wd0h		/usr		ufs	rw 1 2
|> /dev/wd1h		/disk2		ufs	rw 1 2
|> 
|> wd0a is checked, but when fsck starts to check both other disks in parallel,
|> the system seems to hang. When pressing ctrl-c rc says: reboot interrupted, as
|> it should, so fsck does not hang, but that is all....The only escape is
|> ctrl-alt-del.

   [stuff deleted]

I don't know if this helps you, but Tom Ivar Helbekkmo (tih@barsoom.nhh.no)
writes in his README file for his 2hd patch:

> There's also another problem still bothering me: There's some sort of
> timing/reentrancy error still lurking in here, that was there in the
> original 0.1 wd driver as well.  The symptom is that, on *some*
> controllers, doing the initial wdopen() (which will then call the
> readdisklabel() function) for two or more disks at the same time (so
> that wdopen() gets called again while it's already being executed),
> the controller gets hung.  I'm still looking for this, meanwhile I
> specify in my config file that I have swap on all disks.  This causes
> the kernel to wdopen() the drives nicely in order -- and once it's
> been done for each disk, the problem will, of course, not occur.
> Without the "swap on ... and ... and ..." stuff, my wd1, wd2 and wd3
> would be opened simultaneously by "fsck -p" forks, which would
> nicely hang up everything...  I note a "sleep(10)" in fsck, but it
> obviously doesn't do that.

I don't know if he has solved this yet, or if this bug is also present
in other patches for two hd (cgd's for example), but it sounds a lot
like the problem you are experiencing.  I'm not at my PC right now,
but the man page for SUN says that filesystems with pass# 1 (the last number
in the fstab entry) are checked sequentially and the rest in parallell,
so you could try to change the pass# to 1 for /usr so /, and /usr
are checked sequentially , and /disk2 after that.  You could also try
to change the pass# for /disk2 to 0 which (still according to the SUN
man page) implies no checking, and add a separate fsck command for /disk2
in your /etc/rc file.
If all else fails, get a new controller that works...

-- 
Hope you got some help from this,
Goran

------------------------------+---------------------------------
Goran Hammarback              |     goran@astro.uu.se
Astronomiska Observatoriet    |
Uppsala Universitet           |
S-751 20 SWEDEN               |
------------------------------+---------------------------------