*BSD News Article 88241


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.ecn.uoknor.edu!news.wildstar.net!news.ececs.uc.edu!newsfeeds.sol.net!news.maxwell.syr.edu!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.sprintlink.net!news-peer.sprintlink.net!EU.net!Austria.EU.net!siemens.at!pc2213.gud.siemens.co.at!not-for-mail
From: salb@pc2213.gud.siemens.co.at (Bernd Salbrechter)
Newsgroups: comp.unix.bsd.netbsd.misc
Subject: Possible Problem in the Filesystem.
Date: 3 Feb 1997 10:40:40 GMT
Organization: Siemens AG Austria
Lines: 60
Message-ID: <5d4fb8$1j4@zwei.siemens.at>
NNTP-Posting-Host: firix.siemens.at
X-Newsreader: TIN [UNIX 1.3 950520BETA PL0]
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.netbsd.misc:5291

If I stack two "union_mounts" on one filesystem the system hangs, if I try
to access contents of the "union_mount"-point.

Here are the details, which I think they are interesting:

1.) I have upgrade my i486 box from NetBSD-1.1 to NetBSD-1.2 and build a
  customized kernel, with the union filesystem included. (Btw.
  congratulations I have never done a upgrade, which works so perfectly
  than that. I did one pass to merge you new GENERIC* with my old CUSTOM
  configuartionfile, compile and install it and reboot -- work :-).

2.) The not working sequence:
    $ mount -t ffs /dev/wd1e /test
    $ cd /test
    $ mkdir extract port compile distfiles pkg extract/NetBSD-1.2
    $ (cd extract/NetBSD-1.2; extract_all_NetBSD_sources)
    $ mount -t union -o -b /test/extract /test/port
    $ mount -t union -o -b /test/port /test/compile
    $ ls -F /test/compile
  --> System hangs.

3.) A working sequence:
    $ mount -t ffs /dev/wd1e /test1
    $ mount -t ffs /dev/wd1f /test2
    $ mount -t ffs /dev/wd1g /test3
    $ mkdir /test1/extract /test2/port /test3/compile
    $ mkdir /test1/extract/NetBSD-1.2
    $ mount -t union -o -b /test1/extract /test2/port
    $ mount -t union -o -b /test2/port /test3/compile
    $ ls -F /test1/extract
    > NetBSD-1.2/
    $ ls -F /test2/port
    > NetBSD-1.2/
    $ ls -F /test3/compile
    > NetBSD-1.2/

4.) A other not working situation continue last sequence (3.):
    $ umount /test3/compile
    $ ls -F /test1/compile
    > NetBSD-1.2/
  --> System hangs.

I didn't have done extensive test of hanging situations, to avoid
damages on my filesystems. But if you really need some tests I will
do it on a spare disk.

If you are interest, why I want that kind of mounts - a kind of a
configuration management system! If I port a package to NetBSD I
create a directory in "/test2/port/..." and extract the package
to "/test1/extract/..." (this will need some work in "port.mk") and
try to compile it in "/test3/compile/...". All changes I have to make
will be done in "/test2/port/... ". This will result in a clean
sourcetree and a ported sourcetree to get the context-diff for "patch".

The next steps I am thinking of are to use symbolic links in
"test2/port/..." to an RCS-tree and stack the "test2/port/..." in an
intreagtion and several architecture and or person specific directories.
Using RSC to push up the changes to the integrationlevel.

--Bernd