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>
