records have been removed from the catalog.
- Restore of a directory (non-recursive, i.e. only one level).
- Support for TLS (ssl) between all the daemon connections thanks
- to Landon Fuller.
+ to Landon Fuller. This is mostly untested.
- Any Volume in the Pool named Scratch may be reassigned to any
other Pool when a new Volume is needed.
- You may clone a Job and thus write (almost) the same data
- When linking with --with-python, there are a few warnings that
can be ignored.
- You must either create a new catalog database or upgrade your
- old database (the PostgreSQL upgrade scripts not yet tested).
+ old database.
+- The TLS code is for the most part untested.
- You must add --with-openssl to the configure command line if
you want TLS communications encryption support.
- If you use an Autochanger, you *must* update your SD conf file
Final items for 1.37 before release:
1. Fix bugs
+- Tape xxx in drive 0, requested in drive 1
+- Multi-drive changer seems to only use drive 0
- --without-openssl breaks at least on Solaris.
9. Run the regression scripts on Solaris and FreeBSD
- Figure out how to package gui, and rescue programs.
=======
For 1.39:
+- Email to the user when the tape is about to need changing x
+ days before it needs changing.
+- Command to show next tape that will be used for a job even
+ if the job is not scheduled.
--- create_file.c.orig Fri Jul 8 12:13:05 2005
+++ create_file.c Fri Jul 8 12:13:07 2005
@@ -195,6 +195,8 @@
General:
Changes to 1.37.32:
+02Aug05
+- Correct PostgreSQL database scripts as suggested by a user.
+- Add additional info to FATAL message generated when a device
+ is busy writing to another volume.
+- Suppress an inappropriate NULL Volume name message after a cancel.
+- Correct a warning message in reserve.c
29Jul05
- Apply user's patch to make mutiple modifiers for times
work correctly.
pulled in where necessary.
Why: This is something none of the competition does, as far as
- we know (except BackupPC, which is a Perl program that
+ we know (except perhpas BackupPC, which is a Perl program that
saves to disk only). It is big win for the user, it
makes Bacula stand out as offering a unique
optimization that immediately saves time and money.
drop table counters;
drop table version;
drop table CDImages;
-drop table Devices;
+drop table Device;
drop table Storage;
drop table MediaType;
drop table Status;
DeviceId SERIAL,
Name TEXT NOT NULL,
MediaTypeId INTEGER NOT NULL,
- StorageId INTEGER UNSIGNED,
+ StorageId INTEGER NOT NULL,
DevMounts INTEGER NOT NULL DEFAULT 0,
DevReadBytes BIGINT NOT NULL DEFAULT 0,
DevWriteBytes BIGINT NOT NULL DEFAULT 0,
DevReadTime BIGINT NOT NULL DEFAULT 0,
DevWriteTime BIGINT NOT NULL DEFAULT 0,
DevReadTimeSinceCleaning BIGINT NOT NULL DEFAULT 0,
- DevWriteTimeSinceCleaning BIGINT UNSIGNED DEFAULT 0,
+ DevWriteTimeSinceCleaning BIGINT NOT NULL DEFAULT 0,
CleaningDate TIMESTAMP WITHOUT TIME ZONE,
CleaningPeriod BIGINT NOT NULL DEFAULT 0,
PRIMARY KEY(DeviceId)
free_unused_volume(dcr);
}
if (dev->num_writers != 0 || dev->reserved_device) {
- Jmsg(jcr, M_FATAL, 0, _("Device %s is busy writing on another Volume.\n"), dev->print_name());
+ Jmsg(jcr, M_FATAL, 0, _("Wanted Volume \"%s\", but device %s is busy writing on \"%s\" .\n"),
+ dcr->VolumeName, dev->print_name(), dev->VolHdr.VolumeName);
goto get_out;
}
/* Wrong tape mounted, release it, then fall through to get correct one */
set_jcr_job_status(jcr, ok?JS_Terminated:JS_ErrorTerminated);
Dmsg1(200, "Write session label JobStatus=%d\n", jcr->JobStatus);
- if (dev->VolCatInfo.VolCatName[0] == 0) {
+ if ((!ok || job_canceled(jcr)) && dev->VolCatInfo.VolCatName[0] == 0) {
Pmsg0(000, "NULL Volume name. This shouldn't happen!!!\n");
}
return 1;
} else {
/* Drive not suitable for us */
- Jmsg(jcr, M_WARNING, 0, _("Device %s is busy writing on another Volume.\n"), dev->print_name());
+ Jmsg(jcr, M_WARNING, 0, _("Wanted Pool \"%s\", but device %s is using Pool \"%s\" .\n"),
+ dcr->pool_name, dev->print_name(), dev->pool_name);
return 0; /* wait */
}
} else {