>>>>> On Thu, 20 Nov 2014 17:48:56 -0500, Bill Arlofski said:
>
> On 11/19/2014 11:47 AM, Martin Simmons wrote:
> >>>>>> On Tue, 18 Nov 2014 17:34:18 -0500, Bill Arlofski said:
> >>
> >> On 11/18/2014 07:50 AM, Dante Colo wrote:
> >>> Hello Heitor
> >>>
> >>> I tried but wasn't the case, anyway thank you for the suggestion.
> >>
> >> re: Adding Ignore Fileset Changes = Yes option in fileset.
> >>
> >> If you add that to a fileset, it will take affect after the first full of
> >> that
> >> newly modified fileset is complete.
> >>
> >> I say "newly modified fileset" because by adding that option, you are in
> >> fact
> >> changing the fileset, and Bacula will think it needs to run a full.
> >
> > I don't think that is true. The fileset md5 doesn't include boolean options
> > like Ignore Fileset Changes.
> >
> > __Martin
>
> Hi Martin,
>
> while testing this out the other day (in an effort to make sure I was correct
> before posting :) I ran into an interesting thing.
>
> I made sure all jobs were not running, and that the last run for job I was
> going to use in my test had completed OK. It was an incremental earlier that
> day.
>
> I manually started an Incremental of that job, and it ran as an Incremental -
> so far so good.
>
> Then I edited the Fileset for that job, and only added a "#" to comment out
> the Ignore Fileset Changes = Yes that I had in there since the beginning and
> saved the Fileset.
>
> I then issued a "reload" in bconsole and started the job again as Incremental
> and it auto-upgraded it to Full due to "No prior Full backup Job record
> found".
>
> After going back and forth a few times on this, and then checking the Fileset
> in the db, I realized that it was not being updated until/unless I edited the
> Include {} stanza. (just as you had mentioned in your reply)
>
> This made no sense to me because if the Fileset's MD5, nor CreateTime are not
> changing, and a new record for that Fileset is not being created, I could not
> understand how Bacula is determining that it needs to run a full.
>
>
> So, after seeing your response, and thinking about what I must have done wrong
> the other day, today I tried the process over - carefully.
>
> And sure enough, I ran a manual incremental, then edited the Fileset and
> (only) added "#" in front of the "Ignore Fileset Changes = Yes" in my
> fileset, then issued a reload and attempted another incremental and Bacula
> upgraded it to Full due to "No prior Full Job record found"
>
> As you can see, my db shows no new changes to that fileset today, but it seems
> Bacula is using something else to make the upgrade determination.
>
>
> mysql> select * from FileSet WHERE FileSet LIKE 'ups%';
> +-----------+-------------------+------------------------+---------------------+
> | FileSetId | FileSet | MD5 | CreateTime
> |
> +-----------+-------------------+------------------------+---------------------+
> | 60 | upsmonFullFileSet | 2HsumTUBV++T5yE8q5RW7A | 2014-11-18
> 17:32:55 |
> | 59 | upsmonFullFileSet | K+/HI8wAIXQPJl+626FcAC | 2014-11-18
> 17:24:12 |
> | 57 | upsmonFullFileSet | 6jcy46+Z3hIPR5o9+D/0bD | 2014-11-18
> 17:21:38 |
> | 58 | upsmonFullFileSet | a3tIy5BQ96c/E88+nk/CGA | 2014-11-18
> 17:23:24 |
> +-----------+-------------------+------------------------+---------------------+
> 4 rows in set (0.00 sec)
>
>
>
> Thoughts? Comments? Help? :)
I suspsect it is a bug in the code to handle the "Ignore Fileset Changes"
option.
The code looks for the FileSetId to be used as follows:
if (!jcr->fileset->ignore_fs_changes ||
!db_get_fileset_record(jcr, jcr->db, &fsr)) {
if (!db_create_fileset_record(jcr, jcr->db, &fsr)) {
Jmsg(jcr, M_ERROR, 0, _("Could not create FileSet \"%s\" record.
ERR=%s\n"),
fsr.FileSet, db_strerror(jcr->db));
return false;
}
}
jcr->jr.FileSetId = fsr.FileSetId;
There are two cases:
1) "Ignore Fileset Changes = Yes": db_get_fileset_record is called to find an
existing record, but that ignores the md5 of the current fileset and always
returns the newest record in the catalog. As a result, Bacula will look for a
prior full backup with FileSetId 60.
2) "Ignore Fileset Changes = No": db_get_fileset_record is not called, so we
reach the call to db_create_fileset_record. This also looks for an existing
record, but does check the current md5. As a result, Bacula will look for a
prior full backup with FileSetId 57, 58 or 59.
My guess is that you do have a full backup for the FileSetId selected in case
2, but not in case 1.
__Martin
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
|