]> git.sur5r.net Git - bacula/docs/blob - docs/techlogs/2003/kes-1.30
Initial revision
[bacula/docs] / docs / techlogs / 2003 / kes-1.30
1               Technical notes on version 1.30 28Apr03
2                       28 April 2003
3                        Kern Sibbald
4
5 General:
6
7 Changes submitted this submission:
8 28Apr03
9 - Fix command history for gnome-console (must malloc).
10 - Add two cancel points in acquire_resources(). The job will not
11   be immediately terminated in all cases.
12 24Apr03
13 - The new AutoMount code broke File archives -- fixed.
14 22Apr03
15 - Correct watchdog mutex race introduced yesterday.
16 - Add JobLevel to Admin run started by UA.
17 - Add -v to daemon startup scripts
18 21Apr03
19 - Implement bmicrosleep(sec, msec);
20 - Implement When for "run" command.
21 18Apr03
22 - Remove unsigned from socklen_t definition in hopes it will work better
23   with older systems.
24 - Remove code that attempts to set PID dir and SUBSYS dir if they
25   do not exist because it set them to sbindir!
26 - Modify mount to initially attempt to read the volume if Bacula
27   wants a tape, none is mounted, and "Automatic Mount = yes" is set.
28 17Apr03
29 - Prohibit setting --sbindir and --with-subsys-dir the same.
30 - Fix missing argument that cause Kaboom in update slots.
31 16Apr03
32 - Fix orphaned bsock when UA gets error contacting FD or SD
33 - Nearly full implementation of Win Backup API, but it does not
34   work due to lack of permission! Arggg!
35 14Apr03
36 - Implemented restoring directory permissions as they should be.
37 - Implemented reasonable regression script.  It found a number of
38   restore errors.
39 - Implemented the following @ commands in the console that work directly
40   in the console rather than in the Director.
41     input - read input from a file
42     output - write output to file
43     tee    - tee output to file and terminal
44     time   - print current time
45     version - print current version
46     exit    - quit
47     quit    - quit
48 - Implemented new bfile io routines that will permit implementation of
49   Windows native APIs for reading/writing files.
50 - By default always update hard links with the prefix, but do
51   not update soft links.  It seems inconsistent, but it is what
52   cp does.
53 - Implement wait command in Console that waits until no jobs are running. 
54 - Fixed the < code in Include/Excludes, which forgot to skip over the <.
55 - Do NOT attempt to chmod() a soft link as it will change the file behind
56   the link!
57 - OOPS! Lutz ran into a problem. In attempting to prevent string overflows,
58   I used bstrncpy() on a variable that was malloc'ed thus truncating 
59   Volume names!  Arrrggggg!
60 - Lots of documentation of new features.
61 - Rework Volume name scanning in console, made much more logical
62   and corrected a bug (confusion in calling sequence).
63 - Cleaned up a few error messages in cats adding more info.
64 - Add the IP address to error messages due to bad connects to servers.
65 - Implement default File output in config files so user can start
66   saving right away without a tape drive.
67 - Protect inet_ntoa() with mutex in case it is not thread safe.
68 - Eliminate termcap from use in gnome console.
69 - Remove unused SD maximum volume files and maximum volume jobs. They
70   are implemented in the Director.
71 - Make the default for Incremental and Differential saves to compare
72   against both st_mtime and st_ctime rather than just st_mtime.
73   This includes files moved or copied.
74   Thanks to Matthias Wamser for bringing this fix to our attention.
75 - On Win32 clients, make a pass through the include/exclude patterns
76   and change any back slashes to foward slashes. Prevents creating
77   unusable directory names containing both conventions.
78 - Move ls -l output on restored files to M_RESTORED class.
79 - Make gnome-console compile correctly on RH8.0
80 - label barcodes now works.
81 - Implemented "update slots".
82 - Tweak btape "test" to always print suggestion for re-read last block.
83 - Implemented "Cleaning Prefix"
84 - Update alter_mysql_tables.in
85 - More work on barcodes.
86 - Zap VolHdr in SD when attempting to label a tape that is not
87   there.  Prevents false tape names the next label command.
88 - First cut of bar code reading is implemented. It doesn't do
89   anything but return the list to the Director.
90 - Implemented relabel command that relabels "Purged" Volumes.
91 - Check exit code in RunBeforeJob and err the job if it is non-zero.
92 - Remove old testsuite -- too complicated
93 - Print length when Authorization fails because of bad length.
94 - Fix problem of NumVols in Pool getting reset on startup.
95 - Implement full listing of DB records by listing them vertically
96   instead of horizontally.
97 - Make changes to mysql scripts as suggested by Lutz Kittler
98 - Fixed code to write Uname to Client record.
99 - Fixed a problem (in btape) where Pmsg() was not printing.
100 - Moved re-read last block test to last in "test" command of btape.
101 - Lots of new documentation.
102 - Fixed newvol.c to handle retrying 10 times if the volume name already exists.
103 - Removed int_least16_t from sha1.h because it does not exist on some systems.
104 - Release job in SD if canceled and waiting on a mount (better cancellation).
105 - Prompt for Client in restore if not specified.
106 - Print "Selection is empty!" if no selection list found.
107 - Add new spec files and bacula.desktop from Scott.
108 - Update client every time a job is run.
109 - Add verbose option to daemons for printing more user error info.
110 - Test if console works with readline 4.3 (yes, it is OK).
111 - Release new depkgs
112 - Release new winbacula.
113 - Add Uname info to Client DB record.
114 - Improve error messages and make them more consistent when a non-existent
115   Device is requested.
116 - Separated the -mwindows option so that only Windows programs
117   are built with it (bacula-fd, ...) the tty tools such as console
118   dbcheck, smtp, testfind, ... are now able to be run in a standard
119   Windows DOS box.
120 - Add | and < options to Exclude the same as in Include.  
121 - Add typed in input to the text window in the gnome-console.
122 - Change function that gets the entry text (previously had orphaned buffer).
123 - Fix multiple Director problem in gnome-console (thanks to Lutz Kittler).
124 - Thanks to Renato, I was able to test Bacula on a FreeBSD tape drive.
125   There are a number of significant differences: 1. reading less than
126   the number of bytes in a record returns an I/O error.  2. ioctl(MTEOM)
127   looses the file position. 3. Reading two two EOF marks (or ioctl(MTEOM))
128   leave you positioned after the second EOF, so you must backspace file
129   to be able to append.
130 - Added BSF at EOM = yes/no to Device resource to allow proper positioning
131   at the end of a FreeBSD tape.
132 - Made btape "test" do much better testing of error conditions (i.e.
133   it now ensures that the append went well). It will automatically
134   detect problems and apply fixes and then retry the test, if it
135   finally succeeds, it clearly says what directives need changing.
136 - Add Scott Barninger's rpm changes to the build environment
137 - Add changes to mtx-changer so users can add eject and sleep for
138   certain autochangers.
139 - Implemented FreeBSD chflags (user defined flags).
140 - Turn restore errors during setting of owner and modes into
141   warning messages -- for restoring files as non-root.
142 - Fix how prefixes are handled in restoring soft links.
143 - Modified btape "test" command to do only those things that
144   Bacula actually does. There is much more explanation, ...
145 - Update manual.
146 - Finally had to back up to gcc version 2 from version 3 to avoid version
147   3 nightmares.   
148 - Final cygwin tweaks.
149 - Move start time to *after* the resource locks are acquired.
150 - Unable to duplicate Phil's disabling of Bacula with nmap, but
151   did make the authentication code a bit more conservative for
152   dealing with bad input.
153 - Added code to the query command to escape all strings input
154   before substitution and sending to the SQL engine.
155 - Escape user entered filenames for restore command.              
156 - Cleaned up the waiting code a bit -- using broadcast instead
157   of signal and counting the waiters.
158 - Implement new pthreads semaphore code.
159 - #define new semaphore code rather than workq on USE_SEMAPHORE.
160 - Lots of improvements to the document to address recent support requests.
161 - Implement cycle through a set of tapes suggested by Eugeny
162   Fisher with the "RecycleOldestVolume=yes" record in the
163   Pool resource.  Basically this record causes Bacula to purge
164   to oldest tape when no more tapes are found.
165 - Correct a number of small incorrect interactions between limit
166   variables during recycling.
167 - Corrected a bug in db_create_media_record() where VolMaxFiles and
168   VolMaxJobs was not written to the database.
169 - When the Director starts, the Pool record is updated in the
170   database with the current contents of the Pool resource.
171 - Corrected bnet_connect() to immediately stop (rather than looping
172   for the timeout period) if there is a fatal error (socket, or
173   hostname to ip).
174 - Reworked "purge" code to make purging Volumes easier.
175 - Made "list volumes" list the volumes in all pools -- also
176   "list volumes pool=Default" does not produce and error message.
177 - List Pool record after doing "update pool".
178 - Remove pid file code from Win32 -- not really necessary.
179 - Make bnet handle null jcr during cancel rather than crash.
180 - Add CygwinInstall.bat and CygwinUnInstall.bat
181 - Add db_lock() around newvol.c code to prevent race condition if multiple
182   callers want a new Volume name.
183 - Lots of cleanup to Win32 code, with additional error messages.
184 - Make Bacula work on Win95 (test for GetAttributesEx).
185 - Add better error messages when end of media is reached or volume
186   capacity execed.
187 - Turned off signal catching in readline(), necessary to keep console
188   from crashing on ctl-Z with RedHat 8.0.  Thanks to David Craigon for
189   testing this.
190 - Make the 3rd and hopefully final change to the Finclude structures.
191   This new version permits multiple sets of options (more code to be
192   written) to be applied against the same set of files. Thus one can
193   have options that with match of *.gz and a different set of options
194   for *.c, ...
195 - Integrated GNOME Console font resource code supplied by Phil Stracchino.
196 - Check for job_cancelled() in bnet_connect() code to stop wait loop if
197   client not available.
198 - Fix early end of file scanning conf file in lex.c, which previously
199   caused ABORT -- now reports error.  This could happen with an unterminated
200   string for example.
201 - Move Maximum File Size code before write and detect error on writing EOF.
202 - Additional fix for Solaris 2.6 and a bdb.c fix submitted by Armin Buehler.
203 - Added detection for Solaris 2.6, which uses older setsockopt() calls.
204 - Defined sockopt_val_t for setsockopt() calls.
205 - Added fixes sent by Bevan Anderson that fix multiple connects to FD
206   (I zap keys for security, so must put back dummy key).  Also a fix
207   to the Internal database that wrote garbage after the filename in
208   the database.
209 - Back out the __SVR4 changes.
210 - Add automatic configuration of socklen_t
211 - Attempt to fix problems reported by Lutz with multiple simultaneous
212   open file Volumes (experimental code). Serialized acquire. This may
213   fix the problem, but more thought and testing is necessary.
214 - Add table of "supported" autochanger models.
215 - Add Solaris 2.6 (__SRV4) changes sent by Peter Schmitz.
216 - Correct tape selection code in SD (|| => &&). Thanks to Chuck Hemker
217   for the patch.
218 - Eliminate FileOptions. Implement new Finclude and Fexclude that
219   have file options contained in it.  New structure must be transmitted
220   to FD.
221 - Split Include/Exclude into new inc_conf.c file.
222 - Cleanup new Include/Exclude and FileOptions.  Structures in Director
223   now correct.  Must transmit FileOptions to FD.
224 - WARNING:  With the adddress and port code in the Catalog you MUST
225   remove old address= and dport= records!!!!!
226 - Added code to remove cancelled jobs from the workq -- needs testing.
227 - Added first cut AIX from output James MacLean sent me.
228 - Second cut of FileOptions.
229 - First cut of parsing FileOptions and Counters.
230 - Added address:port for MySQL as well as socket for local access.
231 - Fixed job.c in filed to properly handle excluded files. Apparently
232   I changed the daemon protocol but forgot to update the code.
233 - Enhance testfind to handle include and exclude files
234 - Fix getdomainname() prototype for Darwin
235 - Added new -u and -g options for specifying userid and groupid to
236   use when running, so that Bacula can reduce its privileges.
237 - When Bacula was hanging due to an NFS volume being down, I 
238   fixed a few places in the File daemon where is should have immediately
239   terminated the connection instead of waiting for the Director to do so.
240 - Added first cut support for Darwin.
241 - Temporarily comment out the O_NOFOLLOW to avoid possible subtle problems.
242 - Implemented O_NOFOLLOW in creating files in create_file.c to prevent
243   creating a file at the end of a symbolic link.
244 - Use chown() if lchown() does not exist (e.g. Darwin).
245 - Always close stdin on startup to avoid having /dev/console attached.
246 - Change all DATE occurrences to BDATE because it is used by Cygwin headers.
247 - Add printing of Volume names in SD status output.
248 - Display all open devices in device chain in SD status output.
249 - All changing Pool in console run command.
250 - Thanks to Eric Bollengier for pointing out that the run_program()
251   return status was not correctly generated. Now fixed (I hope).
252 - Corrected crash in Internal Database getting Volumes.
253 - Flush all daemon messages at the end of every job.
254 - Fix Install.bat script so that Bacula restarts after reboot on WinNT/2K systems.
255 - Minor changes in the gnome-console directory.
256 - Integrated in my old Tcl/Tk code into src/tconsole and moved it up
257   from C to C++.  Pretty crude, but it is a beginning.
258 - Close syslog() %n exploit in message.c
259 - Edit space before each line in gconsole.
260 - Added INCEXE structure so we can have FileOptions.
261 - Added support for multiple simultaneous open file volumes.
262 - Fix hard linked files so that the one saved is always restored.
263 - Add * to restore "dir" listing to indicate marked files.
264 - Add ability to make md5sum and sha1sum in lib directory.
265 - Work a bit more on the new daemon protocol.
266 - Use unmask of 022 or more restive
267 - Create File volumes with 0640 permissions
268 - Added support for SHA1 signature. Need to modify DB to have type.
269 - Document SHA1.
270 - Work a bit on getting proper child status from bpipe calls.
271 - Added Ludwig's mtx-changer to the examples/devices directory.
272 - Added a Warning not to use the Internal Database when it is initialized.
273 - Compiled and tested sha1, and added it to the library.
274 - Added code to print the "load slot" status after autoloading.