]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/backup.c
Commit backports from 2.3.x
[bacula/bacula] / bacula / src / dird / backup.c
index a6a0b0aeedf1b720b841a6db8646160fd76cb9ea..ba1bdfe00d76a4c7037340b1ba3ec551d3e8b5d1 100644 (file)
@@ -245,9 +245,7 @@ bail_out:
    set_jcr_job_status(jcr, JS_ErrorTerminated);
    Dmsg1(400, "wait for sd. use=%d\n", jcr->use_count());
    /* Cancel SD */
-   if (jcr->store_bsock) {
-      jcr->store_bsock->fsend("cancel Job=%s\n", jcr->Job);
-   }
+   cancel_storage_daemon_job(jcr);
    wait_for_storage_daemon_termination(jcr);
    Dmsg1(400, "after wait for sd. use=%d\n", jcr->use_count());
    return false;
@@ -297,6 +295,11 @@ int wait_for_job_termination(JCR *jcr)
    }
    bnet_sig(fd, BNET_TERMINATE);   /* tell Client we are terminating */
 
+   /* Force cancel in SD if failing */
+   if (job_canceled(jcr) || !fd_ok) {
+      cancel_storage_daemon_job(jcr);
+   }
+
    /* Note, the SD stores in jcr->JobFiles/ReadBytes/JobBytes/Errors */
    wait_for_storage_daemon_termination(jcr);