Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Mar 2001 18:40:46 -0500
From:      James Housley <jim@thehousleys.net>
To:        Dima Dorfman <dima@unixfreak.org>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: PROBLEMS with 4.3-BETA and dump -- UPDATED
Message-ID:  <3AB2A47E.4728B62E@thehousleys.net>
References:  <20010316232344.050CB3E1F@bazooka.unixfreak.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Dima Dorfman wrote:
> 
> James Housley <jim@thehousleys.net> writes:
> > This problem seems to be cuased by the new code in
> > src/sbin/dump/traverse.c r1.10.2.2 to inherite the nodump flag.  I am
> > working to solve this problem.
> 
> Are you sure?  IIRC, earlier you said you tried backing this out but
> it didn't help.  Also, I can't reproduce this problem.  Does it happen
> every time?  On all filesystems?  On all (most?) hosts?  How big are
> the filesystems?  Anything else you could tell me to help me reproduce
> this?  I'll gladly help in fixing it if I can recreate it.
> 

I did, but I made a mistake with the dates or ran the wrong version or
what ever.

It ie very easy to reproduce.  I as assuming that /usr is /dev/ad0s1f
and that ports is on that file system for the following instructions. 
For all of these example abort the dump when Phase II finishes with the
"DUMP: estimate ..... blocks.." message appears.

dump 0sf 1048576 /dev/null /dev/ad0s1f 
  -- this takes 9 seconds to finish Phase II for all versions.

dump 0hsf 0 1048576 /dev/null /dev/ad0s1f
  -- this takes 9 seconds to finish Phase II for all versions.

chflags nodump /usr/ports ; dump 0sf 1048576 /dev/null /dev/ad0s1f 
  -- this takes 9 seconds to finish Phase II for all versions.

chflags nodump /usr/ports ; dump 0hsf 0 1048576 /dev/null /dev/ad0s1f 
  -- this takes 9 seconds to finish Phase II for version 1.10.2.1 of
src/sbin/dump/traverse.c

chflags nodump /usr/ports ; dump 0hsf 0 1048576 /dev/null /dev/ad0s1f 
  -- this takes 38 minutes to finish Phase II for version 1.10.2.1 of
src/sbin/dump/traverse.c

A I believe that it is because it repeats once for each file in the
subtree:

        msg("mapping (Pass II) [directories]\n");
        while (anydirskipped) {
                anydirskipped = mapdirs(maxino, &tapesize);
        }


I have not yet tested:
chflags -R nodump /usr/ports ; dump 0hsf 0 1048576 /dev/null /dev/ad0s1f 
To see if it is quicker.  I think the problem may actually be in
mapfiles() and not mapdirs().  The above test will tell me, I am also
going to add a counter in the above loop to verify this theory.  However
I am in the middle of a build world back towards a more recent version. 
But after dinner I should be able to test this.  I welcome independent
testing.

Jim

--
/"\   ASCII Ribbon Campaign  .
\ / - NO HTML/RTF in e-mail  .
 X  - NO Word docs in e-mail .
/ \ -----------------------------------------------------------------
jeh@FreeBSD.org      http://www.FreeBSD.org     The Power to Serve
jim@TheHousleys.Net  http://www.TheHousleys.net
---------------------------------------------------------------------
Progress (n) : What led from smart users in front of dumb terminals to
dumb users in front of smart terminals.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3AB2A47E.4728B62E>