On Friday 09 November 2018 18:00:41 Nathan Stratton Treadway wrote: > On Fri, Nov 02, 2018 at 13:00:38 -0400, Nathan Stratton Treadway wrote: > > On Fri, Nov 02, 2018 at 12:35:06 -0400, Gene Heskett wrote: > > > Fri Nov 02 03:42:06.085962877 2018: pid 13139: thd-0x9824e00: > > > driver: not updating because origsize or dumpsize is 0 Fri Nov 02 > > > 03:42:06.086158866 2018: pid 13139: thd-0x9824e00: driver: > > > Building type FILE header of 32768-32768 bytes with name='coyote' > > > disk='/usr/games' dumplevel=1 and blocksize=0 > > > Fri Nov 02 03:42:06.086317001 2018: pid 13139: thd-0x9824e00: > > > driver: Building type FILE header of 32768-32768 bytes with > > > name='coyote' disk='/usr/games' dumplevel=1 and blocksize=0 > > > Fri Nov 02 03:42:06.092807051 2018: pid 13139: thd-0x9824e00: > > > driver: driver: send-cmd time 2461.017 to taper0: FILE-WRITE > > > worker0-0 00-00130 /usr/dumps/20181102030105/coyote._usr_games.1 > > > coyote /usr/games 1 20181102030105 "" "" "" 1 "" "" "" "" 10 > > > > Ah, interesting, looks like this applies to level 1 dumps as well. > > What does "amadmin CONFIG info coyote /usr/games shop > > /usr/lib/amanda" output? > > Okay, I believe I have tracked down this "info on small DLEs not > saved" bug... > > > Summary: > > The short-ish summary is that in Amanda 3.4 and 3.5, any dump which > ends but being shorter than 1024 bytes long (after compression) is > treated as not having happened at all, as far as Amanda's recording of > "info" statistics goes. > > This is most significant for full dumps (i.e. of very small > partitions), because it causes Amanda to think that DLE has never been > dumped (or, that the last time it was dumped was on the final run made > using Amanda 3.3 or older), and thus it schedules that DLE for a full > dump on every run. > > However, the bug actually also affects incremental dumps (as we > discussed in the above-quoted message) -- so DLEs that don't change > much on a particular day and thus end up with very tiny incrementals > end up recording those dumps as having taken place on 1969/12/31 > rather than the day they actually occurred. > > > Neither of the above situations is "fatal" as far as preventing Amanda > from actually backup up your data, but for people (such as Gene) who > are effected, a workaround workaround is simply to make sure that the > dump on a particular day is at least 1024 bytes. > > For full dumps, you can do this just by creating a "dummy" file on the > otherwise-very-empty partition in question, using data that's already > compressed so that the dump file is still big enough after Amanda > compresses it. (In my tests, I just used the bytes off the front of > the amanda_3.4.2.orig.tar.gz file I happened to have sitting around.) > > (For incrementals the trick is to make sure there is enough changing > on the partition that the incremental dump is over the cutoff size; > the best way to do that will depend on what data is on that partition, > etc.) > > > > Internal details and history: > > The bug happens because the messages that the chunker and driver > processes use to communicate with each other specify the size of the > files transferred in integral units of "kb" (=1024 bytes), and thus > the size given for very small files is "0" -- but the code in the > driver that handles updating the info database has a specific check > for zero-length dumps and refuses to update the database in that case. > (This check is found in driverio.c:update_info_dumper() .) > > It appears that the bug has existed since Amanda 3.4, when the old > chunker.c version of the chunker program was replaced with a new Perl > version. > > Both server-src/chunker.c as found in Amanda 3.3 and > server-src/dumper.c as it exists in 3.5 take special care to round > "kb" value passed for files which are short-but-not-empty files up to > "1" -- but that logic was not implemented in the Perl chunker code > when it was created.. > > (Interestingly, if I am reading the old chunker.c code correctly, it > used to round up not just very-small-but-not-empty files to 1 kb, but > actually rounded the kb figure up to count any trailing partial > kilobytes at the end of the file... while the new program seems to > just ignore those trailing partial kilobytes. Presumably this > difference simply doesn't matter -- except for the when the size is > rounded down to zero.) > > > Proposed patch: > > This is where having an actual Amanda developer would be very handy... > but given that planner.c and old-chunker.c both have special handling > for small-but-not-empty files, I figured that adding a similar check > to the new Chunker implementation is probably the best fix for this > situation, and that hopefully doing so would be safe from unwanted > side-effects.... > > So, I edited the perl/Amanda/Chunker/Controller.pm to implement such a > check, as shown in the attached patch. I've been running with this > patch in place for a couple days now, and so far it seems to have > resolved the issue for me.... > > > Nathan I had to do some file renaming because you were saving the original, then it patched it withgout generating a new properly named file leaving it with the name you saved, but I finally got it to apply to 3.5.1, and its building now. We'll see how it runs later tonight. Thanks Nathan for playing bulldog. Its appreciated.
And amcheck is happy. :) Copyright 2018 by Maurice E. Heskett -- Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) Genes Web page <http://geneslinuxbox.net:6309/gene>