Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorAlaa Eddine Elamri <alaeddine.elamri@bareos.com>2022-10-28 13:58:00 +0300
committerAndreas Rogge <andreas.rogge@bareos.com>2022-11-07 19:16:29 +0300
commit65d3ad166f03a1b89c4ad15c973293702475aea6 (patch)
treea3165f8b7bb484103a760db012aef156d957fb20 /core
parented0626520e8db05d5f9845c9e9c97a18429aa395 (diff)
rename setJobStatus to setJobStatusWithPriorityCheck
Diffstat (limited to 'core')
-rw-r--r--core/src/dird/admin.cc6
-rw-r--r--core/src/dird/archive.cc6
-rw-r--r--core/src/dird/backup.cc20
-rw-r--r--core/src/dird/bsr.cc2
-rw-r--r--core/src/dird/consolidate.cc6
-rw-r--r--core/src/dird/fd_cmds.cc18
-rw-r--r--core/src/dird/getmsg.cc6
-rw-r--r--core/src/dird/job.cc29
-rw-r--r--core/src/dird/jobq.cc16
-rw-r--r--core/src/dird/migrate.cc32
-rw-r--r--core/src/dird/msgchan.cc4
-rw-r--r--core/src/dird/ndmp_dma_backup_NDMP_BAREOS.cc6
-rw-r--r--core/src/dird/ndmp_dma_backup_NDMP_NATIVE.cc6
-rw-r--r--core/src/dird/ndmp_dma_backup_common.cc2
-rw-r--r--core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc6
-rw-r--r--core/src/dird/ndmp_dma_restore_NDMP_NATIVE.cc2
-rw-r--r--core/src/dird/restore.cc8
-rw-r--r--core/src/dird/storage.cc6
-rw-r--r--core/src/dird/ua_server.cc2
-rw-r--r--core/src/dird/vbackup.cc10
-rw-r--r--core/src/dird/verify.cc36
-rw-r--r--core/src/filed/backup.cc8
-rw-r--r--core/src/filed/compression.cc6
-rw-r--r--core/src/filed/dir_cmd.cc28
-rw-r--r--core/src/filed/estimate.cc2
-rw-r--r--core/src/filed/restore.cc8
-rw-r--r--core/src/filed/sd_cmds.cc4
-rw-r--r--core/src/filed/verify.cc4
-rw-r--r--core/src/filed/verify_vol.cc12
-rw-r--r--core/src/include/jcr.h2
-rw-r--r--core/src/lib/compression.cc12
-rw-r--r--core/src/lib/jcr.cc6
-rw-r--r--core/src/lib/message.cc2
-rw-r--r--core/src/lib/runscript.cc4
-rw-r--r--core/src/plugins/stored/autoxflate/autoxflate-sd.cc4
-rw-r--r--core/src/stored/append.cc18
-rw-r--r--core/src/stored/bscan.cc2
-rw-r--r--core/src/stored/btape.cc8
-rw-r--r--core/src/stored/dir_cmd.cc2
-rw-r--r--core/src/stored/fd_cmds.cc8
-rw-r--r--core/src/stored/job.cc4
-rw-r--r--core/src/stored/mac.cc12
-rw-r--r--core/src/stored/ndmp_tape.cc10
-rw-r--r--core/src/stored/read.cc4
-rw-r--r--core/src/stored/reserve.cc2
-rw-r--r--core/src/stored/sd_cmds.cc8
-rw-r--r--core/src/stored/spool.cc4
-rw-r--r--core/src/stored/stored.cc2
48 files changed, 211 insertions, 204 deletions
diff --git a/core/src/dird/admin.cc b/core/src/dird/admin.cc
index ce71d9db7..e3c91b2ef 100644
--- a/core/src/dird/admin.cc
+++ b/core/src/dird/admin.cc
@@ -2,7 +2,7 @@
BAREOS® - Backup Archiving REcovery Open Sourced
Copyright (C) 2003-2012 Free Software Foundation Europe e.V.
- Copyright (C) 2016-2020 Bareos GmbH & Co. KG
+ Copyright (C) 2016-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -59,7 +59,7 @@ bool do_admin(JobControlRecord* jcr)
Jmsg(jcr, M_INFO, 0, _("Start Admin JobId %d, Job=%s\n"), jcr->JobId,
jcr->Job);
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
AdminCleanup(jcr, JS_Terminated);
return true;
@@ -80,7 +80,7 @@ void AdminCleanup(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);
}
msg_type = M_INFO; /* by default INFO message */
diff --git a/core/src/dird/archive.cc b/core/src/dird/archive.cc
index 44d957767..1d0a3dfca 100644
--- a/core/src/dird/archive.cc
+++ b/core/src/dird/archive.cc
@@ -1,7 +1,7 @@
/*
BAREOS® - Backup Archiving REcovery Open Sourced
- Copyright (C) 2016-2020 Bareos GmbH & Co. KG
+ Copyright (C) 2016-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -58,7 +58,7 @@ bool DoArchive(JobControlRecord* jcr)
Jmsg(jcr, M_INFO, 0, _("Start Archive JobId %d, Job=%s\n"), jcr->JobId,
jcr->Job);
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
ArchiveCleanup(jcr, JS_Terminated);
return true;
@@ -79,7 +79,7 @@ void ArchiveCleanup(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);
}
msg_type = M_INFO; /* by default INFO message */
diff --git a/core/src/dird/backup.cc b/core/src/dird/backup.cc
index b6a0d75ca..bd41e9616 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,7 +656,7 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout)
&ReadBytes, &JobBytes, &JobErrors, &VSS, &Encrypt)
== 7) {
fd_ok = true;
- jcr->setJobStatus(jcr->impl->FDJobStatus);
+ jcr->setJobStatusWithPriorityCheck(jcr->impl->FDJobStatus);
Dmsg1(100, "FDStatus=%c\n", (char)jcr->JobStatus);
} else {
Jmsg(jcr, M_WARNING, 0, _("Unexpected Client Job message: %s\n"),
@@ -745,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));
@@ -828,7 +828,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 */
@@ -869,7 +869,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);
}
diff --git a/core/src/dird/bsr.cc b/core/src/dird/bsr.cc
index a66c94d20..968f64aac 100644
--- a/core/src/dird/bsr.cc
+++ b/core/src/dird/bsr.cc
@@ -580,7 +580,7 @@ bool OpenBootstrapFile(JobControlRecord* jcr, bootstrap_info& info)
BErrNo be;
Jmsg(jcr, M_FATAL, 0, _("Could not open bootstrap file %s: ERR=%s\n"),
jcr->RestoreBootstrap, be.bstrerror());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
diff --git a/core/src/dird/consolidate.cc b/core/src/dird/consolidate.cc
index eb91d833c..8206cb53b 100644
--- a/core/src/dird/consolidate.cc
+++ b/core/src/dird/consolidate.cc
@@ -115,7 +115,7 @@ bool DoConsolidate(JobControlRecord* jcr)
Jmsg(jcr, M_INFO, 0, _("Start Consolidate JobId %d, Job=%s\n"), jcr->JobId,
jcr->Job);
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
foreach_res (job, R_JOB) {
if (job->AlwaysIncremental) {
@@ -319,7 +319,7 @@ bool DoConsolidate(JobControlRecord* jcr)
bail_out:
// Restore original job back to jcr.
jcr->impl->res.job = tmpjob;
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
ConsolidateCleanup(jcr, JS_Terminated);
if (jobids) { free(jobids); }
@@ -343,7 +343,7 @@ void ConsolidateCleanup(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);
}
msg_type = M_INFO; /* by default INFO message */
diff --git a/core/src/dird/fd_cmds.cc b/core/src/dird/fd_cmds.cc
index 38509c8df..146403e6d 100644
--- a/core/src/dird/fd_cmds.cc
+++ b/core/src/dird/fd_cmds.cc
@@ -145,7 +145,7 @@ static bool connect_outbound_to_file_daemon(JobControlRecord* jcr,
jcr->impl->res.client->FDport, verbose)) {
delete fd;
fd = NULL;
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
} else {
jcr->file_bsock = fd;
jcr->authenticated = false;
@@ -274,7 +274,7 @@ bool ConnectToFileDaemon(JobControlRecord* jcr,
}
if (jcr->file_bsock) {
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
if (AuthenticateWithFileDaemon(jcr)) {
success = true;
SendInfoSuccess(jcr, ua);
@@ -317,7 +317,7 @@ bool ConnectToFileDaemon(JobControlRecord* jcr,
&& jcr->impl->connection_handshake_try_
!= ClientConnectionHandshakeMode::kFailed);
- if (!success) { jcr->setJobStatus(JS_ErrorTerminated); }
+ if (!success) { jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); }
return success;
}
@@ -347,7 +347,7 @@ int SendJobInfoToFileDaemon(JobControlRecord* jcr)
storage = jcr->impl->res.read_storage;
} else {
Jmsg(jcr, M_FATAL, 0, _("No read or write storage defined\n"));
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return 0;
}
if (storage) {
@@ -379,7 +379,7 @@ int SendJobInfoToFileDaemon(JobControlRecord* jcr)
if (!bstrncmp(fd->msg, OKjob, strlen(OKjob))) {
Jmsg(jcr, M_FATAL, 0, _("File daemon \"%s\" rejected Job command: %s\n"),
jcr->impl->res.client->resource_name_, fd->msg);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return 0;
} else if (jcr->db) {
ClientDbRecord cr;
@@ -397,7 +397,7 @@ int SendJobInfoToFileDaemon(JobControlRecord* jcr)
} else {
Jmsg(jcr, M_FATAL, 0, _("FD gave bad response to JobId command: %s\n"),
BnetStrerror(fd));
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return 0;
}
@@ -690,7 +690,7 @@ static bool SendFileset(JobControlRecord* jcr)
return true;
bail_out:
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -1086,7 +1086,7 @@ int GetAttributesAndPutInCatalog(JobControlRecord* jcr)
_("<filed: bad attributes, expected 3 fields got %d\n"
"message_length=%d msg=%s\n"),
len, fd->message_length, fd->msg);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return 0;
}
p = fd->msg;
@@ -1178,7 +1178,7 @@ int GetAttributesAndPutInCatalog(JobControlRecord* jcr)
jcr->cached_attribute = false;
}
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
return 1;
}
diff --git a/core/src/dird/getmsg.cc b/core/src/dird/getmsg.cc
index f4bfa8f96..a16f698c2 100644
--- a/core/src/dird/getmsg.cc
+++ b/core/src/dird/getmsg.cc
@@ -3,7 +3,7 @@
Copyright (C) 2000-2010 Free Software Foundation Europe e.V.
Copyright (C) 2011-2012 Planets Communications B.V.
- Copyright (C) 2013-2019 Bareos GmbH & Co. KG
+ Copyright (C) 2013-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -86,10 +86,10 @@ static void SetJcrSdJobStatus(JobControlRecord* jcr, int SDJobStatus)
// Some SD Job status setting are propagated to the controlling Job.
switch (jcr->impl->SDJobStatus) {
case JS_Incomplete:
- jcr->setJobStatus(JS_Incomplete);
+ jcr->setJobStatusWithPriorityCheck(JS_Incomplete);
break;
case JS_FatalError:
- jcr->setJobStatus(JS_FatalError);
+ jcr->setJobStatusWithPriorityCheck(JS_FatalError);
break;
default:
break;
diff --git a/core/src/dird/job.cc b/core/src/dird/job.cc
index a317f873a..30648b890 100644
--- a/core/src/dird/job.cc
+++ b/core/src/dird/job.cc
@@ -171,7 +171,7 @@ bool SetupJob(JobControlRecord* jcr, bool suppress_output)
jcr->impl->nextrun_ready_inited = true;
CreateUniqueJobName(jcr, jcr->impl->res.job->resource_name_);
- jcr->setJobStatus(JS_Created);
+ jcr->setJobStatusWithPriorityCheck(JS_Created);
jcr->unlock();
// Open database
@@ -364,7 +364,7 @@ bool SetupJob(JobControlRecord* jcr, bool suppress_output)
break;
default:
Pmsg1(0, _("Unimplemented job type: %d\n"), jcr->getJobType());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto bail_out;
}
@@ -424,7 +424,7 @@ bool UseWaitingClient(JobControlRecord* jcr, int timeout)
void UpdateJobEnd(JobControlRecord* jcr, int TermCode)
{
DequeueMessages(jcr); /* display any queued messages */
- jcr->setJobStatus(TermCode);
+ jcr->setJobStatusWithPriorityCheck(TermCode);
UpdateJobEndRecord(jcr);
}
@@ -442,8 +442,9 @@ static void* job_thread(void* arg)
DetachIfNotDetached(pthread_self());
Dmsg0(200, "=====Start Job=========\n");
- jcr->setJobStatus(JS_Running); /* this will be set only if no error */
- jcr->start_time = time(NULL); /* set the real start time */
+ jcr->setJobStatusWithPriorityCheck(
+ JS_Running); /* this will be set only if no error */
+ jcr->start_time = time(NULL); /* set the real start time */
jcr->impl->jr.StartTime = jcr->start_time;
// Let the statistics subsystem know a new Job was started.
@@ -452,13 +453,13 @@ static void* job_thread(void* arg)
if (jcr->impl->res.job->MaxStartDelay != 0
&& jcr->impl->res.job->MaxStartDelay
< (utime_t)(jcr->start_time - jcr->sched_time)) {
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
Jmsg(jcr, M_FATAL, 0,
_("Job canceled because max start delay time exceeded.\n"));
}
if (JobCheckMaxrunschedtime(jcr)) {
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
Jmsg(jcr, M_FATAL, 0,
_("Job canceled because max run sched time exceeded.\n"));
}
@@ -676,7 +677,7 @@ bool CancelJob(UaContext* ua, JobControlRecord* jcr)
char ed1[50];
int32_t old_status = jcr->JobStatus;
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
switch (old_status) {
case JS_Created:
@@ -740,17 +741,17 @@ static void JobMonitorWatchdog(watchdog_t* self)
/* check MaxWaitTime */
if (JobCheckMaxwaittime(jcr)) {
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
Qmsg(jcr, M_FATAL, 0, _("Max wait time exceeded. Job canceled.\n"));
cancel = true;
/* check MaxRunTime */
} else if (JobCheckMaxruntime(jcr)) {
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
Qmsg(jcr, M_FATAL, 0, _("Max run time exceeded. Job canceled.\n"));
cancel = true;
/* check MaxRunSchedTime */
} else if (JobCheckMaxrunschedtime(jcr)) {
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
Qmsg(jcr, M_FATAL, 0, _("Max run sched time exceeded. Job canceled.\n"));
cancel = true;
}
@@ -943,7 +944,7 @@ bool AllowDuplicateJob(JobControlRecord* jcr)
// cancel_dup will be done below
if (cancel_me) {
/* Zap current job */
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
Jmsg(jcr, M_FATAL, 0,
_("JobId %d already running. Duplicate job not allowed.\n"),
djcr->JobId);
@@ -978,13 +979,13 @@ bool AllowDuplicateJob(JobControlRecord* jcr)
djcr->JobId);
CancelJob(ua, djcr);
Bmicrosleep(0, 500000);
- djcr->setJobStatus(JS_Canceled);
+ djcr->setJobStatusWithPriorityCheck(JS_Canceled);
CancelJob(ua, djcr);
FreeUaContext(ua);
Dmsg2(800, "Cancel dup %p JobId=%d\n", djcr, djcr->JobId);
} else {
// Zap current job
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
Jmsg(jcr, M_FATAL, 0,
_("JobId %d already running. Duplicate job not allowed.\n"),
djcr->JobId);
diff --git a/core/src/dird/jobq.cc b/core/src/dird/jobq.cc
index 5d1bd8c17..d9a6883d6 100644
--- a/core/src/dird/jobq.cc
+++ b/core/src/dird/jobq.cc
@@ -167,7 +167,7 @@ extern "C" void* sched_wait(void* arg)
Dmsg0(2300, "Enter sched_wait.\n");
free(arg);
time_t wtime = jcr->sched_time - time(NULL);
- jcr->setJobStatus(JS_WaitStartTime);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitStartTime);
// Wait until scheduled time arrives
if (wtime > 0) {
@@ -509,7 +509,7 @@ extern "C" void* jobq_server(void* arg)
|| (jcr->JobPriority < Priority
&& jcr->impl->res.job->allow_mixed_priority
&& running_allow_mix))) {
- jcr->setJobStatus(JS_WaitPriority);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitPriority);
break;
}
@@ -653,7 +653,7 @@ static bool RescheduleJob(JobControlRecord* jcr, jobq_t* jq, jobq_item_t* je)
* conflicts. We now create a new job, copying the
* appropriate fields.
*/
- jcr->setJobStatus(JS_WaitStartTime);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitStartTime);
njcr = NewDirectorJcr(DirdFreeJcr);
SetJcrDefaults(njcr, jcr->impl->res.job);
njcr->impl->reschedule_count = jcr->impl->reschedule_count;
@@ -676,7 +676,7 @@ static bool RescheduleJob(JobControlRecord* jcr, jobq_t* jq, jobq_item_t* je)
njcr->impl->res.run_next_pool_override
= jcr->impl->res.run_next_pool_override;
njcr->JobStatus = -1;
- njcr->setJobStatus(jcr->JobStatus);
+ njcr->setJobStatusWithPriorityCheck(jcr->JobStatus);
if (jcr->impl->res.read_storage) {
CopyRstorage(njcr, jcr->impl->res.read_storage_list, _("previous Job"));
} else {
@@ -747,7 +747,7 @@ static bool AcquireResources(JobControlRecord* jcr)
if (jcr->impl->res.read_storage) {
if (!IncReadStore(jcr)) {
- jcr->setJobStatus(JS_WaitStoreRes);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitStoreRes);
return false;
}
@@ -756,7 +756,7 @@ static bool AcquireResources(JobControlRecord* jcr)
if (jcr->impl->res.write_storage) {
if (!IncWriteStore(jcr)) {
DecReadStore(jcr);
- jcr->setJobStatus(JS_WaitStoreRes);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitStoreRes);
return false;
}
@@ -766,7 +766,7 @@ static bool AcquireResources(JobControlRecord* jcr)
// Back out previous locks
DecWriteStore(jcr);
DecReadStore(jcr);
- jcr->setJobStatus(JS_WaitClientRes);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitClientRes);
return false;
}
@@ -776,7 +776,7 @@ static bool AcquireResources(JobControlRecord* jcr)
DecWriteStore(jcr);
DecReadStore(jcr);
DecClientConcurrency(jcr);
- jcr->setJobStatus(JS_WaitJobRes);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitJobRes);
return false;
}
diff --git a/core/src/dird/migrate.cc b/core/src/dird/migrate.cc
index 1b52f183f..0194c7036 100644
--- a/core/src/dird/migrate.cc
+++ b/core/src/dird/migrate.cc
@@ -1047,7 +1047,7 @@ bool DoMigrationInit(JobControlRecord* jcr)
}
if (jcr->impl->previous_jr.JobId == 0 || jcr->impl->ExpectedFiles == 0) {
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
Dmsg1(dbglevel, "JobId=%d expected files == 0\n", (int)jcr->JobId);
if (jcr->impl->previous_jr.JobId == 0) {
Jmsg(jcr, M_INFO, 0, _("No previous Job found to %s.\n"),
@@ -1242,7 +1242,7 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
_("JobId %s already %s probably by another Job. %s stopped.\n"),
edit_int64(jcr->impl->previous_jr.JobId, ed1),
jcr->get_ActionName(true), jcr->get_OperationName());
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
MigrationCleanup(jcr, jcr->JobStatus);
return true;
}
@@ -1252,7 +1252,7 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
_("JobId %s cannot %s using the same read and write storage.\n"),
edit_int64(jcr->impl->previous_jr.JobId, ed1),
jcr->get_OperationName());
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
MigrationCleanup(jcr, jcr->JobStatus);
return true;
}
@@ -1308,7 +1308,7 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
jcr->impl->res.write_storage_list = write_storage_list;
// Start conversation with Reading Storage daemon
- jcr->setJobStatus(JS_WaitSD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) {
goto bail_out;
}
@@ -1317,7 +1317,7 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
Dmsg0(110, "Open connection with writing storage daemon\n");
// Start conversation with Writing Storage daemon
- mig_jcr->setJobStatus(JS_WaitSD);
+ mig_jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
if (!ConnectToStorageDaemon(mig_jcr, 10, me->SDConnectTimeout, true)) {
goto bail_out;
}
@@ -1344,8 +1344,8 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
// Open a message channel connection with the Storage daemon.
Dmsg0(110, "Open connection with storage daemon\n");
- jcr->setJobStatus(JS_WaitSD);
- mig_jcr->setJobStatus(JS_WaitSD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
+ mig_jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
// Start conversation with Storage daemon
if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) {
@@ -1377,7 +1377,7 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
jcr->start_time = time(NULL);
jcr->impl->jr.StartTime = jcr->start_time;
jcr->impl->jr.JobTDate = jcr->start_time;
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
// Update job start record for this migration control job
if (!jcr->db->UpdateJobStartRecord(jcr, &jcr->impl->jr)) {
@@ -1391,7 +1391,7 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
mig_jcr->start_time = time(NULL);
mig_jcr->impl->jr.StartTime = mig_jcr->start_time;
mig_jcr->impl->jr.JobTDate = mig_jcr->start_time;
- mig_jcr->setJobStatus(JS_Running);
+ mig_jcr->setJobStatusWithPriorityCheck(JS_Running);
// Update job start record for the real migration backup job
if (!mig_jcr->db->UpdateJobStartRecord(mig_jcr, &mig_jcr->impl->jr)) {
@@ -1455,8 +1455,8 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
// Now start a Storage daemon message thread
if (!StartStorageDaemonMessageThread(jcr)) { goto bail_out; }
- jcr->setJobStatus(JS_Running);
- mig_jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
+ mig_jcr->setJobStatusWithPriorityCheck(JS_Running);
/*
* Pickup Job termination data
@@ -1467,13 +1467,13 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
if (jcr->impl->remote_replicate) {
WaitForStorageDaemonTermination(jcr);
WaitForStorageDaemonTermination(mig_jcr);
- jcr->setJobStatus(jcr->impl->SDJobStatus);
+ jcr->setJobStatusWithPriorityCheck(jcr->impl->SDJobStatus);
if (mig_jcr->batch_started) {
mig_jcr->db_batch->WriteBatchFileRecords(mig_jcr);
}
} else {
WaitForStorageDaemonTermination(jcr);
- jcr->setJobStatus(jcr->impl->SDJobStatus);
+ jcr->setJobStatusWithPriorityCheck(jcr->impl->SDJobStatus);
if (jcr->batch_started) { jcr->db_batch->WriteBatchFileRecords(jcr); }
}
@@ -1515,10 +1515,10 @@ static inline bool DoMigrationSelection(JobControlRecord* jcr)
retval = getJobs_to_migrate(jcr);
if (retval) {
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
MigrationCleanup(jcr, jcr->JobStatus);
} else {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
return retval;
@@ -1817,7 +1817,7 @@ void MigrationCleanup(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);
}
UpdateBootstrapFile(mig_jcr);
diff --git a/core/src/dird/msgchan.cc b/core/src/dird/msgchan.cc
index 0473466b4..eea3cbd3f 100644
--- a/core/src/dird/msgchan.cc
+++ b/core/src/dird/msgchan.cc
@@ -103,7 +103,7 @@ static inline bool SendBootstrapFileToSd(JobControlRecord* jcr,
BErrNo be;
Jmsg(jcr, M_FATAL, 0, _("Could not open bootstrap file %s: ERR=%s\n"),
jcr->RestoreBootstrap, be.bstrerror());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
sd->fsend(bootstrap);
@@ -492,7 +492,7 @@ void WaitForStorageDaemonTermination(JobControlRecord* jcr)
/* Give SD 30 seconds to clean up after cancel */
if (cancel_count == 6) { break; }
}
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
}
} /* namespace directordaemon */
diff --git a/core/src/dird/ndmp_dma_backup_NDMP_BAREOS.cc b/core/src/dird/ndmp_dma_backup_NDMP_BAREOS.cc
index a4d614770..4ea73026d 100644
--- a/core/src/dird/ndmp_dma_backup_NDMP_BAREOS.cc
+++ b/core/src/dird/ndmp_dma_backup_NDMP_BAREOS.cc
@@ -184,7 +184,7 @@ bool DoNdmpBackup(JobControlRecord* jcr)
Jmsg(jcr, M_INFO, 0, _("Start NDMP 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)) {
@@ -215,7 +215,7 @@ bool DoNdmpBackup(JobControlRecord* jcr)
if (jcr->impl->res.write_storage->paired_storage) {
SetPairedStorage(jcr);
- jcr->setJobStatus(JS_WaitSD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) {
return false;
}
@@ -447,7 +447,7 @@ cleanup:
bail_out:
// Error handling of failed Job.
status = JS_ErrorTerminated;
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
if (jcr->store_bsock) {
CancelStorageDaemonJob(jcr);
diff --git a/core/src/dird/ndmp_dma_backup_NDMP_NATIVE.cc b/core/src/dird/ndmp_dma_backup_NDMP_NATIVE.cc
index 71b8cfc30..98aa86f71 100644
--- a/core/src/dird/ndmp_dma_backup_NDMP_NATIVE.cc
+++ b/core/src/dird/ndmp_dma_backup_NDMP_NATIVE.cc
@@ -2,7 +2,7 @@
BAREOS® - Backup Archiving REcovery Open Sourced
Copyright (C) 2011-2015 Planets Communications B.V.
- Copyright (C) 2013-2019 Bareos GmbH & Co. KG
+ Copyright (C) 2013-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -186,7 +186,7 @@ bool DoNdmpBackupNdmpNative(JobControlRecord* jcr)
Jmsg(jcr, M_INFO, 0, _("Start NDMP 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)) {
@@ -401,7 +401,7 @@ cleanup:
bail_out:
// Error handling of failed Job.
status = JS_ErrorTerminated;
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
ok_out:
if (nis) {
diff --git a/core/src/dird/ndmp_dma_backup_common.cc b/core/src/dird/ndmp_dma_backup_common.cc
index efe385d0e..413343993 100644
--- a/core/src/dird/ndmp_dma_backup_common.cc
+++ b/core/src/dird/ndmp_dma_backup_common.cc
@@ -281,7 +281,7 @@ void NdmpBackupCleanup(JobControlRecord* jcr, int TermCode)
Jmsg(jcr, M_WARNING, 0,
_("Error getting Job record for Job report: ERR=%s"),
jcr->db->strerror());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
bstrncpy(cr.Name, jcr->impl->res.client->resource_name_, sizeof(cr.Name));
diff --git a/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc b/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
index e879a1f31..9a2680cb5 100644
--- a/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
+++ b/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
@@ -325,7 +325,7 @@ bool DoNdmpRestoreInit(JobControlRecord* jcr)
static inline int NdmpWaitForJobTermination(JobControlRecord* jcr)
{
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
/*
* Force cancel in SD if failing, but not for Incomplete jobs
@@ -429,7 +429,7 @@ static inline bool DoNdmpRestoreBootstrap(JobControlRecord* jcr)
*
*/
Dmsg0(10, "Open connection to storage daemon\n");
- jcr->setJobStatus(JS_WaitSD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
// Start conversation with Storage daemon
if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) {
@@ -442,7 +442,7 @@ static inline bool DoNdmpRestoreBootstrap(JobControlRecord* jcr)
goto cleanup;
}
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
// Send the bootstrap file -- what Volumes/files to restore
if (!SendBootstrapFile(jcr, sd, info)
diff --git a/core/src/dird/ndmp_dma_restore_NDMP_NATIVE.cc b/core/src/dird/ndmp_dma_restore_NDMP_NATIVE.cc
index a2916f54d..023e12233 100644
--- a/core/src/dird/ndmp_dma_restore_NDMP_NATIVE.cc
+++ b/core/src/dird/ndmp_dma_restore_NDMP_NATIVE.cc
@@ -305,7 +305,7 @@ static bool DoNdmpNativeRestore(JobControlRecord* jcr)
ndmp_sess.dump_media_info = 1; // for debugging
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
// Initialize the session structure.
if (ndma_session_initialize(&ndmp_sess)) { goto cleanup_ndmp; }
diff --git a/core/src/dird/restore.cc b/core/src/dird/restore.cc
index f14bd02cb..bca1b0a45 100644
--- a/core/src/dird/restore.cc
+++ b/core/src/dird/restore.cc
@@ -3,7 +3,7 @@
Copyright (C) 2000-2011 Free Software Foundation Europe e.V.
Copyright (C) 2011-2016 Planets Communications B.V.
- Copyright (C) 2013-2021 Bareos GmbH & Co. KG
+ Copyright (C) 2013-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -153,7 +153,7 @@ static inline bool DoNativeRestoreBootstrap(JobControlRecord* jcr)
*
*/
Dmsg0(10, "Open connection with storage daemon\n");
- jcr->setJobStatus(JS_WaitSD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
// Start conversation with Storage daemon
if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) {
@@ -168,7 +168,7 @@ static inline bool DoNativeRestoreBootstrap(JobControlRecord* jcr)
if (first_time) {
// Start conversation with File daemon
- jcr->setJobStatus(JS_WaitFD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitFD);
jcr->impl->keep_sd_auth_key = true; /* don't clear the sd_auth_key now */
if (!ConnectToFileDaemon(jcr, 10, me->FDConnectTimeout, true)) {
@@ -191,7 +191,7 @@ static inline bool DoNativeRestoreBootstrap(JobControlRecord* jcr)
}
}
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
// Send the bootstrap file -- what Volumes/files to restore
bool success = false;
diff --git a/core/src/dird/storage.cc b/core/src/dird/storage.cc
index 34038ed89..47b464957 100644
--- a/core/src/dird/storage.cc
+++ b/core/src/dird/storage.cc
@@ -480,7 +480,7 @@ bool SelectNextRstore(JobControlRecord* jcr, bootstrap_info& info)
R_STORAGE, info.storage))) {
Jmsg(jcr, M_FATAL, 0, _("Could not get storage resource '%s'.\n"),
info.storage);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -498,13 +498,13 @@ bool SelectNextRstore(JobControlRecord* jcr, bootstrap_info& info)
DecReadStore(jcr);
FreeRstorage(jcr);
SetRstorage(jcr, &ustore);
- jcr->setJobStatus(JS_WaitSD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
// Wait for up to 6 hours to increment read stoage counter
for (int i = 0; i < MAX_TRIES; i++) {
// Try to get read storage counter incremented
if (IncReadStore(jcr)) {
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
return true;
}
Bmicrosleep(10, 0); /* Sleep 10 secs */
diff --git a/core/src/dird/ua_server.cc b/core/src/dird/ua_server.cc
index 280f4ebdf..8bfb3410d 100644
--- a/core/src/dird/ua_server.cc
+++ b/core/src/dird/ua_server.cc
@@ -73,7 +73,7 @@ JobControlRecord* new_control_jcr(const char* base_name, int job_type)
jcr->sched_time = jcr->start_time;
jcr->setJobType(job_type);
jcr->setJobLevel(L_NONE);
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
jcr->JobId = 0;
return jcr;
diff --git a/core/src/dird/vbackup.cc b/core/src/dird/vbackup.cc
index e06c12619..5370a6616 100644
--- a/core/src/dird/vbackup.cc
+++ b/core/src/dird/vbackup.cc
@@ -319,7 +319,7 @@ bool DoNativeVbackup(JobControlRecord* jcr)
* daemon.
*/
Dmsg0(110, "Open connection with storage daemon\n");
- jcr->setJobStatus(JS_WaitSD);
+ jcr->setJobStatusWithPriorityCheck(JS_WaitSD);
// Start conversation with Storage daemon
if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) {
@@ -347,7 +347,7 @@ bool DoNativeVbackup(JobControlRecord* jcr)
jcr->start_time = time(NULL);
jcr->impl->jr.StartTime = jcr->start_time;
jcr->impl->jr.JobTDate = jcr->start_time;
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
// Update job start record
if (!jcr->db->UpdateJobStartRecord(jcr, &jcr->impl->jr)) {
@@ -368,14 +368,14 @@ bool DoNativeVbackup(JobControlRecord* jcr)
// Now start a Storage daemon message thread
if (!StartStorageDaemonMessageThread(jcr)) { return false; }
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
/*
* Pickup Job termination data
* Note, the SD stores in jcr->JobFiles/ReadBytes/JobBytes/JobErrors
*/
WaitForStorageDaemonTermination(jcr);
- jcr->setJobStatus(jcr->impl->SDJobStatus);
+ jcr->setJobStatusWithPriorityCheck(jcr->impl->SDJobStatus);
jcr->db_batch->WriteBatchFileRecords(
jcr); /* used by bulk batch file insert */
if (!jcr->is_JobStatus(JS_Terminated)) { return false; }
@@ -444,7 +444,7 @@ void NativeVbackupCleanup(JobControlRecord* jcr, int TermCode, int JobLevel)
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));
diff --git a/core/src/dird/verify.cc b/core/src/dird/verify.cc
index 17a8d3b93..d2c944f93 100644
--- a/core/src/dird/verify.cc
+++ b/core/src/dird/verify.cc
@@ -237,7 +237,7 @@ bool DoVerify(JobControlRecord* jcr)
switch (JobLevel) {
case L_VERIFY_VOLUME_TO_CATALOG:
// Start conversation with Storage daemon
- jcr->setJobStatus(JS_Blocked);
+ jcr->setJobStatusWithPriorityCheck(JS_Blocked);
if (!ConnectToStorageDaemon(jcr, 10, me->SDConnectTimeout, true)) {
return false;
}
@@ -260,7 +260,7 @@ bool DoVerify(JobControlRecord* jcr)
}
// OK, now connect to the File daemon and ask him for the files.
- jcr->setJobStatus(JS_Blocked);
+ jcr->setJobStatusWithPriorityCheck(JS_Blocked);
if (!ConnectToFileDaemon(jcr, 10, me->FDConnectTimeout, true)) {
goto bail_out;
}
@@ -278,7 +278,7 @@ bool DoVerify(JobControlRecord* jcr)
break;
default:
// OK, now connect to the File daemon and ask him for the files.
- jcr->setJobStatus(JS_Blocked);
+ jcr->setJobStatusWithPriorityCheck(JS_Blocked);
if (!ConnectToFileDaemon(jcr, 10, me->FDConnectTimeout, true)) {
goto bail_out;
}
@@ -287,7 +287,7 @@ bool DoVerify(JobControlRecord* jcr)
break;
}
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
Dmsg0(30, ">filed: Send include list\n");
if (!SendIncludeList(jcr)) { goto bail_out; }
@@ -661,7 +661,7 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
&jcr->impl->previous_jr, &fdbr)) {
Jmsg(jcr, M_INFO, 0, _("New file: %s\n"), jcr->impl->fname);
Dmsg1(020, _("File not in catalog: %s\n"), jcr->impl->fname);
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
continue;
} else {
/*
@@ -689,7 +689,7 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
_(" st_ino differ. Cat: %s File: %s\n"),
edit_uint64((uint64_t)statc.st_ino, ed1),
edit_uint64((uint64_t)statf.st_ino, ed2));
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 'p': /* permissions bits */
@@ -698,7 +698,7 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
Jmsg(jcr, M_INFO, 0,
_(" st_mode differ. Cat: %x File: %x\n"),
(uint32_t)statc.st_mode, (uint32_t)statf.st_mode);
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 'n': /* number of links */
@@ -707,7 +707,7 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
Jmsg(jcr, M_INFO, 0,
_(" st_nlink differ. Cat: %d File: %d\n"),
(uint32_t)statc.st_nlink, (uint32_t)statf.st_nlink);
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 'u': /* user id */
@@ -716,7 +716,7 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
Jmsg(jcr, M_INFO, 0,
_(" st_uid differ. Cat: %u File: %u\n"),
(uint32_t)statc.st_uid, (uint32_t)statf.st_uid);
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 'g': /* group id */
@@ -725,7 +725,7 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
Jmsg(jcr, M_INFO, 0,
_(" st_gid differ. Cat: %u File: %u\n"),
(uint32_t)statc.st_gid, (uint32_t)statf.st_gid);
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 's': /* size */
@@ -735,28 +735,28 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
_(" st_size differ. Cat: %s File: %s\n"),
edit_uint64((uint64_t)statc.st_size, ed1),
edit_uint64((uint64_t)statf.st_size, ed2));
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 'a': /* access time */
if (statc.st_atime != statf.st_atime) {
PrtFname(jcr);
Jmsg(jcr, M_INFO, 0, _(" st_atime differs\n"));
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 'm':
if (statc.st_mtime != statf.st_mtime) {
PrtFname(jcr);
Jmsg(jcr, M_INFO, 0, _(" st_mtime differs\n"));
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 'c': /* ctime */
if (statc.st_ctime != statf.st_ctime) {
PrtFname(jcr);
Jmsg(jcr, M_INFO, 0, _(" st_ctime differs\n"));
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case 'd': /* file size decrease */
@@ -766,7 +766,7 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
_(" st_size decrease. Cat: %s File: %s\n"),
edit_uint64((uint64_t)statc.st_size, ed1),
edit_uint64((uint64_t)statf.st_size, ed2));
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
break;
case '5': /* compare MD5 */
@@ -813,7 +813,7 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
PrtFname(jcr);
Jmsg(jcr, M_INFO, 0, _(" %s differs. File=%s Cat=%s\n"),
stream_to_ascii(stream), buf.c_str(), fdbr.Digest);
- jcr->setJobStatus(JS_Differences);
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
}
do_Digest = CRYPTO_DIGEST_NONE;
}
@@ -842,7 +842,9 @@ void GetAttributesAndCompareToCatalog(JobControlRecord* jcr, JobId_t JobId)
JobId, jcr->JobId);
/* MissingHandler is called for each file found */
jcr->db->SqlQuery(buf.c_str(), MissingHandler, (void*)jcr);
- if (jcr->impl->fn_printed) { jcr->setJobStatus(JS_Differences); }
+ if (jcr->impl->fn_printed) {
+ jcr->setJobStatusWithPriorityCheck(JS_Differences);
+ }
bail_out:
FreePoolMemory(fname);
diff --git a/core/src/filed/backup.cc b/core/src/filed/backup.cc
index 371bb32c3..e81f7cea9 100644
--- a/core/src/filed/backup.cc
+++ b/core/src/filed/backup.cc
@@ -105,7 +105,7 @@ bool BlastDataToStorageDaemon(JobControlRecord* jcr,
sd = jcr->store_bsock;
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
Dmsg1(300, "filed: opened data connection %d to stored\n", sd->fd_);
@@ -120,7 +120,7 @@ bool BlastDataToStorageDaemon(JobControlRecord* jcr,
buf_size = 0; /* use default */
}
if (!sd->SetBufferSize(buf_size, BNET_SETBUF_WRITE)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
Jmsg(jcr, M_FATAL, 0, _("Cannot set buffer size FD->SD.\n"));
return false;
}
@@ -160,7 +160,7 @@ bool BlastDataToStorageDaemon(JobControlRecord* jcr,
// Subroutine SaveFile() is called for each file
if (!FindFiles(jcr, (FindFilesPacket*)jcr->impl->ff, SaveFile, PluginSave)) {
ok = false; /* error */
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
if (have_acl && jcr->impl->acl_data->u.build->nr_errors > 0) {
@@ -1214,7 +1214,7 @@ bool EncodeAndSendAttributes(JobControlRecord* jcr,
// Debug code: check if we must hangup
if (hangup && (jcr->JobFiles > (uint32_t)hangup)) {
- jcr->setJobStatus(JS_Incomplete);
+ jcr->setJobStatusWithPriorityCheck(JS_Incomplete);
Jmsg1(jcr, M_FATAL, 0, "Debug hangup requested after %d files.\n", hangup);
SetHangup(0);
return false;
diff --git a/core/src/filed/compression.cc b/core/src/filed/compression.cc
index de1bea4f8..1c62c50d8 100644
--- a/core/src/filed/compression.cc
+++ b/core/src/filed/compression.cc
@@ -3,7 +3,7 @@
Copyright (C) 2000-2011 Free Software Foundation Europe e.V.
Copyright (C) 2011-2012 Planets Communications B.V.
- Copyright (C) 2013-2019 Bareos GmbH & Co. KG
+ Copyright (C) 2013-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -166,7 +166,7 @@ bool SetupCompressionContext(b_ctx& bctx)
!= Z_OK) {
Jmsg(bctx.jcr, M_FATAL, 0,
_("Compression deflateParams error: %d\n"), zstat);
- bctx.jcr->setJobStatus(JS_ErrorTerminated);
+ bctx.jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto bail_out;
}
}
@@ -203,7 +203,7 @@ bool SetupCompressionContext(b_ctx& bctx)
!= Z_OK) {
Jmsg(bctx.jcr, M_FATAL, 0,
_("Compression fastlzlibSetCompressor error: %d\n"), zstat);
- bctx.jcr->setJobStatus(JS_ErrorTerminated);
+ bctx.jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto bail_out;
}
}
diff --git a/core/src/filed/dir_cmd.cc b/core/src/filed/dir_cmd.cc
index 8ecaa181d..773a0cfa5 100644
--- a/core/src/filed/dir_cmd.cc
+++ b/core/src/filed/dir_cmd.cc
@@ -757,7 +757,7 @@ static bool CancelCmd(JobControlRecord* jcr)
dir->fsend(_("2901 Job %s not found.\n"), Job);
} else {
GeneratePluginEvent(cjcr, bEventCancelCommand, nullptr);
- cjcr->setJobStatus(JS_Canceled);
+ cjcr->setJobStatusWithPriorityCheck(JS_Canceled);
if (cjcr->store_bsock) {
cjcr->store_bsock->SetTimedOut();
cjcr->store_bsock->SetTerminated();
@@ -1332,7 +1332,7 @@ static bool BootstrapCmd(JobControlRecord* jcr)
*/
while (dir->recv() >= 0) {}
FreeBootstrap(jcr);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -1878,7 +1878,7 @@ static bool BackupCmd(JobControlRecord* jcr)
goto cleanup;
}
- jcr->setJobStatus(JS_Blocked);
+ jcr->setJobStatusWithPriorityCheck(JS_Blocked);
jcr->setJobType(JT_BACKUP);
Dmsg1(100, "begin backup ff=%p\n", jcr->impl->ff);
@@ -1999,11 +1999,11 @@ static bool BackupCmd(JobControlRecord* jcr)
// Send Files to Storage daemon
Dmsg1(110, "begin blast ff=%p\n", (FindFilesPacket*)jcr->impl->ff);
if (!BlastDataToStorageDaemon(jcr, nullptr, cipher)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
BnetSuppressErrorMessages(sd, 1);
Dmsg0(110, "Error in blast_data.\n");
} else {
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
/* Note, the above set status will not override an error */
if (!jcr->IsTerminatedOk()) {
BnetSuppressErrorMessages(sd, 1);
@@ -2011,7 +2011,7 @@ static bool BackupCmd(JobControlRecord* jcr)
}
// Expect to get response to append_data from Storage daemon
if (!response(jcr, sd, OK_append, "Append Data")) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto cleanup;
}
@@ -2019,7 +2019,7 @@ static bool BackupCmd(JobControlRecord* jcr)
sd->fsend(append_end, jcr->impl->Ticket);
/* Get end OK */
if (!response(jcr, sd, OK_end, "Append End")) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto cleanup;
}
@@ -2277,14 +2277,14 @@ static bool RestoreCmd(JobControlRecord* jcr)
dir->fsend(OKrestore);
Dmsg1(110, "filed>dird: %s", dir->msg);
- jcr->setJobStatus(JS_Blocked);
+ jcr->setJobStatusWithPriorityCheck(JS_Blocked);
if (!OpenSdReadSession(jcr)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto bail_out;
}
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
// Do restore of files and data
StartDirHeartbeat(jcr);
@@ -2314,9 +2314,9 @@ static bool RestoreCmd(JobControlRecord* jcr)
StopDirHeartbeat(jcr);
if (jcr->JobWarnings) {
- jcr->setJobStatus(JS_Warnings);
+ jcr->setJobStatusWithPriorityCheck(JS_Warnings);
} else {
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
}
// Send Close session command to Storage daemon
@@ -2361,7 +2361,9 @@ static bool RestoreCmd(JobControlRecord* jcr)
bail_out:
BfreeAndNull(jcr->where);
- if (jcr->JobErrors) { jcr->setJobStatus(JS_ErrorTerminated); }
+ if (jcr->JobErrors) {
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
+ }
Dmsg0(100, "Done in job.c\n");
diff --git a/core/src/filed/estimate.cc b/core/src/filed/estimate.cc
index a423cbc23..167107ea3 100644
--- a/core/src/filed/estimate.cc
+++ b/core/src/filed/estimate.cc
@@ -40,7 +40,7 @@ int MakeEstimate(JobControlRecord* jcr)
{
int status;
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
SetFindOptions((FindFilesPacket*)jcr->impl->ff, jcr->impl->incremental,
jcr->impl->since_time);
diff --git a/core/src/filed/restore.cc b/core/src/filed/restore.cc
index 5458f80e8..a11cff2f8 100644
--- a/core/src/filed/restore.cc
+++ b/core/src/filed/restore.cc
@@ -414,7 +414,7 @@ void DoRestore(JobControlRecord* jcr)
rctx.jcr = jcr;
sd = jcr->store_bsock;
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
LockRes(my_config);
ClientResource* client
@@ -426,7 +426,7 @@ void DoRestore(JobControlRecord* jcr)
buf_size = 0; /* use default */
}
if (!BnetSetBufferSize(sd, buf_size, BNET_SETBUF_WRITE)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return;
}
jcr->buf_size = sd->message_length;
@@ -1040,11 +1040,11 @@ void DoRestore(JobControlRecord* jcr)
}
if (!ClosePreviousStream(jcr, rctx)) { goto bail_out; }
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
goto ok_out;
bail_out:
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
ok_out:
#ifdef HAVE_WIN32
diff --git a/core/src/filed/sd_cmds.cc b/core/src/filed/sd_cmds.cc
index 91991ab3f..879fe9592 100644
--- a/core/src/filed/sd_cmds.cc
+++ b/core/src/filed/sd_cmds.cc
@@ -1,7 +1,7 @@
/*
BAREOS® - Backup Archiving REcovery Open Sourced
- Copyright (C) 2013-2019 Bareos GmbH & Co. KG
+ Copyright (C) 2013-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -84,7 +84,7 @@ void* handle_stored_connection(BareosSocket* sd)
if (!AuthenticateStoragedaemon(jcr)) {
Dmsg1(50, "Authentication failed Job %s\n", jcr->Job);
Jmsg(jcr, M_FATAL, 0, _("Unable to authenticate Storage daemon\n"));
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
} else {
Dmsg2(50, "OK Authentication jid=%u Job %s\n", (uint32_t)jcr->JobId,
jcr->Job);
diff --git a/core/src/filed/verify.cc b/core/src/filed/verify.cc
index 544010859..01b05a127 100644
--- a/core/src/filed/verify.cc
+++ b/core/src/filed/verify.cc
@@ -62,7 +62,7 @@ static bool calculate_file_chksum(JobControlRecord* jcr,
*/
void DoVerify(JobControlRecord* jcr)
{
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
jcr->buf_size = DEFAULT_NETWORK_BUFFER_SIZE;
if ((jcr->impl->big_buf = (char*)malloc(jcr->buf_size)) == NULL) {
Jmsg1(jcr, M_ABORT, 0, _("Cannot malloc %d network read buffer\n"),
@@ -79,7 +79,7 @@ void DoVerify(JobControlRecord* jcr)
free(jcr->impl->big_buf);
jcr->impl->big_buf = NULL;
}
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
}
/**
diff --git a/core/src/filed/verify_vol.cc b/core/src/filed/verify_vol.cc
index adb2b0c6b..dcaff73b8 100644
--- a/core/src/filed/verify_vol.cc
+++ b/core/src/filed/verify_vol.cc
@@ -2,7 +2,7 @@
BAREOS® - Backup Archiving REcovery Open Sourced
Copyright (C) 2002-2010 Free Software Foundation Europe e.V.
- Copyright (C) 2016-2020 Bareos GmbH & Co. KG
+ Copyright (C) 2016-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -62,11 +62,11 @@ void DoVerifyVolume(JobControlRecord* jcr)
sd = jcr->store_bsock;
if (!sd) {
Jmsg(jcr, M_FATAL, 0, _("Storage command not issued before Verify.\n"));
- jcr->setJobStatus(JS_FatalError);
+ jcr->setJobStatusWithPriorityCheck(JS_FatalError);
return;
}
dir = jcr->dir_bsock;
- jcr->setJobStatus(JS_Running);
+ jcr->setJobStatusWithPriorityCheck(JS_Running);
LockRes(my_config);
ClientResource* client
@@ -79,7 +79,7 @@ void DoVerifyVolume(JobControlRecord* jcr)
buf_size = 0; /* use default */
}
if (!BnetSetBufferSize(sd, buf_size, BNET_SETBUF_WRITE)) {
- jcr->setJobStatus(JS_FatalError);
+ jcr->setJobStatusWithPriorityCheck(JS_FatalError);
return;
}
jcr->buf_size = sd->message_length;
@@ -264,11 +264,11 @@ void DoVerifyVolume(JobControlRecord* jcr)
} /* end switch */
} /* end while bnet_get */
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
goto ok_out;
bail_out:
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
ok_out:
CleanupCompression(jcr);
diff --git a/core/src/include/jcr.h b/core/src/include/jcr.h
index f338f88a5..816aa1a92 100644
--- a/core/src/include/jcr.h
+++ b/core/src/include/jcr.h
@@ -132,7 +132,7 @@ class JobControlRecord {
bool IsPlugin() const { return (cmd_plugin || opt_plugin); }
const char* get_OperationName(); /**< in lib/jcr.c */
const char* get_ActionName(bool past = false); /**< in lib/jcr.c */
- void setJobStatus(int newJobStatus); /**< in lib/jcr.c */
+ void setJobStatusWithPriorityCheck(int newJobStatus); /**< in lib/jcr.c */
bool sendJobStatus(); /**< in lib/jcr.c */
bool sendJobStatus(int newJobStatus); /**< in lib/jcr.c */
bool JobReads(); /**< in lib/jcr.c */
diff --git a/core/src/lib/compression.cc b/core/src/lib/compression.cc
index e6ef413c1..ab507793d 100644
--- a/core/src/lib/compression.cc
+++ b/core/src/lib/compression.cc
@@ -3,7 +3,7 @@
Copyright (C) 2000-2011 Free Software Foundation Europe e.V.
Copyright (C) 2011-2012 Planets Communications B.V.
- Copyright (C) 2013-2021 Bareos GmbH & Co. KG
+ Copyright (C) 2013-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -304,7 +304,7 @@ static bool compress_with_zlib(JobControlRecord* jcr,
if ((zstat = deflate(pZlibStream, Z_FINISH)) != Z_STREAM_END) {
Jmsg(jcr, M_FATAL, 0, _("Compression deflate error: %d\n"), zstat);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -313,7 +313,7 @@ static bool compress_with_zlib(JobControlRecord* jcr,
// Reset zlib stream to be able to begin from scratch again
if ((zstat = deflateReset(pZlibStream)) != Z_OK) {
Jmsg(jcr, M_FATAL, 0, _("Compression deflateReset error: %d\n"), zstat);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -344,7 +344,7 @@ static bool compress_with_lzo(JobControlRecord* jcr,
if (lzores != LZO_E_OK || *compress_len > max_compress_len) {
// This should NEVER happen
Jmsg(jcr, M_FATAL, 0, _("Compression LZO error: %d\n"), lzores);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -376,7 +376,7 @@ static bool compress_with_fastlz(JobControlRecord* jcr,
if ((zstat = fastlzlibCompress(pZfastStream, Z_FINISH)) != Z_STREAM_END) {
Jmsg(jcr, M_FATAL, 0, _("Compression fastlzlibCompress error: %d\n"),
zstat);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -386,7 +386,7 @@ static bool compress_with_fastlz(JobControlRecord* jcr,
if ((zstat = fastlzlibCompressReset(pZfastStream)) != Z_OK) {
Jmsg(jcr, M_FATAL, 0, _("Compression fastlzlibCompressReset error: %d\n"),
zstat);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
diff --git a/core/src/lib/jcr.cc b/core/src/lib/jcr.cc
index cc1f1e072..c3de7a874 100644
--- a/core/src/lib/jcr.cc
+++ b/core/src/lib/jcr.cc
@@ -217,7 +217,7 @@ JobControlRecord::JobControlRecord()
JobId = 0;
setJobType(JT_SYSTEM); /* internal job until defined */
setJobLevel(L_NONE);
- setJobStatus(JS_Created); /* ready to run */
+ setJobStatusWithPriorityCheck(JS_Created); /* ready to run */
SetTimeoutHandler();
}
@@ -743,7 +743,7 @@ bool JobControlRecord::sendJobStatus()
bool JobControlRecord::sendJobStatus(int newJobStatus)
{
if (!is_JobStatus(newJobStatus)) {
- setJobStatus(newJobStatus);
+ setJobStatusWithPriorityCheck(newJobStatus);
if (dir_bsock) { return dir_bsock->fsend(Job_status, Job, JobStatus); }
}
@@ -756,7 +756,7 @@ void JobControlRecord::setJobStarted()
job_started_time = time(nullptr);
}
-void JobControlRecord::setJobStatus(int newJobStatus)
+void JobControlRecord::setJobStatusWithPriorityCheck(int newJobStatus)
{
int priority;
int old_priority = 0;
diff --git a/core/src/lib/message.cc b/core/src/lib/message.cc
index ed45a30aa..1c4e66176 100644
--- a/core/src/lib/message.cc
+++ b/core/src/lib/message.cc
@@ -1291,7 +1291,7 @@ void Jmsg(JobControlRecord* jcr, int type, utime_t mtime, const char* fmt, ...)
break;
case M_FATAL:
Mmsg(buf, _("%s JobId %u: Fatal error: "), my_name, JobId);
- if (jcr) { jcr->setJobStatus(JS_FatalError); }
+ if (jcr) { jcr->setJobStatusWithPriorityCheck(JS_FatalError); }
if (jcr && jcr->JobErrors == 0) { jcr->JobErrors = 1; }
break;
case M_ERROR:
diff --git a/core/src/lib/runscript.cc b/core/src/lib/runscript.cc
index ee16bf438..94f1bfeac 100644
--- a/core/src/lib/runscript.cc
+++ b/core/src/lib/runscript.cc
@@ -190,7 +190,7 @@ int RunScripts(JobControlRecord* jcr,
_("Runscript: run %s \"%s\" could not execute, "
"not in one of the allowed scripts dirs\n"),
label, script->command.c_str());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto bail_out;
}
@@ -274,7 +274,7 @@ bool RunScript::Run(JobControlRecord* jcr, const char* name)
bail_out:
/* cancel running job properly */
- if (fail_on_error) { jcr->setJobStatus(JS_ErrorTerminated); }
+ if (fail_on_error) { jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); }
Dmsg1(100, "runscript failed. fail_on_error=%d\n", fail_on_error);
return false;
}
diff --git a/core/src/plugins/stored/autoxflate/autoxflate-sd.cc b/core/src/plugins/stored/autoxflate/autoxflate-sd.cc
index d7c198a71..9dbe6d0ef 100644
--- a/core/src/plugins/stored/autoxflate/autoxflate-sd.cc
+++ b/core/src/plugins/stored/autoxflate/autoxflate-sd.cc
@@ -481,7 +481,7 @@ static bool SetupAutoDeflation(PluginContext* ctx, DeviceControlRecord* dcr)
!= Z_OK) {
Jmsg(ctx, M_FATAL,
_("autoxflate-sd: Compression deflateParams error: %d\n"), zstat);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto bail_out;
}
break;
@@ -517,7 +517,7 @@ static bool SetupAutoDeflation(PluginContext* ctx, DeviceControlRecord* dcr)
_("autoxflate-sd: Compression fastlzlibSetCompressor error: "
"%d\n"),
zstat);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
goto bail_out;
}
break;
diff --git a/core/src/stored/append.cc b/core/src/stored/append.cc
index 1c3336ec4..411890967 100644
--- a/core/src/stored/append.cc
+++ b/core/src/stored/append.cc
@@ -181,18 +181,18 @@ bool DoAppendData(JobControlRecord* jcr, BareosSocket* bs, const char* what)
jcr->impl->dcr->device_resource->max_network_buffer_size,
BNET_SETBUF_WRITE)) {
Jmsg0(jcr, M_FATAL, 0, _("Unable to set network buffer size.\n"));
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
if (!AcquireDeviceForAppend(jcr->impl->dcr)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
if (GeneratePluginEvent(jcr, bSdEventSetupRecordTranslation, jcr->impl->dcr)
!= bRC_OK) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -204,13 +204,13 @@ bool DoAppendData(JobControlRecord* jcr, BareosSocket* bs, const char* what)
Dmsg1(50, "Begin append device=%s\n", dev->print_name());
if (!BeginDataSpool(jcr->impl->dcr)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
if (!BeginAttributeSpool(jcr)) {
DiscardDataSpool(jcr->impl->dcr);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -223,7 +223,7 @@ bool DoAppendData(JobControlRecord* jcr, BareosSocket* bs, const char* what)
if (!WriteSessionLabel(jcr->impl->dcr, SOS_LABEL)) {
Jmsg1(jcr, M_FATAL, 0, _("Write session label failed. ERR=%s\n"),
dev->bstrerror());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
ok = false;
}
if (dev->VolCatInfo.VolCatName[0] == 0) {
@@ -403,7 +403,7 @@ bool DoAppendData(JobControlRecord* jcr, BareosSocket* bs, const char* what)
}
// Create Job status for end of session label
- jcr->setJobStatus(ok ? JS_Terminated : JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(ok ? JS_Terminated : JS_ErrorTerminated);
if (ok && bs == jcr->file_bsock) {
// Terminate connection with FD
@@ -429,7 +429,7 @@ bool DoAppendData(JobControlRecord* jcr, BareosSocket* bs, const char* what)
dev->bstrerror());
PossibleIncompleteJob(jcr, last_file_index);
}
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
ok = false;
}
Dmsg0(90, "back from write_end_session_label()\n");
@@ -443,7 +443,7 @@ bool DoAppendData(JobControlRecord* jcr, BareosSocket* bs, const char* what)
Dmsg0(100, _("Set ok=FALSE after WriteBlockToDevice.\n"));
PossibleIncompleteJob(jcr, last_file_index);
}
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
ok = false;
} else if (ok && !jcr->IsJobCanceled()) {
// Send attributes of the final partial block of the session
diff --git a/core/src/stored/bscan.cc b/core/src/stored/bscan.cc
index 041f0ee17..22dd2cc5f 100644
--- a/core/src/stored/bscan.cc
+++ b/core/src/stored/bscan.cc
@@ -699,7 +699,7 @@ static bool RecordCb(DeviceControlRecord* dcr, DeviceRecord* rec)
UpdateJobRecord(db, &jr, &elabel, rec);
mjcr->end_time = jr.EndTime;
- mjcr->setJobStatus(JS_Terminated);
+ mjcr->setJobStatusWithPriorityCheck(JS_Terminated);
// Create JobMedia record
mjcr->impl->read_dcr->VolLastIndex = dcr->VolLastIndex;
diff --git a/core/src/stored/btape.cc b/core/src/stored/btape.cc
index 5cacbf439..9a1c63a1a 100644
--- a/core/src/stored/btape.cc
+++ b/core/src/stored/btape.cc
@@ -2145,7 +2145,7 @@ static void fillcmd()
*/
Dmsg0(100, "just before acquire_device\n");
if (!AcquireDeviceForAppend(dcr)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
exit_code = 1;
return;
}
@@ -2154,7 +2154,7 @@ static void fillcmd()
Dmsg0(100, "Just after AcquireDeviceForAppend\n");
// Write Begin Session Record
if (!WriteSessionLabel(dcr, SOS_LABEL)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
Jmsg1(jcr, M_FATAL, 0, _("Write session label failed. ERR=%s\n"),
dev->bstrerror());
ok = false;
@@ -2255,10 +2255,10 @@ static void fillcmd()
Dmsg0(100, "Write_end_session_label()\n");
/* Create Job status for end of session label */
if (!JobCanceled(jcr) && ok) {
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
} else if (!ok) {
Pmsg0(000, _("Job canceled.\n"));
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
exit_code = 1;
}
if (!WriteSessionLabel(dcr, EOS_LABEL)) {
diff --git a/core/src/stored/dir_cmd.cc b/core/src/stored/dir_cmd.cc
index 078b21d1b..5e1180c52 100644
--- a/core/src/stored/dir_cmd.cc
+++ b/core/src/stored/dir_cmd.cc
@@ -518,7 +518,7 @@ static bool CancelCmd(JobControlRecord* cjcr)
}
oldStatus = jcr->JobStatus;
- jcr->setJobStatus(status);
+ jcr->setJobStatusWithPriorityCheck(status);
Dmsg2(800, "Cancel JobId=%d %p\n", jcr->JobId, jcr);
if (!jcr->authenticated
diff --git a/core/src/stored/fd_cmds.cc b/core/src/stored/fd_cmds.cc
index 30e2ad4c6..a8ce421ba 100644
--- a/core/src/stored/fd_cmds.cc
+++ b/core/src/stored/fd_cmds.cc
@@ -3,7 +3,7 @@
Copyright (C) 2000-2011 Free Software Foundation Europe e.V.
Copyright (C) 2011-2012 Planets Communications B.V.
- Copyright (C) 2013-2021 Bareos GmbH & Co. KG
+ Copyright (C) 2013-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -134,7 +134,7 @@ void* HandleFiledConnection(BareosSocket* fd, char* job_name)
if (!AuthenticateFiledaemon(jcr)) {
Dmsg1(50, "Authentication failed Job %s\n", jcr->Job);
Jmsg(jcr, M_FATAL, 0, _("Unable to authenticate File daemon\n"));
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
} else {
utime_t now;
@@ -177,7 +177,7 @@ void RunJob(JobControlRecord* jcr)
jcr->end_time = time(NULL);
DequeueMessages(jcr); /* send any queued messages */
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
GeneratePluginEvent(jcr, bSdEventJobEnd);
@@ -220,7 +220,7 @@ void DoFdCommands(JobControlRecord* jcr)
} else {
Jmsg0(jcr, M_FATAL, 0, _("Command error with FD, hanging up.\n"));
}
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
quit = true;
}
diff --git a/core/src/stored/job.cc b/core/src/stored/job.cc
index fd209fd79..f6a3d4318 100644
--- a/core/src/stored/job.cc
+++ b/core/src/stored/job.cc
@@ -98,7 +98,7 @@ bool job_cmd(JobControlRecord* jcr)
PmStrcpy(jcr->errmsg, dir->msg);
dir->fsend(BAD_job, status, jcr->errmsg);
Dmsg1(100, ">dird: %s", dir->msg);
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
@@ -346,7 +346,7 @@ bool FinishCmd(JobControlRecord* jcr)
jcr->end_time = time(NULL);
DequeueMessages(jcr); /* send any queued messages */
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
switch (jcr->getJobType()) {
case JT_BACKUP:
diff --git a/core/src/stored/mac.cc b/core/src/stored/mac.cc
index 38b952eff..9a24c02a6 100644
--- a/core/src/stored/mac.cc
+++ b/core/src/stored/mac.cc
@@ -158,7 +158,7 @@ static bool CloneRecordInternally(DeviceControlRecord* dcr, DeviceRecord* rec)
if (!WriteSessionLabel(jcr->impl->dcr, SOS_LABEL)) {
Jmsg1(jcr, M_FATAL, 0, _("Write session label failed. ERR=%s\n"),
dev->bstrerror());
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
retval = false;
goto bail_out;
}
@@ -627,7 +627,7 @@ bool DoMacRun(JobControlRecord* jcr)
}
bail_out:
- if (!ok) { jcr->setJobStatus(JS_ErrorTerminated); }
+ if (!ok) { jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); }
if (!acquire_fail && !jcr->impl->remote_replicate && jcr->impl->dcr) {
/*
@@ -644,7 +644,7 @@ bail_out:
JS_Terminated to write into EOS_LABEL
*/
char currentJobStatus = jcr->JobStatus;
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
// Write End Of Session Label
DeviceControlRecord* dcr = jcr->impl->dcr;
@@ -655,11 +655,11 @@ bail_out:
Jmsg1(jcr, M_FATAL, 0, _("Error writing end session label. ERR=%s\n"),
dev->bstrerror());
}
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
ok = false;
} else {
/* restore JobStatus */
- jcr->setJobStatus(currentJobStatus);
+ jcr->setJobStatusWithPriorityCheck(currentJobStatus);
}
// Flush out final partial block of this session
if (!jcr->impl->dcr->WriteBlockToDevice()) {
@@ -708,7 +708,7 @@ bail_out:
Dmsg0(30, "Done reading.\n");
jcr->end_time = time(NULL);
DequeueMessages(jcr); /* send any queued messages */
- if (ok) { jcr->setJobStatus(JS_Terminated); }
+ if (ok) { jcr->setJobStatusWithPriorityCheck(JS_Terminated); }
GeneratePluginEvent(jcr, bSdEventJobEnd);
dir->fsend(Job_end, jcr->Job, jcr->JobStatus, jcr->JobFiles,
diff --git a/core/src/stored/ndmp_tape.cc b/core/src/stored/ndmp_tape.cc
index 5e0f15447..78693ca83 100644
--- a/core/src/stored/ndmp_tape.cc
+++ b/core/src/stored/ndmp_tape.cc
@@ -716,7 +716,7 @@ extern "C" ndmp9_error bndmp_tape_open(struct ndm_session* sess,
return NDMP9_NO_ERR;
bail_out:
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return NDMP9_NO_DEVICE_ERR;
}
@@ -832,7 +832,7 @@ extern "C" ndmp9_error bndmp_tape_write(struct ndm_session* sess,
*done_count = count;
err = NDMP9_NO_ERR;
} else {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
err = NDMP9_IO_ERR;
}
@@ -886,7 +886,7 @@ extern "C" ndmp9_error bndmp_tape_read(struct ndm_session* sess,
err = NDMP9_NO_ERR;
}
} else {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
err = NDMP9_IO_ERR;
}
@@ -948,7 +948,7 @@ void EndOfNdmpBackup(JobControlRecord* jcr)
Jmsg1(jcr, M_FATAL, 0, _("Error writing end session label. ERR=%s\n"),
dcr->dev->bstrerror());
}
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
Dmsg0(90, "back from write_end_session_label()\n");
@@ -961,7 +961,7 @@ void EndOfNdmpBackup(JobControlRecord* jcr)
Jmsg2(jcr, M_FATAL, 0, _("Fatal append error on device %s: ERR=%s\n"),
dcr->dev->print_name(), dcr->dev->bstrerror());
}
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
}
diff --git a/core/src/stored/read.cc b/core/src/stored/read.cc
index 3470ecac7..f418d61eb 100644
--- a/core/src/stored/read.cc
+++ b/core/src/stored/read.cc
@@ -3,7 +3,7 @@
Copyright (C) 2000-2011 Free Software Foundation Europe e.V.
Copyright (C) 2011-2012 Planets Communications B.V.
- Copyright (C) 2013-2020 Bareos GmbH & Co. KG
+ Copyright (C) 2013-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -84,7 +84,7 @@ bool DoReadData(JobControlRecord* jcr)
// Let any SD plugin know now its time to setup the record translation infra.
if (GeneratePluginEvent(jcr, bSdEventSetupRecordTranslation, dcr) != bRC_OK) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
return false;
}
diff --git a/core/src/stored/reserve.cc b/core/src/stored/reserve.cc
index bf353714d..a3ab22a79 100644
--- a/core/src/stored/reserve.cc
+++ b/core/src/stored/reserve.cc
@@ -80,7 +80,7 @@ bool use_cmd(JobControlRecord* jcr)
{
// Get the device, media, and pool information
if (!UseDeviceCmd(jcr)) {
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
memset(jcr->sd_auth_key, 0, strlen(jcr->sd_auth_key));
return false;
}
diff --git a/core/src/stored/sd_cmds.cc b/core/src/stored/sd_cmds.cc
index 6761ad6fb..b648a7f8f 100644
--- a/core/src/stored/sd_cmds.cc
+++ b/core/src/stored/sd_cmds.cc
@@ -134,7 +134,9 @@ void* handle_stored_connection(BareosSocket* sd, char* job_name)
jcr->Job);
}
- if (!jcr->authenticated) { jcr->setJobStatus(JS_ErrorTerminated); }
+ if (!jcr->authenticated) {
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
+ }
pthread_cond_signal(&jcr->impl->job_start_wait); /* wake waiting job */
FreeJcr(jcr);
@@ -174,7 +176,7 @@ static void DoSdCommands(JobControlRecord* jcr)
} else {
Jmsg0(jcr, M_FATAL, 0, _("Command error with SD, hanging up.\n"));
}
- jcr->setJobStatus(JS_ErrorTerminated);
+ jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
quit = true;
}
@@ -256,7 +258,7 @@ bool DoListenRun(JobControlRecord* jcr)
jcr->end_time = time(NULL);
DequeueMessages(jcr); /* send any queued messages */
- jcr->setJobStatus(JS_Terminated);
+ jcr->setJobStatusWithPriorityCheck(JS_Terminated);
cleanup:
GeneratePluginEvent(jcr, bSdEventJobEnd);
diff --git a/core/src/stored/spool.cc b/core/src/stored/spool.cc
index 5b567eaca..cb8148ee6 100644
--- a/core/src/stored/spool.cc
+++ b/core/src/stored/spool.cc
@@ -265,12 +265,12 @@ static bool DespoolData(DeviceControlRecord* dcr, bool commit)
"...\n"),
jcr->impl->dcr->VolumeName,
edit_uint64_with_commas(jcr->impl->dcr->job_spool_size, ec1));
- jcr->setJobStatus(JS_DataCommitting);
+ jcr->setJobStatusWithPriorityCheck(JS_DataCommitting);
} else {
Jmsg(jcr, M_INFO, 0,
_("Writing spooled data to Volume. Despooling %s bytes ...\n"),
edit_uint64_with_commas(jcr->impl->dcr->job_spool_size, ec1));
- jcr->setJobStatus(JS_DataDespooling);
+ jcr->setJobStatusWithPriorityCheck(JS_DataDespooling);
}
jcr->sendJobStatus(JS_DataDespooling);
dcr->despool_wait = true;
diff --git a/core/src/stored/stored.cc b/core/src/stored/stored.cc
index 25371c15d..1c329549d 100644
--- a/core/src/stored/stored.cc
+++ b/core/src/stored/stored.cc
@@ -613,7 +613,7 @@ static
foreach_jcr (jcr) {
BareosSocket* fd;
if (jcr->JobId == 0) { continue; /* ignore console */ }
- jcr->setJobStatus(JS_Canceled);
+ jcr->setJobStatusWithPriorityCheck(JS_Canceled);
fd = jcr->file_bsock;
if (fd) {
fd->SetTimedOut();