]> git.sur5r.net Git - bacula/bacula/commitdiff
Create patch that may fix bug #1298 and bug #1304, which causes
authorKern Sibbald <kern@sibbald.com>
Fri, 12 Jun 2009 19:00:50 +0000 (19:00 +0000)
committerKern Sibbald <kern@sibbald.com>
Fri, 12 Jun 2009 19:00:50 +0000 (19:00 +0000)
     an SD crash after canceling a job.

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

bacula/src/stored/askdir.c
bacula/src/stored/block.c
bacula/src/stored/reserve.c
bacula/src/stored/spool.c
bacula/src/stored/vol_mgr.c
bacula/technotes

index 00666364120724867a3545476a39bd657b1de2e3..37d33bdeff4632f9fb4c1f327dc10535e18e07fe 100644 (file)
@@ -494,6 +494,9 @@ bool dir_ask_sysop_to_create_appendable_volume(DCR *dcr)
    JCR *jcr = dcr->jcr;
    bool got_vol = false;
 
+   if (job_canceled(jcr)) {
+      return false;
+   }
    Dmsg0(400, "enter dir_ask_sysop_to_create_appendable_volume\n");
    ASSERT(dev->blocked());
    for ( ;; ) {
index 3980328f03d4d5a9e70690350be491224d2fb4b0..117122919f2cacfea8296f20213206e5c062320d 100644 (file)
@@ -415,6 +415,9 @@ bool write_block_to_dev(DCR *dcr)
    empty_block(block);
    return true;
 #endif
+   if (job_canceled(jcr)) {
+      return false;
+   }
    ASSERT(block->binbuf == ((uint32_t) (block->bufp - block->buf)));
    ASSERT(dev->is_open());
 
@@ -935,6 +938,9 @@ bool read_block_from_dev(DCR *dcr, bool check_block_numbers)
    DEVICE *dev = dcr->dev;
    DEV_BLOCK *block = dcr->block;
 
+   if (job_canceled(jcr)) {
+      return false;
+   }
    ASSERT(dev->is_open());
    
    if (dev->at_eot()) {
index 67e42be464fd1fd709e2469cb729c64e05f38e9c..c2377d8f0d6a7606690c53e5c70f5c88319c7728 100644 (file)
@@ -755,6 +755,9 @@ static bool reserve_device_for_read(DCR *dcr)
    bool ok = false;
 
    ASSERT(dcr);
+   if (job_canceled(jcr)) {
+      return false;
+   }
 
    dev->dlock();  
 
@@ -809,6 +812,9 @@ static bool reserve_device_for_append(DCR *dcr, RCTX &rctx)
    bool ok = false;
 
    ASSERT(dcr);
+   if (job_canceled(jcr)) {
+      return false;
+   }
 
    dev->dlock();
 
index 21212c53bfc6b998b785552225f17d4fe3654d68..6bff7b5969d8a69ffc190200a23880e47c7f136a 100644 (file)
@@ -436,6 +436,9 @@ bool write_block_to_spool_file(DCR *dcr)
    bool despool = false;
    DEV_BLOCK *block = dcr->block;
 
+   if (job_canceled(dcr->jcr)) {
+      return false;
+   }
    ASSERT(block->binbuf == ((uint32_t) (block->bufp - block->buf)));
    if (block->binbuf <= WRITE_BLKHDR_LENGTH) {  /* Does block have data in it? */
       return true;
index 4e239fcd7c20edd7c4b6c456f4e337817cab146b..0d6b088912039a914e75408797eca835477e70d6 100644 (file)
@@ -344,6 +344,9 @@ VOLRES *reserve_volume(DCR *dcr, const char *VolumeName)
    VOLRES *vol, *nvol;
    DEVICE * volatile dev = dcr->dev;
 
+   if (job_canceled(dcr->jcr)) {
+      return NULL;
+   }
    ASSERT(dev != NULL);
 
    Dmsg2(dbglvl, "enter reserve_volume=%s drive=%s\n", VolumeName, 
@@ -701,6 +704,9 @@ bool DCR::can_i_use_volume()
    bool rtn = true;
    VOLRES *vol;
 
+   if (job_canceled(jcr)) {
+      return false;
+   }
    lock_volumes();
    vol = find_volume(VolumeName);
    if (!vol) {
index 535f7e6440f81d006fbab6a749c4057a102ffb32..ed33d20060cd6691ecfba2846368fe8c406d4a70 100644 (file)
@@ -2,6 +2,9 @@
           
 General:
 
+12Jun09
+kes  Create patch that may fix bug #1298 and bug #1304, which causes
+     an SD crash after canceling a job.
 08Jun09
 kes  Attempt to get bat conf file installation to work with DESTDIR
 05uun09