]> git.sur5r.net Git - bacula/bacula/commitdiff
kes When a migration job actually runs, re-check the Job record
authorKern Sibbald <kern@sibbald.com>
Sat, 26 Jul 2008 20:52:58 +0000 (20:52 +0000)
committerKern Sibbald <kern@sibbald.com>
Sat, 26 Jul 2008 20:52:58 +0000 (20:52 +0000)
     and skip if the job is already migrated. This should
     significantly reduce the problems with bug #1129.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7440 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/dird/migrate.c
bacula/technotes-2.5

index 347c3840fed5d5ee45d1c043e44496fadabb3a97..07d90fe75da53cd62c44500c73d3070f890cbf6d 100644 (file)
@@ -164,10 +164,6 @@ bool do_migration_init(JCR *jcr)
       return true;                    /* no work */
    }
 
-   Dmsg5(dbglevel, "JobId=%d: Previous: Name=%s JobId=%d Type=%c Level=%c\n",
-      (int)jcr->JobId,
-      jcr->previous_jr.Name, (int)jcr->previous_jr.JobId, 
-      jcr->previous_jr.JobType, jcr->previous_jr.JobLevel);
 
    Dmsg5(dbglevel, "JobId=%d: Current: Name=%s JobId=%d Type=%c Level=%c\n",
       (int)jcr->JobId,
@@ -280,13 +276,26 @@ bool do_migration(JCR *jcr)
       return true;
    }
 
+   if (!db_get_job_record(jcr, jcr->db, &jcr->previous_jr)) {
+      Jmsg(jcr, M_FATAL, 0, _("Could not get job record for JobId %s to migrate. ERR=%s"),
+           edit_int64(jcr->previous_jr.JobId, ed1),
+           db_strerror(jcr->db));
+      set_jcr_job_status(jcr, JS_Terminated);
+      migration_cleanup(jcr, jcr->JobStatus);
+      return true;
+   }
+   /* Make sure this job was not already migrated */
+   if (jcr->previous_jr.JobType != JT_BACKUP) {
+      set_jcr_job_status(jcr, JS_Terminated);
+      migration_cleanup(jcr, jcr->JobStatus);
+      return true;
+   }
+
    /* Print Job Start message */
    Jmsg(jcr, M_INFO, 0, _("Start %s JobId %s, Job=%s\n"),
         jcr->get_JobType() == JT_MIGRATE ? "Migration" : "Copy",
         edit_uint64(jcr->JobId, ed1), jcr->Job);
 
-
-
    /*
     * Open a message channel connection with the Storage
     * daemon. This is to let him know that our client
index b7c40cef4fec1753f492df85d25f3c09a1be83e0..a050cb93e817fbbbf74fb1f89397bff909566e5b 100644 (file)
@@ -32,6 +32,10 @@ separator in console (!$%&'()*+,-/:;<>?[]^`{|}~)
 
 
 General:
+26Jul08
+kes  When a migration job actually runs, re-check the Job record
+     and skip if the job is already migrated. This should
+     significantly reduce the problems with bug #1129.
 24Jul08
 kes  Set MALLOC_CHECK_=0 in environment before starting Bacula to
      turn off glibc checks that prevent getting good dumps.