Hi,

First: I'm (still) happily running 1.36.1, and the more I use Bacula,
the better I find it.

Following the good advice to have 'Rerun Failed Levels = yes' in my Job
definition along with a a 'Run Before Job' that check if the host is up
and running, I encountered the following problem.

I had a FD that was shutdown for a long time, thus each of its jobs were
failing as shown by this SQL request:
mysql> select JobId,Level,ClientId,JobStatus,StartTime,PoolId,FileSetId from 
Job where name='pierre';
+-------+-------+----------+-----------+---------------------+--------+-----------+
| JobId | Level | ClientId | JobStatus | StartTime           | PoolId | 
FileSetId |
+-------+-------+----------+-----------+---------------------+--------+-----------+
|    41 | F     |        3 | T         | 2005-03-16 01:10:40 |      1 |         
4 |
|    45 | I     |        3 | T         | 2005-03-17 01:08:36 |      3 |         
4 |
|    51 | I     |        3 | E         | 2005-03-18 01:08:12 |      3 |         
4 |
|    57 | I     |        3 | T         | 2005-03-18 09:56:06 |      3 |         
4 |
|    61 | I     |        3 | E         | 2005-03-18 21:33:09 |      3 |         
4 |
|    68 | D     |        3 | T         | 2005-03-21 21:36:29 |      2 |         
4 |
|    75 | I     |        3 | T         | 2005-03-22 21:33:58 |      3 |         
4 |
|    82 | I     |        3 | T         | 2005-03-23 21:33:57 |      3 |         
4 |
|    89 | I     |        3 | E         | 2005-03-24 21:34:09 |      3 |         
4 |
|    96 | I     |        3 | E         | 2005-03-25 21:32:29 |      3 |         
4 |
|   103 | D     |        3 | E         | 2005-03-28 21:36:04 |      2 |         
4 |
|   110 | I     |        3 | E         | 2005-03-29 21:35:13 |      3 |         
4 |
|   117 | I     |        3 | E         | 2005-03-30 21:33:17 |      3 |         
4 |
|   124 | I     |        0 | f         | 2005-03-31 21:35:42 |      0 |         
0 |
|   131 | I     |        0 | f         | 2005-04-01 21:35:05 |      0 |         
0 |
|   138 | F     |        0 | f         | 2005-04-04 22:56:38 |      0 |         
0 |
|   145 | I     |        3 | T         | 2005-04-05 21:36:32 |      3 |         
4 |
+-------+-------+----------+-----------+---------------------+--------+-----------+

I added the 'Run Before Job' on 3/31/2005, and the Error code, changed from E 
(error) to f (failed).

Two days ago, the backup was a Full backup, but the host was down.
Yesterday the backup was an Incremental backup and this particular FD
was up and running, I expected it to upgrade its backup to full, but no:

05-Apr 21:36 arsenic-dir: Start Backup JobId 145,
Job=pierre.2005-04-05_21.30.03
05-Apr 21:36 pierre-fd: Since time adjusted by -1 seconds.
05-Apr 21:36 arsenic-sd: Volume "Inc-0005" previously written, moving to
end of data.
05-Apr 21:46 arsenic-dir: Bacula 1.36.1 (26Nov04): 05-Apr-2005 21:46:43
  JobId:                  145
  Job:                    pierre.2005-04-05_21.30.03
  Backup Level:           Incremental, since=2005-03-23 21:33:57
  Client:                 pierre-fd
  FileSet:                "Pierre Set" 2005-03-15 17:18:12
  Pool:                   "Inc-Pool"
  Storage:                "File"
  Start time:             05-Apr-2005 21:36:32
  End time:               05-Apr-2005 21:46:43
  FD Files Written:       864
  SD Files Written:       864
  FD Bytes Written:       2,720,456,391
  SD Bytes Written:       2,720,642,779
  Rate:                   4452.5 KB/s
  Software Compression:   18.8 %
  Volume name(s):         Inc-0005
  Volume Session Id:      16
  Volume Session Time:    1112282457
  Last Volume Bytes:      3,153,354,566
  Non-fatal FD errors:    0
  SD Errors:              0
  FD termination status:  OK
  SD termination status:  OK
  Termination:            Backup OK

After reading the code, I found that the problem was indeed the
following:

* The failed Job because the 'Run Before Job' returned an error have a
Job status of Failed and no CliendId nor FileSetId.

* The 'Rerun Failed Levels' part of get_level_since_time() in fd_cmds.c
does not promote the job to Full or Differential because it searches for
a Job that has a valid ClientId.

Is it a design limitation of the Run Before Job or is it a bug ?
I can file a bug report if necessary.

Does anyone have a workaround (besides removing my 'Run Before Job') ?
And finally how can I fix this and force an upgrade to Full for this
FD ?

Thanks for your answer,
-- 
Brice Figureau
Days of Wonder



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to