diff options
author | lkoeller <lkoeller@FreeBSD.org> | 2004-02-04 03:32:22 +0800 |
---|---|---|
committer | lkoeller <lkoeller@FreeBSD.org> | 2004-02-04 03:32:22 +0800 |
commit | 1364906b95a3bef88474dfa0279650bc2b75fd35 (patch) | |
tree | 7edcace469cbe492b6cd094d02cf8b0230804806 /sysutils/bacula-server/files | |
parent | f1653809dadf4b88d831b3738072633104078bef (diff) | |
download | freebsd-ports-gnome-1364906b95a3bef88474dfa0279650bc2b75fd35.tar.gz freebsd-ports-gnome-1364906b95a3bef88474dfa0279650bc2b75fd35.tar.zst freebsd-ports-gnome-1364906b95a3bef88474dfa0279650bc2b75fd35.zip |
o) Update to version 1.32f-4
Diffstat (limited to 'sysutils/bacula-server/files')
-rw-r--r-- | sysutils/bacula-server/files/patch-eom-nextvol | 278 | ||||
-rw-r--r-- | sysutils/bacula-server/files/patch-weekofmonth | 62 |
2 files changed, 0 insertions, 340 deletions
diff --git a/sysutils/bacula-server/files/patch-eom-nextvol b/sysutils/bacula-server/files/patch-eom-nextvol deleted file mode 100644 index 85b6c0050619..000000000000 --- a/sysutils/bacula-server/files/patch-eom-nextvol +++ /dev/null @@ -1,278 +0,0 @@ - -This patch fixes two bugs. -1. Reported by Phil: where when the end of a Volume was reached, - Bacula went into a loop requesting the next Volume then gave up. -2. Reported by Lars: the order of the next Volume selected by Bacula - was not as expected. - -Apply the patch with: - - cd <bacula-source> - patch -p0 <1.32f-2-eom-nextvol.patch - make - ... - -Index: ReleaseNotes -=================================================================== -RCS file: /cvsroot/bacula/bacula/ReleaseNotes,v -retrieving revision 1.52.2.9.2.7 -retrieving revision 1.52.2.9.2.8 -diff -u -b -r1.52.2.9.2.7 -r1.52.2.9.2.8 ---- ReleaseNotes 31 Dec 2003 09:10:55 -0000 1.52.2.9.2.7 -+++ ReleaseNotes 5 Jan 2004 16:49:44 -0000 1.52.2.9.2.8 -@@ -1,7 +1,14 @@ - -- Release Notes for Bacula 1.32f -+ Release Notes for Bacula 1.32g - - Bacula code: Total files = 262 Total lines = 80,318 (*.h *.c *.in) -+ -+Changes since 1.32f -+- Fix bug reported by Phil (could not duplicate here) where at the end -+ of a Volume, Bacula wanted a new Volume and got into a loop requesting -+ it, then gave up. -+- Modify selection of next Volume to select most currently appended Volume, -+ or if none oldest recycled Volume (problem reported by Lars). - - Changes since 1.32e: - - Note, this change affects only the Win32 FD. -Index: src/cats/sql_find.c -=================================================================== -RCS file: /cvsroot/bacula/bacula/src/cats/sql_find.c,v -retrieving revision 1.23.2.7.2.1 -retrieving revision 1.23.2.7.2.2 -diff -u -b -r1.23.2.7.2.1 -r1.23.2.7.2.2 ---- src/cats/sql_find.c 7 Dec 2003 15:01:42 -0000 1.23.2.7.2.1 -+++ src/cats/sql_find.c 5 Jan 2004 16:49:45 -0000 1.23.2.7.2.2 -@@ -7,7 +7,7 @@ - * - * Kern Sibbald, December 2000 - * -- * Version $Id: sql_find.c,v 1.23.2.7.2.1 2003/12/07 15:01:42 kerns Exp $ -+ * Version $Id: sql_find.c,v 1.23.2.7.2.2 2004/01/05 16:49:45 kerns Exp $ - */ - - /* -@@ -218,6 +218,7 @@ - { - SQL_ROW row; - int numrows; -+ char *order; - - db_lock(mdb); - if (item == -1) { /* find oldest volume */ -@@ -232,12 +233,19 @@ - item = 1; - } else { - /* Find next available volume */ -+ if (strcmp(mr->VolStatus, "Recycled") == 0 || -+ strcmp(mr->VolStatus, "Purged") == 0) { -+ order = "ORDER BY LastWritten ASC,MediaId"; /* take oldest */ -+ } else { -+ order = "ORDER BY LastWritten DESC,MediaId"; /* take most recently written */ -+ } - Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,VolJobs,VolFiles,VolBlocks," --"VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes," --"VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,Recycle,Slot," --"FirstWritten,LastWritten,VolStatus " --"FROM Media WHERE PoolId=%u AND MediaType='%s' AND VolStatus='%s' " --"ORDER BY LastWritten,MediaId", mr->PoolId, mr->MediaType, mr->VolStatus); -+ "VolBytes,VolMounts,VolErrors,VolWrites,MaxVolBytes,VolCapacityBytes," -+ "VolRetention,VolUseDuration,MaxVolJobs,MaxVolFiles,Recycle,Slot," -+ "FirstWritten,LastWritten,VolStatus " -+ "FROM Media WHERE PoolId=%u AND MediaType='%s' AND VolStatus='%s' " -+ "%s LIMIT 1", -+ mr->PoolId, mr->MediaType, mr->VolStatus, order); - } - if (!QUERY_DB(jcr, mdb, mdb->cmd)) { - db_unlock(mdb); -Index: src/stored/mount.c -=================================================================== -RCS file: /cvsroot/bacula/bacula/src/stored/mount.c,v -retrieving revision 1.42.2.9.2.3 -retrieving revision 1.42.2.9.2.4 -diff -u -b -r1.42.2.9.2.3 -r1.42.2.9.2.4 ---- src/stored/mount.c 8 Dec 2003 20:53:47 -0000 1.42.2.9.2.3 -+++ src/stored/mount.c 5 Jan 2004 16:49:45 -0000 1.42.2.9.2.4 -@@ -5,7 +5,7 @@ - * - * Kern Sibbald, August MMII - * -- * Version $Id: mount.c,v 1.42.2.9.2.3 2003/12/08 20:53:47 kerns Exp $ -+ * Version $Id: mount.c,v 1.42.2.9.2.4 2004/01/05 16:49:45 kerns Exp $ - */ - /* - Copyright (C) 2000-2003 Kern Sibbald and John Walker -@@ -30,7 +30,8 @@ - #include "bacula.h" /* pull in global headers */ - #include "stored.h" /* pull in Storage Deamon headers */ - --/* Forward referenced functions */ -+/* Forward referenced routines */ -+static void mark_volume_in_error(JCR *jcr, DEVICE *dev); - - - /* -@@ -47,11 +48,17 @@ - */ - int mount_next_write_volume(JCR *jcr, DEVICE *dev, DEV_BLOCK *block, int release) - { -- int retry = 0, autochanger; -- bool ask, recycle; -+ int retry = 0; -+ bool ask = false, recycle, autochanger; -+ int vol_label_status; - - Dmsg0(100, "Enter mount_next_volume()\n"); - -+ /* -+ * Attempt to mount the next volume. If something non-fatal goes -+ * wrong, we come back here to re-try (new op messages, re-read -+ * Volume, ...) -+ */ - mount_next_vol: - if (retry++ > 5) { - Jmsg(jcr, M_FATAL, 0, _("Too many errors trying to mount device %s.\n"), -@@ -62,8 +69,8 @@ - Jmsg(jcr, M_FATAL, 0, _("Job %d canceled.\n"), jcr->JobId); - return 0; - } -- autochanger = 0; -- recycle = ask = false; -+ autochanger = false; /* Assume no autochanger */ -+ recycle = false; - if (release) { - Dmsg0(100, "mount_next_volume release=1\n"); - release_volume(jcr, dev); -@@ -97,15 +104,10 @@ - * It assumes that the device is not already in use! - * - */ -- -- - dev->state &= ~(ST_APPEND|ST_READ|ST_EOT|ST_WEOT|ST_EOF); - -- for ( ;; ) { -- int vol_label_status; - autochanger = autoload_device(jcr, dev, 1, NULL); - Dmsg1(100, "autoload_dev returns %d\n", autochanger); -- - /* - * If we autochanged to correct Volume or (we have not just - * released the Volume AND we can automount) we go ahead -@@ -116,7 +118,7 @@ - ask = false; /* don't ask SYSOP this time */ - } - Dmsg2(100, "Ask=%d autochanger=%d\n", ask, autochanger); -- release = 1; /* release next time if we "recurse" */ -+ release = true; /* release next time if we "recurse" */ - - if (ask && !dir_ask_sysop_to_mount_next_volume(jcr, dev)) { - Dmsg0(100, "Error return ask_sysop ...\n"); -@@ -181,14 +183,15 @@ - /* Check if this is a valid Volume in the pool */ - pm_strcpy(&jcr->VolumeName, dev->VolHdr.VolName); - if (!dir_get_volume_info(jcr, GET_VOL_INFO_FOR_WRITE)) { -- Mmsg(&jcr->errmsg, _("Director wanted Volume \"%s\".\n" -+ Jmsg(jcr, M_WARNING, 0, _("Director wanted Volume \"%s\".\n" - " Current Volume \"%s\" not acceptable because:\n" - " %s"), - VolCatInfo.VolCatName, dev->VolHdr.VolName, - jcr->dir_bsock->msg); - /* Restore desired volume name, note device info out of sync */ - memcpy(&jcr->VolCatInfo, &VolCatInfo, sizeof(jcr->VolCatInfo)); -- goto mount_error; -+ ask = true; -+ goto mount_next_vol; - } - Dmsg1(100, "want new name=%s\n", jcr->VolumeName); - memcpy(&dev->VolCatInfo, &jcr->VolCatInfo, sizeof(dev->VolCatInfo)); -@@ -230,15 +233,11 @@ - /* NOTE! Fall-through wanted. */ - case VOL_NO_MEDIA: - default: --mount_error: - /* Send error message */ - Jmsg(jcr, M_WARNING, 0, "%s", jcr->errmsg); - ask = true; -- /* was - goto ask_again; */ - goto mount_next_vol; - } -- break; -- } - - /* - * See if we have a fresh tape or a tape with data. -@@ -322,6 +321,10 @@ - Jmsg(jcr, M_INFO, 0, _("Wrote label to prelabeled Volume \"%s\" on device %s\n"), - jcr->VolumeName, dev_name(dev)); - } -+ /* -+ * End writing real Volume label (from pre-labeled tape), or recycling -+ * the volume. -+ */ - - } else { - /* -@@ -335,11 +338,7 @@ - if (!eod_dev(dev)) { - Jmsg(jcr, M_ERROR, 0, _("Unable to position to end of data %s. ERR=%s\n"), - dev_name(dev), strerror_dev(dev)); -- Jmsg(jcr, M_INFO, 0, _("Marking Volume \"%s\" in Error in Catalog.\n"), -- jcr->VolumeName); -- bstrncpy(dev->VolCatInfo.VolCatStatus, "Error", sizeof(dev->VolCatInfo.VolCatStatus)); -- Dmsg0(100, "dir_update_vol_info. Set Error.\n"); -- dir_update_volume_info(jcr, dev, 0); -+ mark_volume_in_error(jcr, dev); - goto mount_next_vol; - } - /* *****FIXME**** we should do some checking for files too */ -@@ -355,9 +354,7 @@ - Jmsg(jcr, M_ERROR, 0, _("I canot write on this volume because:\n\ - The number of files mismatch! Volume=%u Catalog=%u\n"), - dev_file(dev), dev->VolCatInfo.VolCatFiles); -- bstrncpy(dev->VolCatInfo.VolCatStatus, "Error", sizeof(dev->VolCatInfo.VolCatStatus)); -- Dmsg0(100, "dir_update_vol_info. Set Error.\n"); -- dir_update_volume_info(jcr, dev, 0); -+ mark_volume_in_error(jcr, dev); - goto mount_next_vol; - } - } -@@ -372,7 +369,19 @@ - return 1; - } - -+static void mark_volume_in_error(JCR *jcr, DEVICE *dev) -+{ -+ Jmsg(jcr, M_INFO, 0, _("Marking Volume \"%s\" in Error in Catalog.\n"), -+ jcr->VolumeName); -+ bstrncpy(dev->VolCatInfo.VolCatStatus, "Error", sizeof(dev->VolCatInfo.VolCatStatus)); -+ Dmsg0(100, "dir_update_vol_info. Set Error.\n"); -+ dir_update_volume_info(jcr, dev, 0); -+} - -+/* -+ * If we are reading, we come here at the end of the tape -+ * and see if there are more volumes to be mounted. -+ */ - int mount_next_read_volume(JCR *jcr, DEVICE *dev, DEV_BLOCK *block) - { - Dmsg2(90, "NumVolumes=%d CurVolume=%d\n", jcr->NumVolumes, jcr->CurVolume); -@@ -399,7 +408,6 @@ - */ - void release_volume(JCR *jcr, DEVICE *dev) - { -- - if (jcr->WroteVol) { - Jmsg0(jcr, M_ERROR, 0, "Hey!!!!! WroteVol non-zero !!!!!\n"); - } -@@ -411,7 +419,8 @@ - memset(&dev->VolCatInfo, 0, sizeof(dev->VolCatInfo)); - memset(&jcr->VolCatInfo, 0, sizeof(jcr->VolCatInfo)); - memset(&dev->VolHdr, 0, sizeof(dev->VolHdr)); -- dev->state &= ~ST_LABEL; /* label not yet read */ -+ /* Force re-read of label */ -+ dev->state &= ~(ST_LABEL|ST_READ|ST_APPEND); - jcr->VolumeName[0] = 0; - - if ((dev->state & ST_OPENED) && diff --git a/sysutils/bacula-server/files/patch-weekofmonth b/sysutils/bacula-server/files/patch-weekofmonth deleted file mode 100644 index e9cfe667655b..000000000000 --- a/sysutils/bacula-server/files/patch-weekofmonth +++ /dev/null @@ -1,62 +0,0 @@ - -This patch fixes an incorrect calculation of the week -of the month reported by Volker Sauer. It should work on either -1.32e or 1.32f. - -Apply the patch with: - - cd <bacula-source> - patch -p0 <1.32f-weekofmonth.patch - make - ... - -Index: src/dird/scheduler.c -=================================================================== -RCS file: /cvsroot/bacula/bacula/src/dird/scheduler.c,v -retrieving revision 1.13.6.1 -diff -u -b -r1.13.6.1 scheduler.c ---- src/dird/scheduler.c 21 Dec 2003 15:17:42 -0000 1.13.6.1 -+++ src/dird/scheduler.c 6 Jan 2004 09:43:31 -0000 -@@ -205,7 +205,7 @@ - mday = tm.tm_mday - 1; - wday = tm.tm_wday; - month = tm.tm_mon; -- wom = tm_wom(tm.tm_mday, tm.tm_wday); /* get week of month */ -+ wom = mday / 7; - woy = tm_woy(now); /* get week of year */ - - /* Loop through all jobs */ -@@ -237,7 +237,7 @@ - if (bit_is_set(next_hour, run->hour)) { - tm.tm_hour++; - if (tm.tm_hour > 23) { -- tm.tm_hour = 0; -+ continue; /* next day */ - } - runtime = mktime(&tm); - add_job(job, run, now, runtime); -Index: src/dird/ua_output.c -=================================================================== -RCS file: /cvsroot/bacula/bacula/src/dird/ua_output.c,v -retrieving revision 1.25.2.11.2.3 -diff -u -b -r1.25.2.11.2.3 ua_output.c ---- src/dird/ua_output.c 21 Dec 2003 15:17:42 -0000 1.25.2.11.2.3 -+++ src/dird/ua_output.c 6 Jan 2004 09:43:32 -0000 -@@ -454,7 +454,7 @@ - mday = tm.tm_mday - 1; - wday = tm.tm_wday; - month = tm.tm_mon; -- wom = tm_wom(tm.tm_mday, tm.tm_wday); -+ wom = mday / 7; - woy = tm_woy(now); - - /* Break down tomorrow into components */ -@@ -463,7 +463,7 @@ - tmday = tm.tm_mday - 1; - twday = tm.tm_wday; - tmonth = tm.tm_mon; -- twom = tm_wom(tm.tm_mday, tm.tm_wday); -+ twom = tmday / 7; - twoy = tm_woy(tomorrow); - - if (run == NULL) { |