diff options
Diffstat (limited to 'core/src/dird/backup.cc')
-rw-r--r-- | core/src/dird/backup.cc | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/core/src/dird/backup.cc b/core/src/dird/backup.cc index 07a57ab6d..8ab09913a 100644 --- a/core/src/dird/backup.cc +++ b/core/src/dird/backup.cc @@ -385,7 +385,7 @@ bool DoNativeBackup(JobControlRecord* jcr) Jmsg(jcr, M_INFO, 0, _("Start Backup JobId %s, Job=%s\n"), edit_uint64(jcr->JobId, ed1), jcr->Job); - jcr->setJobStatus(JS_Running); + jcr->setJobStatusWithPriorityCheck(JS_Running); Dmsg2(100, "JobId=%d JobLevel=%c\n", jcr->impl->jr.JobId, jcr->impl->jr.JobLevel); if (!jcr->db->UpdateJobStartRecord(jcr, &jcr->impl->jr)) { @@ -411,7 +411,7 @@ bool DoNativeBackup(JobControlRecord* jcr) * will be contacting him for a backup session. */ Dmsg0(110, "Open connection with storage daemon\n"); - jcr->setJobStatus(JS_WaitSD); + jcr->setJobStatusWithPriorityCheck(JS_WaitSD); if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) { return false; @@ -446,7 +446,7 @@ bool DoNativeBackup(JobControlRecord* jcr) Dmsg0(150, "Storage daemon connection OK\n"); } - jcr->setJobStatus(JS_WaitFD); + jcr->setJobStatusWithPriorityCheck(JS_WaitFD); if (!ConnectToFileDaemon(jcr, 10, me->FDConnectTimeout, true)) { goto bail_out; } @@ -462,7 +462,7 @@ bool DoNativeBackup(JobControlRecord* jcr) goto close_fd; } - jcr->setJobStatus(JS_Running); + jcr->setJobStatusWithPriorityCheck(JS_Running); if (!SendLevelCommand(jcr)) { goto bail_out; } @@ -616,7 +616,7 @@ close_fd: } bail_out: - jcr->setJobStatus(JS_ErrorTerminated); + jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); WaitForJobTermination(jcr, me->FDConnectTimeout); return false; @@ -642,7 +642,7 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout) int Encrypt = 0; btimer_t* tid = NULL; - jcr->setJobStatus(JS_Running); + jcr->setJobStatusWithPriorityCheck(JS_Running); if (fd) { if (timeout) { @@ -656,8 +656,8 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout) &ReadBytes, &JobBytes, &JobErrors, &VSS, &Encrypt) == 7) { fd_ok = true; - jcr->setJobStatus(jcr->impl->FDJobStatus); - Dmsg1(100, "FDStatus=%c\n", (char)jcr->JobStatus); + jcr->setJobStatusWithPriorityCheck(jcr->impl->FDJobStatus); + Dmsg1(100, "FDStatus=%c\n", (char)jcr->getJobStatus()); } else { Jmsg(jcr, M_WARNING, 0, _("Unexpected Client Job message: %s\n"), fd->msg); @@ -683,11 +683,13 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout) * the SD despool. */ Dmsg5(100, "cancel=%d fd_ok=%d FDJS=%d JS=%d SDJS=%d\n", jcr->IsCanceled(), - fd_ok, jcr->impl->FDJobStatus, jcr->JobStatus, jcr->impl->SDJobStatus); + fd_ok, jcr->impl->FDJobStatus.load(), jcr->getJobStatus(), + jcr->impl->SDJobStatus.load()); if (jcr->IsCanceled() || (!jcr->impl->res.job->RescheduleIncompleteJobs && !fd_ok)) { Dmsg4(100, "fd_ok=%d FDJS=%d JS=%d SDJS=%d\n", fd_ok, - jcr->impl->FDJobStatus, jcr->JobStatus, jcr->impl->SDJobStatus); + jcr->impl->FDJobStatus.load(), jcr->getJobStatus(), + jcr->impl->SDJobStatus.load()); CancelStorageDaemonJob(jcr); } @@ -715,7 +717,7 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout) if (!fd_ok || IsBnetError(fd)) { /* if fd not set, that use !fd_ok */ jcr->impl->FDJobStatus = JS_ErrorTerminated; } - if (jcr->JobStatus != JS_Terminated) { return jcr->JobStatus; } + if (jcr->getJobStatus() != JS_Terminated) { return jcr->getJobStatus(); } if (jcr->impl->FDJobStatus != JS_Terminated) { return jcr->impl->FDJobStatus; } @@ -743,7 +745,7 @@ void NativeBackupCleanup(JobControlRecord* jcr, int TermCode) Jmsg(jcr, M_WARNING, 0, _("Error getting Job record for Job report: ERR=%s\n"), jcr->db->strerror()); - jcr->setJobStatus(JS_ErrorTerminated); + jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); } bstrncpy(cr.Name, jcr->impl->res.client->resource_name_, sizeof(cr.Name)); @@ -755,7 +757,7 @@ void NativeBackupCleanup(JobControlRecord* jcr, int TermCode) UpdateBootstrapFile(jcr); - switch (jcr->JobStatus) { + switch (jcr->getJobStatus()) { case JS_Terminated: TermMsg = _("Backup OK"); break; @@ -787,7 +789,8 @@ void NativeBackupCleanup(JobControlRecord* jcr, int TermCode) break; default: TermMsg = term_code; - sprintf(term_code, _("Inappropriate term code: %c\n"), jcr->JobStatus); + sprintf(term_code, _("Inappropriate term code: %c\n"), + jcr->getJobStatus()); break; } @@ -826,7 +829,7 @@ void UpdateBootstrapFile(JobControlRecord* jcr) "update Bootstrap file. ERR=%s\n"), jcr->db->strerror()); if (jcr->impl->SDJobFiles != 0) { - jcr->setJobStatus(JS_ErrorTerminated); + jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); } } /* Start output with when and who wrote it */ @@ -867,7 +870,7 @@ void UpdateBootstrapFile(JobControlRecord* jcr) _("Could not open WriteBootstrap file:\n" "%s: ERR=%s\n"), fname, be.bstrerror()); - jcr->setJobStatus(JS_ErrorTerminated); + jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); } FreePoolMemory(fname); } |