]> git.sur5r.net Git - bacula/bacula/commitdiff
Back out changes apparently crashing system
authorKern Sibbald <kern@sibbald.com>
Tue, 19 Sep 2006 16:50:48 +0000 (16:50 +0000)
committerKern Sibbald <kern@sibbald.com>
Tue, 19 Sep 2006 16:50:48 +0000 (16:50 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3483 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/dird/catreq.c
bacula/src/stored/askdir.c
bacula/src/stored/block.c

index e4dcdd4e5d715ea8cd2b88a411d1c517a5c23886..3dd8a582124f1b3a1bf3c12c77585f8585b837e1 100644 (file)
@@ -44,7 +44,7 @@ static char Update_media[] = "CatReq Job=%127s UpdateMedia VolName=%s"
    " VolJobs=%u VolFiles=%u VolBlocks=%u VolBytes=%" lld " VolMounts=%u"
    " VolErrors=%u VolWrites=%u MaxVolBytes=%" lld " EndTime=%d VolStatus=%10s"
    " Slot=%d relabel=%d InChanger=%d VolReadTime=%" lld " VolWriteTime=%" lld
-   " VolFirstWritten=%" lld " VolParts=%u\n";
+   " VolParts=%u\n";
 
 static char Create_job_media[] = "CatReq Job=%127s CreateJobMedia "
    " FirstIndex=%u LastIndex=%u StartFile=%u EndFile=%u "
@@ -96,7 +96,6 @@ void catalog_request(JCR *jcr, BSOCK *bs)
    POOLMEM *omsg;
    POOL_DBR pr;
    uint32_t Stripe;
-   utime_t VolFirstWritten;
 
    memset(&mr, 0, sizeof(mr));
    memset(&sdmr, 0, sizeof(sdmr));
@@ -198,8 +197,7 @@ void catalog_request(JCR *jcr, BSOCK *bs)
       &sdmr.VolJobs, &sdmr.VolFiles, &sdmr.VolBlocks, &sdmr.VolBytes,
       &sdmr.VolMounts, &sdmr.VolErrors, &sdmr.VolWrites, &sdmr.MaxVolBytes,
       &sdmr.LastWritten, &sdmr.VolStatus, &sdmr.Slot, &label, &sdmr.InChanger,
-      &sdmr.VolReadTime, &sdmr.VolWriteTime, &VolFirstWritten, 
-      &sdmr.VolParts) == 19) {
+      &sdmr.VolReadTime, &sdmr.VolWriteTime, &sdmr.VolParts) == 18) {
 
       db_lock(jcr->db);
       Dmsg3(400, "Update media %s oldStat=%s newStat=%s\n", sdmr.VolumeName,
@@ -216,11 +214,7 @@ void catalog_request(JCR *jcr, BSOCK *bs)
       }
       /* Set first written time if this is first job */
       if (mr.FirstWritten == 0) {
-         if (VolFirstWritten == 0) {
-            mr.FirstWritten = jcr->start_time;   /* use Job start time as first write */
-         } else {
-            mr.FirstWritten = VolFirstWritten;
-         }
+         mr.FirstWritten = jcr->start_time;   /* use Job start time as first write */
          mr.set_first_written = true;
       }
       /* If we just labeled the tape set time */
index 4b4fb0f12634d674adf69dc8cd61855305948001..0a549aafae4ad36275fa6f7da0e9b6b2e1510d5b 100644 (file)
@@ -31,7 +31,7 @@ static char Update_media[] = "CatReq Job=%s UpdateMedia VolName=%s"
    " VolJobs=%u VolFiles=%u VolBlocks=%u VolBytes=%s VolMounts=%u"
    " VolErrors=%u VolWrites=%u MaxVolBytes=%s EndTime=%d VolStatus=%s"
    " Slot=%d relabel=%d InChanger=%d VolReadTime=%s VolWriteTime=%s"
-   " VolFirstWritten=%s VolParts=%u\n";
+   " VolParts=%u\n";
 static char Create_job_media[] = "CatReq Job=%s CreateJobMedia"
    " FirstIndex=%u LastIndex=%u StartFile=%u EndFile=%u"
    " StartBlock=%u EndBlock=%u Copy=%d Strip=%d\n";
@@ -282,7 +282,7 @@ bool dir_update_volume_info(DCR *dcr, bool label)
    BSOCK *dir = jcr->dir_bsock;
    DEVICE *dev = dcr->dev;
    time_t LastWritten = time(NULL);
-   char ed1[50], ed2[50], ed3[50], ed4[50], ed5[50];
+   char ed1[50], ed2[50], ed3[50], ed4[50];
    VOLUME_CAT_INFO *vol = &dev->VolCatInfo;
    int InChanger;
    POOL_MEM VolumeName;
@@ -320,7 +320,6 @@ bool dir_update_volume_info(DCR *dcr, bool label)
       InChanger,                      /* bool in structure */
       edit_uint64(vol->VolReadTime, ed3),
       edit_uint64(vol->VolWriteTime, ed4),
-      edit_uint64(vol->VolFirstWritten, ed5),
       vol->VolCatParts);
     Dmsg1(100, ">dird: %s", dir->msg);
 
index 89fc951e255b2ce5b9e4dfdbacc648292e468e53..737ab5c4fe57d96b42d0edc9280465a733523da0 100644 (file)
@@ -514,12 +514,14 @@ bool write_block_to_dev(DCR *dcr)
     */ 
    int retry = 0;
    errno = 0;
+   stat = 0;
    do {
       if ((retry > 0 && stat == -1 && errno == EBUSY) || retry > 10) {
          berrno be;
-         Dmsg4(100, "===== retry=%d stat=%d errno=%d: ERR=%s\n",
+         Dmsg4(100, "===== read retry=%d stat=%d errno=%d: ERR=%s\n",
                retry, stat, errno, be.strerror());
-         bmicrosleep(0, 50000);    /* pause a bit if busy or lots of errors */
+         bmicrosleep(0, 100000);    /* pause a bit if busy or lots of errors */
+         dev->clrerror(-1);
       }
       if (dev->is_tape()) {
          stat = tape_write(dev->fd, block->buf, (size_t)wlen);
@@ -958,9 +960,10 @@ reread:
    do {
       if ((retry > 0 && stat == -1 && errno == EBUSY) || retry > 10) {
          berrno be;
-         Dmsg4(100, "===== retry=%d stat=%d errno=%d: ERR=%s\n",
+         Dmsg4(100, "===== write retry=%d stat=%d errno=%d: ERR=%s\n",
                retry, stat, errno, be.strerror());
-         bmicrosleep(0, 50000);    /* pause a bit if busy or lots of errors */
+         bmicrosleep(0, 100000);    /* pause a bit if busy or lots of errors */
+         dev->clrerror(-1);
       }
       if (dev->is_tape()) {
          stat = tape_read(dev->fd, block->buf, (size_t)block->buf_len);
@@ -970,7 +973,6 @@ reread:
    } while (stat == -1 && (errno == EBUSY || errno == EINTR || errno == EIO) && retry++ < 30);
    if (stat < 0) {
       berrno be;
-      dev->VolCatInfo.VolCatErrors++;
       dev->clrerror(-1);
       Dmsg1(200, "Read device got: ERR=%s\n", be.strerror());
       block->read_len = 0;