]> git.sur5r.net Git - bacula/bacula/commitdiff
Check neg device use cound + fix BlockNumber check + close socket with shutdown(...
authorKern Sibbald <kern@sibbald.com>
Tue, 17 Jun 2003 11:04:54 +0000 (11:04 +0000)
committerKern Sibbald <kern@sibbald.com>
Tue, 17 Jun 2003 11:04:54 +0000 (11:04 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@586 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/kernstodo
bacula/src/lib/bnet.c
bacula/src/stored/dev.c
bacula/src/stored/label.c
bacula/src/stored/read.c
bacula/src/version.h

index 579c34b1273d2cd523be1401990c93fc15b6a6ef..03f966506b724c25b82312ee65085dfaf1be8feb 100644 (file)
@@ -32,6 +32,7 @@ Testing to do: (painful)
 - Figure out how to use ssh or stunnel to protect Bacula communications.
 
 For 1.31 release:
+- Fix first block number after label to be zero instead of 1 (reset after label).
 - Grep for Backup OK in regression script.
 - Do NOT reuse same JobId if tape written.
 - Move JobFiles and JobBytes to SD rather than FD -- more correct.
index a05702c553c2119de685dfc564dca5fd958094d3..8ee57ddffddd89a8b84897ee45116143733a9d8b 100644 (file)
@@ -797,7 +797,10 @@ bnet_close(BSOCK *bsock)
    for ( ; bsock != NULL; bsock = next) {
       next = bsock->next;
       if (!bsock->duped) {
-        close(bsock->fd);
+        if (bsock->timed_out) {
+           shutdown(bsock->fd, 2);   /* discard any pending I/O */
+        }
+        close(bsock->fd);         /* normal close */
       }
       term_bsock(bsock);
    }
index 8eb7acb5776cafe73903e984986c6b4b42d81581..de8d15eb4b1eb20ce3ee3c7b1bd7a0bea64c686b 100644 (file)
@@ -1106,6 +1106,9 @@ close_dev(DEVICE *dev)
       do_close(dev);
    }
    dev->use_count--;
+#ifdef FULL_DEBUG
+   ASSERT(dev->use_count >= 0);
+#endif
 }
 
 /*
@@ -1121,6 +1124,9 @@ void force_close_dev(DEVICE *dev)
    Dmsg0(29, "really close_dev\n");
    do_close(dev);
    dev->use_count--;
+#ifdef FULL_DEBUG
+   ASSERT(dev->use_count >= 0);
+#endif
 }
 
 int truncate_dev(DEVICE *dev)
index 3867976b5d34f34bba051ac2e431d927094cefa4..739e8d8447223831bf53f11f36f11db2c35cd66c 100644 (file)
@@ -243,6 +243,7 @@ int write_volume_label_to_block(JCR *jcr, DEVICE *dev, DEV_BLOCK *block)
    create_volume_label_record(jcr, dev, &rec);
 
    empty_block(block);               /* Volume label always at beginning */
+   block->BlockNumber = 0;
    if (!write_record_to_block(block, &rec)) {
       free_pool_memory(rec.data);
       Jmsg1(jcr, M_FATAL, 0, _("Cannot write Volume label to block for device %s\n"),
index 3434eb260c053f5d0ceee7ab38c10dbcdfbbf58c..45d89aebd152dd24df7c277a0b038053d90a42f4 100644 (file)
@@ -188,11 +188,11 @@ int do_read_data(JCR *jcr)
         }
 
         if (block->block_read) {
-           if (++BlockNumber != block->BlockNumber) {
+           if (BlockNumber != block->BlockNumber) {
                Jmsg(jcr, M_ERROR, 0, _("Invalid block number. Expected %u, got %u\n"),
                    BlockNumber, block->BlockNumber);
            }
-           BlockNumber = block->BlockNumber;
+           BlockNumber = block->BlockNumber + 1;
            block->block_read = false;
         }
 
index 52659d533e9845f543ccce0baa6b5d5c296dc933..e71542c8893d93e2e1df5624d7d6c3f43c451369 100644 (file)
@@ -10,6 +10,8 @@
 #define SMCHECK     
 #define TRACE_FILE 1  
 
+#define FULL_DEBUG 1    /* normally on for testing only */
+
 /* Turn this on ONLY if you want all Dmsg() to append to the
  *   trace file. Implemented mainly for Win32 ...
  */
@@ -18,9 +20,6 @@
 /* Turn this on if you want to try the new Job semaphore code */
 #define USE_SEMAPHORE
 
-/* IF you undefine this, Bacula will run 10X slower */
-#define NO_POLL_TEST 1
-
 /* #define NO_ATTRIBUTES_TEST 1 */
 /* #define NO_TAPE_WRITE_TEST 1 */
 /* #define FD_NO_SEND TEST 1 */