]> git.sur5r.net Git - bacula/bacula/commitdiff
Tweak restart incomplete jobs
authorKern Sibbald <kern@sibbald.com>
Mon, 21 Feb 2011 17:28:42 +0000 (18:28 +0100)
committerKern Sibbald <kern@sibbald.com>
Sat, 20 Apr 2013 12:43:26 +0000 (14:43 +0200)
bacula/src/dird/backup.c
bacula/src/filed/backup.c

index 3a88ed152e38c796655056ccdd30a969c9a4f187..19d605926311e52f6d4fa0d41dcfd795aee0b36c 100644 (file)
@@ -250,20 +250,14 @@ bool send_accurate_current_files(JCR *jcr)
       return true;
    }
 
-   /* For incomplete Jobs, we add our own id */
-   if (jcr->incomplete) {
-      edit_int64(jcr->JobId, ed1);   
-      jobids.add(ed1);
-   }
-   
    if (jcr->is_JobLevel(L_FULL)) {
       /* On Full mode, if no previous base job, no accurate things */
-      if (!get_base_jobids(jcr, &jobids) && !jcr->incomplete) {
+      if (get_base_jobids(jcr, &jobids)) {
+         jcr->HasBase = true;
+         Jmsg(jcr, M_INFO, 0, _("Using BaseJobId(s): %s\n"), jobids.list);
+      } else if (!jcr->incomplete) {
          return true;
       }
-      jcr->HasBase = true;
-      Jmsg(jcr, M_INFO, 0, _("Using BaseJobId(s): %s\n"), jobids.list);
-
    } else {
       /* For Incr/Diff level, we search for older jobs */
       db_accurate_get_jobids(jcr, jcr->db, &jcr->jr, &jobids);
@@ -275,6 +269,12 @@ bool send_accurate_current_files(JCR *jcr)
       }
    }
 
+   /* For incomplete Jobs, we add our own id */
+   if (jcr->incomplete) {
+      edit_int64(jcr->JobId, ed1);   
+      jobids.add(ed1);
+   }
+
    /* Don't send and store the checksum if fileset doesn't require it */
    jcr->use_accurate_chksum = is_checksum_needed_by_fileset(jcr);
 
@@ -351,7 +351,10 @@ bool do_backup(JCR *jcr)
    if (jcr->incomplete) {
       edit_int64(jcr->JobId, ed1);   
       Mmsg(buf, "SELECT max(FileIndex) FROM File WHERE JobId=%s", ed1);
-      if (!db_sql_query(jcr->db, buf.c_str(), db_int64_handler, &job)) {
+      if (db_sql_query(jcr->db, buf.c_str(), db_int64_handler, &job)) {
+         Jmsg(jcr, M_INFO, 0, _("Found %ld files from prior incomplete Job.\n"),
+            (int32_t)job.value);
+      } else {
          Jmsg(jcr, M_FATAL, 0, "%s", db_strerror(jcr->db));
          return false;
       }
index e1366f8e8d915a7696071c94d5f264c74cb15b85..7330fde8781a4af34ecf505588420b5cf5db91de 100644 (file)
@@ -1162,7 +1162,7 @@ bool encode_and_send_attributes(JCR *jcr, FF_PKT *ff_pkt, int &data_stream)
     *    <file-index> <stream> <info>
     */
    if (!sd->fsend("%ld %d 0", jcr->JobFiles, attr_stream)) {
-      if (!jcr->is_canceled()) {
+      if (!jcr->is_canceled() && !jcr->is_incomplete()) {
          Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"),
                sd->bstrerror());
       }