Kern Sibbald [Fri, 26 May 2006 21:02:29 +0000 (21:02 +0000)]
26May06
- Prevent DVD code from rewriting label if the device cannot be
opened read/write.
- Used __GNUC__ to detect GNU g++ as suggested by John Goerzen to
fix Debian build bug.
- Fix Dir/SD run race in migrate.c, verify.c, and restore.c
- Integrate manpages contributed by Jose Luis.
- Update projects file.
- Add manpages Makefile.in to configure.in
- Remove installation of bacula.8 in scripts directory.
24May06
- Implement patch submitted by cesarb in bug #606 to implement O_NOATIME
support.
O_NOATIME is a open() flag which makes it possible to read a file without
updating the inode atime (and also without the inode ctime update which
happens if you try to set the atime back to its previous value). It also
prevents a race condition when two programs are reading the same file, but
only one does not want to change the atime. It's most useful for backup
programs and file integrity checkers (and bacula can fit on both
categories).
Recent versions of the Linux kernel and glibc have support for it (the
glibc support being mostly copying the O_NOATIME definition to
bits/fcntl.h). If there's no support for it on the kernel, trying to use
it does nothing (since the kernel ignores unknown flags).
If the kernel has support for it, trying to use it either works, fails
silently (mostly in remote filesystems), or returns errno=EPERM (if you
are not either the owner of the file or root). A simple way to prevent the
failure is to open the file without the flag and set it later with
fcntl(F_SETFL), ignoring any EPERM errors.
- Applied patch posted by Jaime Ventura to bug #570 to correct failure
of restarted jobs to complete (due to a destroyed pthreads conditional
variable used by the message thread).
- Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes
set to zero.
- Apply patch from John Goerzen bug #611 to fix bad manual links in the code.
- Apply patch from Rudolf Cejka bug #614 to removed trailing
colons in query.sql file.
- Apply patch from Rudolf Cejka bug #613 to correct prunning of files
not to create orphans.
- Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime
in restore long listing.
- Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead
of incorrect MarkedId.
- Apply patch from adioso bug #616 to correct text in manual (replace
Director with File daemon).
- Rework a few of the zlib changes so that they build properly.
Kern Sibbald [Sun, 21 May 2006 08:56:15 +0000 (08:56 +0000)]
- Move DIR run command to SD before starting the message thread
as suggested by Cristopher Hull to avoid a race deadlock from
two threads using the bsock structure.
- Modify LICENSE to correct some problems pointed out by Debian.
Thorsten Engel [Wed, 17 May 2006 09:26:14 +0000 (09:26 +0000)]
- reduce page faults by reusing zlib buffers during backup (on windows > 10.000/sec, now <200/sec)
- reduce utf8file->ucs2file conversion load during backup to 1/3
Kern Sibbald [Fri, 5 May 2006 14:10:27 +0000 (14:10 +0000)]
- Correct EOF with no \n lex.c problem.
- Tweak compat.h compat.cpp and merge with apcupsd
- Add additional INFO messages if autochanger cannot be used.
Kern Sibbald [Mon, 1 May 2006 08:18:44 +0000 (08:18 +0000)]
- Work on getting wx-console building on MinGW. wxWidgets now builds
started adding Makefile ...
- Moved MinGW library objects to src/win32/lib to reduce clutter.
Eric Bollengier [Sun, 30 Apr 2006 17:14:27 +0000 (17:14 +0000)]
- fix : reload a bad configuration file doesn't kill director any more
o add an extra field to LEX err_type (M_ERROR, M_ERROR_TERM...)
o add lex_set_default_error_handler() to set lex->err_type
o add an extra option (message level) to parse_config()
- Integrate Howard's VSS patch. Tweak it a bit. VSS now
works in the MinGW build with the exception that there
is a problem with accented characters -- i.e. there is
some mapping problem with wide characters.
- The code no longer compiles with Microsoft VC++.
- Start implementing Christopher's St.Bernard code.
- Add Christopher's mods for opening files.
- Strip \r \n from Win32 error messages (Christopher)
- Add more info about Win32 system if unknown (Christopher)
- Use bstrn(cpy, cat) routines to avoid overrun in compat.cpp
- Fix a number of incorrect strings marked for translation, when
they should not be (e.g. commands).
- Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob
Patches supplied by user in bugs #608 and #599.
- Use most recent of st_ctime and st_mtime in restore tree DIR
listing. This fixes some problems with Win32 printing incorrect
values.
- Correct the clock shift comm time calculation between the DIR
and the FD. It was added rather than subtracted.
- Strip all backslashes in filenames to be restored on Win32
machines -- the names should all be in Unix format, and if
there are any backslashes it is most likely due to an improper
FileSet definition, and the files will not otherwise be
restorable.
- Remove lib/regex.c (replaced by bregex.c).
- Delete src/win32/License.txt
- Modify installer to install LICENSE
- Integrate the majority of the Mingw cross-tools submission
made by Howard Thomson. Everything compiles, with zlib, openssl,
and VSS turned off. Linking needs a pthreads library ...
- Add 'Dir Status' button to the gnome console.
- More work on migration.
- Restore non-compatible base64 coding to permit compatibility.
- Display heap stats in Storage daemon without debug level.
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.