From 57b7cea099258912a50acfa49294bf19fdd7fc4f Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Fri, 28 Mar 2008 21:07:49 +0000 Subject: [PATCH] kes Fix handling of JobMedia records during spooling and when a Volume is changed without actually writing data to the Volume. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6701 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/ReleaseNotes | 99 ++++++++++++++++++++++++++++++++++++-- bacula/src/stored/askdir.c | 2 +- bacula/src/stored/spool.c | 5 +- bacula/technotes-2.3 | 11 +++-- 4 files changed, 108 insertions(+), 9 deletions(-) diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index 2a434bb4dc..3652d33ea0 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,7 +1,7 @@ - Release Notes for Bacula 2.2.2 + Release Notes for Bacula 2.2.9 - Bacula code: Total files = 506 Total lines = 190,209 (*.h *.c *.in) + Bacula code: Total files = 498 Total lines = 167,596 (*.h *.c *.in) 82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3 This Director and Storage daemon must be upgraded at the same time, @@ -10,6 +10,96 @@ use some of the new features that affect the FD. In other words, you should not have to upgrade all your File daemons when you upgrade. There is no database upgrade needed from version 2.0.x to 2.2.0. +Version 2.2.9 is a bug fix to version 2.2.8: +- *Massive* commit of all fixes and back ports to create 2.2.9 + Mostly SD reservations enhancements. +- Fix Win32 FD backup/restore memory leak due to improper termination + of BackupRead/Write. This fixes bug# 1038. +- Fixes a StorageId problem with volumes after migration. +- Implements autostart scripts for Debian +- Fix mtx-changer.in for broken Debian mt program. +- Apply doc fix from bug #1062. +- Resolve crash and improper restore wx-console Win32 restore + GUI. Fixes bug #1065. +- Update Win32 wxWidgets to latest version. +- Attempt to do correct handling of Win32 mount points. Should + fix bug #1046. +- Add const to AIX prototype for initgroups() +- Undo bug #1047 heap overrun fix as it is not correct. +- Fix to the JobMedia patch, which introduced a new problem. +- Fix creating first JobMedia record during Migration to include + proper index. This caused slow restores of migrated jobs. +- Fix bug #1047, do not strip paths on symbolic links. +- Set catalog backup database and user name from values specified on + the ./configure line. +- Apply patch to correct bug #1031, about wrong pool source information + in job report. + + +Version 2.2.8 is a bug fix to version 2.2.7: +- It fixes bugs: 1036, 1033(doc), 1028, 1040, 1045(doc), 1030, + 1042(partially), and possibly bugs 1018 and 1032. + Bugs 1018 and 1032 involve problems with multiple-drive autochangers, + and are difficult to reproduce. + See the ChangeLog for more details. + +Version 2.2.7 has several new features and several important bug fixes + since version 2.2.6: +- It fixes bugs: 1009, 1022, 1024, 1019, 1012, 1021, 1020 + 1007, 1008. For more details, please see the technotes-2.1 file. +- Fixed a seg fault reported by Frank Sweetser that depended on + exact path lengths, but the problem was in bsnprintf.c +- Double quoting include filenames (@xxx) in Bacula conf files is now + possible, thanks to a patch by Michael Stapelberg. +- You can pipe input to include filenames (@|prog) by using a vertical + bar, thanks to the above patch. +- A daylight savings time bug in the Win32 bsmpt was fixed by a patch from + Nerijus Baliunas. +- Marc Cousins submitted a patch that permits building the PostgreSQL + driver with version 8.3. +- The configure option --archivedir has been changed to --with-archivedir + +Version 2.2.6 is a minor bug fix release to version 2.2.5 +- It fixes bugs: #1003, 942, 982, 990(response only), 991, + 993, 986, 976. +- Fix bat crash wen it cannot connect to Director. +- Fix joblist failure bug in bat. + +Version 2.2.5 is a major bug fix release to version 2.2.4 +- It fixes the following bugs: #961, 962, 963, 969, 968, 960, + 964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954, + 957, 908, 958, and 955. +- It also improves listing performance problems in bat pointed + out by Chris Howells. + +Version 2.2.4 is a minor bug fix release to version 2.2.3 +- Possible fix for authorization problems bug #953. +- Possible fix for bug #908. +- Add waits to multiple exit detection code to try to force pid + file to always be deleted. +- Restore good dev.tar.gz to rescue set appropriate binary property. + This fixes bug #950. +- Fix seg fault in error exit of acquire_for_read after unsuccessfully + trying to switch drives by checking for blocking before unblocking. + Fixes bug #906. +- Cancel storage daemon in all cases where FD reports error. This + should fix virtually all cases of bug #920 and will ensure that Devices + are released as soon as possible. +- Fix error message that was clobbered when Dir tells SD it does not + have write permission on Volume. This should fix a minor point + in bug #942, but not the main problem. +- Fix migration code to get correct Volume name with multiple volumes + by skipping |. Fixes bug #936. +- Implement patch supplied by Landon to fix bug #944 where using + TLS with bconsole uses 99+% of the CPU. +- Fix bug #946 about "bacula-dir -t" which doesn't works + as expected. +- Using "m" in bconsole will show messages as in prior versions + and not memory usage. + +- Note, you need GTK >= 2.10 to be able to link the Tray Monitor + program. + Version 2.2.3 is a critical bug fix release to version 2.2.2 - Fix bug #935, and possibly also bug #903 where files were not restored. MediaId was not properly set in JobMedia record after @@ -26,9 +116,10 @@ Version 2.2.3 is a critical bug fix release to version 2.2.2 - Note, you need GTK >= 2.10 to be able to link the Tray Monitor program. -Version 2.2.2 is a bug fix release to 2.2.1 +Version 2.2.2 is a minor bug fix release to 2.2.1 - Detect if new PosgreSQL batch insert API is present. -- Correct incorrect mempool call causing Director crash. +- Correct incorrect mempool call causing Director crash on older + systems that do not have va_copy(). - Update spec files for 2.2.1 release Version 2.2.1 is mainly a minor bug fix release to version 2.2.0, diff --git a/bacula/src/stored/askdir.c b/bacula/src/stored/askdir.c index 0a576dab73..96ba8d1de0 100644 --- a/bacula/src/stored/askdir.c +++ b/bacula/src/stored/askdir.c @@ -401,7 +401,7 @@ bool dir_create_jobmedia_record(DCR *dcr) dcr->Copy, dcr->Stripe, edit_uint64(dcr->VolMediaId, ed1)); Dmsg1(100, ">dird %s", dir->msg); - if (bnet_recv(dir) <= 0) { + if (dir->recv() <= 0) { Dmsg0(190, "create_jobmedia error bnet_recv\n"); Jmsg(jcr, M_FATAL, 0, _("Error creating JobMedia record: ERR=%s\n"), dir->bstrerror()); diff --git a/bacula/src/stored/spool.c b/bacula/src/stored/spool.c index b8c06918ea..05978d82e2 100644 --- a/bacula/src/stored/spool.c +++ b/bacula/src/stored/spool.c @@ -1,7 +1,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2004-2007 Free Software Foundation Europe e.V. + Copyright (C) 2004-2008 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -248,6 +248,9 @@ static bool despool_data(DCR *dcr, bool commit) dcr->dblock(BST_DESPOOLING); dcr->despool_wait = false; dcr->despooling = true; + if (!dcr->NewVol) { + set_start_vol_position(dcr); + } /* * This is really quite kludgy and should be fixed some time. diff --git a/bacula/technotes-2.3 b/bacula/technotes-2.3 index 441e011ea6..34f6951f76 100644 --- a/bacula/technotes-2.3 +++ b/bacula/technotes-2.3 @@ -1,11 +1,13 @@ Technical notes on version 2.3 -New features (buried): + +New features: +Accurate files TLS authentication bextract Win32 data Run afterVSS Multiple command/console per runscript -console command +console command in runscript Bat API Plugin API State file updated on job term @@ -18,10 +20,13 @@ Honor nodump flag Improved status commands for Bat Spooling/despooling status Implement ftruncate for NFS devices -Add long term statistic job table +Add long term statistics job table General: +28Mar08 +kes Fix handling of JobMedia records during spooling and when a + Volume is changed without actually writing data to the Volume. 26Mar08 kes Implement bsock code to permit locking. Use the new code in Verify in the FD to prevent the heartbeat thread from disrupting the Verify -- 2.39.5