[prev in list] [next in list] [prev in thread] [next in thread]
List: bacula-commits
Subject: [Bacula-commits] SF.net SVN: bacula:[8916] trunk/bacula
From: kerns () users ! sourceforge ! net
Date: 2009-06-21 9:46:45
Message-ID: E1MIJdN-0004aH-Ga () 3kljzd1 ! ch3 ! sourceforge ! com
[Download RAW message or body]
Revision: 8916
http://bacula.svn.sourceforge.net/bacula/?rev=8916&view=rev
Author: kerns
Date: 2009-06-21 09:46:45 +0000 (Sun, 21 Jun 2009)
Log Message:
-----------
Re-fix bug #1311 if MaxDiffInterval exceeded ensure job upgraded
Modified Paths:
--------------
trunk/bacula/kernstodo
trunk/bacula/patches/3.0.1-maxdiff.patch
trunk/bacula/src/dird/fd_cmds.c
trunk/bacula/src/version.h
trunk/bacula/technotes
Modified: trunk/bacula/kernstodo
===================================================================
--- trunk/bacula/kernstodo 2009-06-20 17:37:24 UTC (rev 8915)
+++ trunk/bacula/kernstodo 2009-06-21 09:46:45 UTC (rev 8916)
@@ -1,5 +1,5 @@
Kern's ToDo List
- 02 May 2008
+ 21 June 2009
Rescue:
Add to USB key:
@@ -81,6 +81,12 @@
Priority:
================
+- Fix restore of acls and extended attributes to count ERROR
+ messages and make errors non-fatal.
+- Put save/restore various platform acl/xattrs on a pointer to simplify
+ the code.
+
+
- Why no error message if restore has no permission on the where
directory?
- Possibly allow manual "purge" to purge a Volume that has not
@@ -96,11 +102,10 @@
- Add bRC_EndJob -- stops more calls to plugin this job
- Add bRC_Term (unload plugin)
- remove time_t from Jmsg and use utime_t?
-- Extended ACLs
- Deadlock detection, watchdog sees if counter advances when jobs are
running. With debug on, can do a "status" command.
- User options for plugins.
-- Pool Storage override precidence over command line.
+- Pool Storage override precedence over command line.
- Autolabel only if Volume catalog information indicates tape not
written. This will avoid overwriting a tape that gets an I/O
error on reading the volume label.
Modified: trunk/bacula/patches/3.0.1-maxdiff.patch
===================================================================
--- trunk/bacula/patches/3.0.1-maxdiff.patch 2009-06-20 17:37:24 UTC (rev 8915)
+++ trunk/bacula/patches/3.0.1-maxdiff.patch 2009-06-21 09:46:45 UTC (rev 8916)
@@ -16,9 +16,9 @@
Index: src/dird/fd_cmds.c
===================================================================
---- src/dird/fd_cmds.c (revision 8902)
+--- src/dird/fd_cmds.c (revision 8911)
+++ src/dird/fd_cmds.c (working copy)
-@@ -198,22 +198,29 @@
+@@ -198,22 +198,33 @@
now = (utime_t)time(NULL);
jcr->jr.JobId = 0; /* flag to return since time */
have_full = db_find_job_start_time(jcr, jcr->db, &jcr->jr, &jcr->stime);
@@ -26,6 +26,8 @@
- if (jcr->get_JobLevel() == L_INCREMENTAL && have_full && \
jcr->job->MaxDiffInterval > 0) { + if (have_full) {
+ last_full_time = str_to_utime(jcr->stime);
++ } else {
++ do_full = true; /* No full, upgrade to one */
+ }
+ /* Make sure the last diff is recent enough */
+ if (have_full && jcr->get_JobLevel() == L_INCREMENTAL && \
jcr->job->MaxDiffInterval > 0) { @@ -33,6 +35,10 @@
if (db_find_last_job_start_time(jcr, jcr->db, &jcr->jr, &stime, \
L_DIFFERENTIAL)) { last_diff_time = str_to_utime(stime);
- do_diff = ((now - last_diff_time) >= jcr->job->MaxDiffInterval);
++ /* If no Diff since Full, use Full time */
++ if (last_diff_time < last_full_time) {
++ last_diff_time = last_full_time;
++ }
+ } else {
+ /* No last differential, so use last full time */
+ last_diff_time = last_full_time;
@@ -45,8 +51,6 @@
+ /* Note, do_full takes precedence over do_diff */
+ if (have_full && jcr->job->MaxFullInterval > 0) {
do_full = ((now - last_full_time) >= jcr->job->MaxFullInterval);
-+ } else {
-+ do_full = true;
}
free_pool_memory(stime);
@@ -55,7 +59,7 @@
/* No recent Full job found, so upgrade this one to Full */
Jmsg(jcr, M_INFO, 0, "%s", db_strerror(jcr->db));
Jmsg(jcr, M_INFO, 0, _("No prior or suitable Full backup found in catalog. \
Doing FULL backup.\n"));
-@@ -221,7 +228,7 @@
+@@ -221,7 +232,7 @@
level_to_str(jcr->get_JobLevel()));
jcr->set_JobLevel(jcr->jr.JobLevel = L_FULL);
} else if (do_diff) {
Modified: trunk/bacula/src/dird/fd_cmds.c
===================================================================
--- trunk/bacula/src/dird/fd_cmds.c 2009-06-20 17:37:24 UTC (rev 8915)
+++ trunk/bacula/src/dird/fd_cmds.c 2009-06-21 09:46:45 UTC (rev 8916)
@@ -198,22 +198,33 @@
now = (utime_t)time(NULL);
jcr->jr.JobId = 0; /* flag to return since time */
have_full = db_find_job_start_time(jcr, jcr->db, &jcr->jr, &jcr->stime);
- /* If there was a successful job, make sure it is recent enough */
- if (jcr->get_JobLevel() == L_INCREMENTAL && have_full && \
jcr->job->MaxDiffInterval > 0) { + if (have_full) {
+ last_full_time = str_to_utime(jcr->stime);
+ } else {
+ do_full = true; /* No full, upgrade to one */
+ }
+ /* Make sure the last diff is recent enough */
+ if (have_full && jcr->get_JobLevel() == L_INCREMENTAL && \
jcr->job->MaxDiffInterval > 0) { /* Lookup last diff job */
if (db_find_last_job_start_time(jcr, jcr->db, &jcr->jr, &stime, \
L_DIFFERENTIAL)) { last_diff_time = str_to_utime(stime);
- do_diff = ((now - last_diff_time) >= jcr->job->MaxDiffInterval);
+ /* If no Diff since Full, use Full time */
+ if (last_diff_time < last_full_time) {
+ last_diff_time = last_full_time;
+ }
+ } else {
+ /* No last differential, so use last full time */
+ last_diff_time = last_full_time;
}
+ do_diff = ((now - last_diff_time) >= jcr->job->MaxDiffInterval);
}
- if (have_full && jcr->job->MaxFullInterval > 0 &&
- db_find_last_job_start_time(jcr, jcr->db, &jcr->jr, &stime, L_FULL)) {
- last_full_time = str_to_utime(stime);
+ /* Note, do_full takes precedence over do_diff */
+ if (have_full && jcr->job->MaxFullInterval > 0) {
do_full = ((now - last_full_time) >= jcr->job->MaxFullInterval);
}
free_pool_memory(stime);
- if (!have_full || do_full) {
+ if (do_full) {
/* No recent Full job found, so upgrade this one to Full */
Jmsg(jcr, M_INFO, 0, "%s", db_strerror(jcr->db));
Jmsg(jcr, M_INFO, 0, _("No prior or suitable Full backup found in catalog. \
Doing FULL backup.\n")); @@ -221,7 +232,7 @@
level_to_str(jcr->get_JobLevel()));
jcr->set_JobLevel(jcr->jr.JobLevel = L_FULL);
} else if (do_diff) {
- /* No recent diff job found, so upgrade this one to Full */
+ /* No recent diff job found, so upgrade this one to Diff */
Jmsg(jcr, M_INFO, 0, _("No prior or suitable Differential backup found in \
catalog. Doing Differential backup.\n")); bsnprintf(since, since_len, _(" (upgraded \
from %s)"), level_to_str(jcr->get_JobLevel()));
Modified: trunk/bacula/src/version.h
===================================================================
--- trunk/bacula/src/version.h 2009-06-20 17:37:24 UTC (rev 8915)
+++ trunk/bacula/src/version.h 2009-06-21 09:46:45 UTC (rev 8916)
@@ -4,8 +4,8 @@
#undef VERSION
#define VERSION "3.0.2"
-#define BDATE "18 June 2009"
-#define LSMDATE "18Jun09"
+#define BDATE "21 June 2009"
+#define LSMDATE "21Jun09"
#define PROG_COPYRIGHT "Copyright (C) %d-2009 Free Software Foundation Europe \
e.V.\n" #define BYEAR "2009" /* year for copyright messages in progs */
Modified: trunk/bacula/technotes
===================================================================
--- trunk/bacula/technotes 2009-06-20 17:37:24 UTC (rev 8915)
+++ trunk/bacula/technotes 2009-06-21 09:46:45 UTC (rev 8916)
@@ -2,6 +2,8 @@
General:
+21Jun09
+kes Re-fix bug #1311 if MaxDiffInterval exceeded ensure job upgraded
18Jun09
kes Add all Job Types to job_type_to_str() for bat.
kes Fix bug #1311 if MaxDiffInterval exceeded ensure job upgraded
This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.
------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
Bacula-commits mailing list
Bacula-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic