Thorsten Engel [Fri, 21 Apr 2006 16:04:16 +0000 (16:04 +0000)]
bugfix: an early cancel (e.g. during request for label) causes a "goto cleanup"
which leads to a runtime error when the vss_mutex was released, but never
locked.
- Implement using pg_config for finding PostgreSQL files.
Fixes bug #600. Patch supplied by user.
- Remove -t option from mktemp in mtx_changer.in and use
working directory. Fixes bug #578.
- Update job start time after the any run before job so that
files created by the script are only backed up once. Fixes
bug #599.
- Strip trailing newline only from filenames entered in
the restore command when reading a file. This permits
the user to enter filenames with trailing spaces. Fixes
bug #549. The user supplied a patch that I modified slightly.
- Use the most recent time (st_mtime, st_ctime) in the dir
command in restore. This gives the user a better idea of what
the newest file really is. This fixes bug #574. The fix
was suggested by the user.
- Implement a compatible version of base64. This permits external
programs to duplicate Bacula's base64 algorithm using standard
routines. This fixes bugs #296, and 565. Patch submitted by
author of bug #565.
================= Note ========================
Previous Signatures stored in the database are no longer
compatible with this. The main downside is for Verify jobs,
and doing an InitCatalog run will fix the problem. Also, the
authentication between the deamons is changed, so all daemons
must be simultaneously upgraded.
==============================================
If you don't like this fix, set:
const bool compatible = true;
to
const bool compatible = false;
in src/lib/base64.c
- Fix scheduler to handle time skew (eg daylight savings).
- Fix scheduler to use lock_jobs() to avoid most problems
with reload. Window is now milliseconds.
Thorsten Engel [Wed, 19 Apr 2006 18:54:43 +0000 (18:54 +0000)]
improve vss
- writer states shown *after* backup (the old printing was not reliable)
- take out VSS_TIMEOUT (empty define made problems)
- improve errorhandling
- allow multiple checkwriterstates
- fix handle leak
- Apply patch from Christopher Hull
- Allow multiple connections to database with different
parameters.
- Invalidate the scheduler when doing a reload. Fixes seg
fault, but still 60 second window.
- Additional info in Reschedule message.
- Use set_jcr_job_status() everywhere to prevent loss of
cancel, error.
- Display peer IP in FD if error from connecting DIR.
- Don't increment file count for DIRBEGIN.
- Replace illegal characters in Win32 filename by _.
- Add SE_CREATE_PERMANENT_NAME privilege in Win32.
- Hash hard link filenames rather than linked list.
- Fix for security failure in chdir on Win32.
- Add CreateDirectoryA/W win32 API entry points.
- Add /silent option to Win32 FD for Install/Remove service.
- Always print Heap statistics in FD.
- Remove the -f option from the chown in Makefile.in for more
portability.
- Change setting the group in Makefile.in to use chgrp for
more portability.
- Implement a write_store and read_store to replace
dirstore in reserve.c
- Implement a Bacula read/write lock for Python rather
than using the Python lock to avoid recursive problems.
- Correct the uninstall directory names in filed/Makefile.in
as reported by a user.
15Apr06
- Correct Makefile bug found by Dan Langille.
14Apr06
- Correct Makefile for Solaris /bin/sh
- Correct mtx-changer.in for Solaris /bin/sh
- Abort if a conf resource does not have a Name =
12Apr06
- Change the name of the regex program to bregex.
- Add the bwild program to the tools directory. It is similar
to the bregex program.
- Implement create bregex.h and bregex.c in src/lib from the
Python regexp program.
- Use the new bregex.c to implement Regex expressions on Win32.
11Apr06
- More work on migration.
- Implement wild program in tools directory for testing
wild-cards. Almost identical to the regex program.
- Up port VSS single thread locking code.
- Replace N_(..) by NT_(...) to inhibit translation of
commands.
- Modify Makefile to change the permissions on Working Directory
to 770 if the directory is created.
- Do not fail the Makefile if changing the permissions or
owner/group on WorkingDir fails.
- Remove early selection of Scratch Volumes in the recycling
algorithm.
- Correct the old recycling algorithm so that Scratch Volumes
are selected when looking for a Volume in the changer.
- Correct a typo in the Verify SQL reported by Joe Park.
10Apr06
- Remove automatic case folding on Windows FDs. You must
explictly use the 'Ignore Case = yes' option.
- Remove the code added to 1.38.6 and 1.38.7 that pulls a
scratch volume in an Autochanger early in the 'recycling'
algorithm.
- Tweak license to include Microsoft restrictions.
- Move mysql.reconnect to after real_connect(). Thanks to
Frank Sweetser for the patch.
- Disallow a backslash in a File = directive (Windows junk)
unless the string is quoted.
- Apply Eric's patch to ua_label.c so that daemon protocol
is not translated.
- Add NT_ definition for strings that should not be translated.
- Apply NT_() to ua_label.c
- Remove timed wait for VSS on Win2K3 as it is not yet
implemented.
- Correct bacula.in script to reference bacula-ctl-xx in the
sysconfig directory rather than the bin directory.
26Mar06
- Fix a long standing bug in the bacula start/stop scripts.
- Attempt to add the new bacula-ctl-* files to the rpm.
- Switch to using typeof() for list traversing to avoid
as many FC5 g++ compiler warnings as possible.
25Mar06
- Split the bacula start/start script into four files:
bacula -- starts and stops calling other scripts
bacula-ctl-dir -- starts/stops the director
bacula-ctl-fd -- starts/stops the File daemon
bacula-ctl-sd -- starts/stops the Storage daemon
Kern Sibbald [Sat, 25 Mar 2006 13:35:28 +0000 (13:35 +0000)]
Split the bacula start/start script into four files:
bacula -- starts and stops calling other scripts
bacula-ctl-dir -- starts/stops the director
bacula-ctl-fd -- starts/stops the File daemon
bacula-ctl-sd -- starts/stops the Storage daemon
Kern Sibbald [Fri, 24 Mar 2006 16:37:56 +0000 (16:37 +0000)]
24Mar06
- Create datestyle fix for PostgreSQL. Fixes bug #574.
- Correct editing of JobId from int to int64 in fd_cmds.c
- Eliminate FileSet name race with bash_spaces() and multiple
threads by bashing in a local.
- Fix error return from 'use storage' to print a correct error
message rather than nothing.
- Correct false re-read last block error message when two jobs
are simultaneously writing at the end of a tape.
- Simplify exit conditions in the reserve.c code to avoid
possible non-release of reservation_lock().
- Suffle lock order in reserve to avoid deadlock between
reservation lock and device mutex.
21Mar06
- Initialize jcr mutex before first use.
Kern Sibbald [Fri, 17 Mar 2006 17:42:42 +0000 (17:42 +0000)]
17Mar06
- Implement regex test program in tools directory.
- Attempt to fix time problem with bsmtp with foreign langs.
- Add strip_trailing_newline() submitted by user.
- Implement regex matching in migrate.c
16Mar06
- Fix bug #537 to allow arbitrary time to mount a volume for
restore, if polling is turned on.
- If dir_user or dir-group is specified in ./configure apply it to
the working-dir. Fixes bug #533.
- If rescheduling a job cancel the previous incarnation with the SD.
Fixes bugs #566 and 557.
- Fix bug #567 do_message() definition type conflict.
Kern Sibbald [Tue, 14 Mar 2006 19:37:20 +0000 (19:37 +0000)]
- Add more jcr methods and make mutex and use_count private.
- Create lock/unlock methods for jcr.
- Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading
records to get to seek position.
- Integrate patch from bug #561 to correct conio.c signal definitions.
- Fix Rescheduling failed Jobs. Ensure that SD message thread
terminates correctly by doing pthread_kill(). Do not destroy
SD cond wait variable between executions of the job. Use local
mutex for cond variable to avoid blocking jcr chain. Fix poor
use of jcr use count in jobq.c for restarted jobs.
- Fix obsolete usage of foreach_dlist() to use foreach_jcr() in
lib/jcr.c -- prevents locking the jcr chaing.
- Apply patch from bug #564, which corrects listing volumes with
multiple autochangers. Apply same fix to next volume list.
- Fix bug #562 where restore bootstrap file is not unique.
- More details in implementing David's migration syntax proposal.
- Save and restore dcr when swapping drives so that if we have
a write dcr it is not lost.
- Use new routine lock_reservations() to lock the reservations
system, and call it while looking for a volume in askdir.c.
This could possibly fix bug #543.
- Stop SD command loop if job is canceled.
Kern Sibbald [Wed, 8 Mar 2006 21:17:07 +0000 (21:17 +0000)]
- Rename mac.c migrate.c
- Add user friendly display of VolBytes in job report.
- Rename target... to previous... to make it a bit easier to
understand.
- Add selection type and selection pattern to Migration (idea
given by David Boyes)
Kern Sibbald [Mon, 27 Feb 2006 11:21:44 +0000 (11:21 +0000)]
27Feb06
- Modify the Python class examples to inherit object -- new way
of defining classes. Patch from Felix Schwartz.
- Implement jobuid to replace old usage of job in keywords as
suggested by Eric Bollengier.
- Apply patch for enhancing wait from Eric Bollengier. On can now:
wait (wait for all jobs to stop)
wait jobid=nn
wait jobuid=unique id
wait job=job-name
- Implement write variables for Python to set Priority (anytime), and
Job Level, only during JobInit event.
Kern Sibbald [Thu, 23 Feb 2006 20:04:22 +0000 (20:04 +0000)]
- Add Rudolf Cejka's new rc-chio-changer.
- Implement pulling Volume from Scratch Pool if the
Volume is in the autochanger.
- Implement additional command arguments for update Volume.
Kern Sibbald [Mon, 20 Feb 2006 20:04:01 +0000 (20:04 +0000)]
20Feb06
- Note. Your database must be updated, or you must create
a new database. I have not yet incremented the database level.
- Add Location table.
- Add LocationId, DeviceId, and MediaTypeId to Media record. 18Feb06
- Implement create/get mac record in database for adding extended
Migration data to the job record.
- Add new MAC table to update/make database scripts.
- Return Storage name used when getting VolumeNames for a job.
- Change bsr file keyword Storage to Device, which is more accurate.
- Ensure that Mac records are pruned/purged.
- Tweak SD tools to deal with changing media type.
- Integrate more dev.c subroutines as methods (e.g. strerror, bsr, ...)
- Pass pointer to dcr pointer to acquire_device_for_read() so
that the subroutine can switch devices, and hence dcrs.
- Modify the multiple MediaType read code to re-use the same
dcr when switching devices. This makes the code much more
robust.
- Integrate patch from Karl Hakimian that reads JobIds, FileIndexes
from a table for restore.
- Add Storage name to VolParams, but it really should be Device.