X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Ftechnotes-2.1;h=aab57c1480abc949d79af6ea1961bf5a1094daab;hb=5580fefcd4d6bb54efe68d78803656da947f2391;hp=fc6e9770967478d45a0da24a89a491b5ff7e4cfb;hpb=5c97ebf9882030afe4c93cfa84ec46eeafd06a97;p=bacula%2Fbacula diff --git a/bacula/technotes-2.1 b/bacula/technotes-2.1 index fc6e977096..aab57c1480 100644 --- a/bacula/technotes-2.1 +++ b/bacula/technotes-2.1 @@ -1,7 +1,417 @@ Technical notes on version 2.1 General: -24Jan07 +28Apr07 +kes First cut update job. +kes Correct configure to include qmake of src/qt-console directory. +26Apr07 +kes Make restore job yes/mod/no print in one command so GUI works. +kes First cut implementing backup and restore client. +kes Correct editing in Verify output that caused a seg fault. +25Apr07 +kes Insure that bat.conf is not overwritten during installation. +kes Fix important bug in db_sql_query() in mysql.c. It was introduced + while I was implementing migration in March 2006 ! +24Apr07 +ebl Cleanup file relocation, using char *RegexWhere instead of + char *where + bool where_use_regexp +kes Update some manpages and add bat manpage. +kes Make a first cut at converting bacula.spec.in for bwx-console + and bgnome-console. +kes Apply patch from John Goerzen to add hostname as fourth argument + to make_catalog_backup script. +kes Fix typos I introduced into bsmtp.c +kes Make pm_strxxx() routines handle input of NULL pointer. This + is to protect from NULL pointers returned from SQL databases. +kes Correct typo in bacula-sd manpage as pointed out by John Goerzen. +kes Add more debug to FIFO code -- fix fifo regression test. +23Apr07 +kes Implement posix_fadvise in FD, and for reading spool files in SD. +kes Add thread timer to bnet_connect() to break from OS if wait time + expires. +22Apr07 +kes Update Win32 build to include new files, new symbols, and + renamed files. +kes Implement socket level heartbeat (tcp_keepidle) +ebl Commit File relocation patch +kes Make bat have 'make install' target. +kes Warn during install if old gnome-console binary found. +kes Warn during install if old wx-console binary found. +kes Add -8 option to bsmtp command line to add content type utf-8. + Fixes bug #809. (Character coding problem in bsmtp). +kes If < is found in target (from, to, cc) then do not enclose the + target in < > in bsmtp. Fixes bug #772 (malformed address). +kes When printing certain items in dbcheck, stop after 300000. + Fixes bug #822. (dbcheck loops). +kes Incorrect status in Dir after waiting for mount with poll set. + Fixes bug #825. +21Apr07 +kes Extend idea of Prefer Mounted Volumes to mean a volume about + to be mounted. +kes Print waiting to reserve a device every 5 mins. +20Apr07 +kes Don't call close_part in label.c if tape and relabel. +kes Don't free volume if busy in close() -- should help with + bug 801. +ebl Fix #824 RunScript bug (After script could be execute twice) + Now, Before Script can use RunsOnSuccess and RunsOnFailure options + By default (like before) RunsOnSuccess=true and RunsOnFailure=false + Add a regression script to test RunScript +19Apr07 +kes Correct usage of MTIOCLRERR ioctl for clearing persistant errors + on Solaris. +18Apr07 +kes The bgnome-console (gnome-console) and bwx-console (wx-console) are + deprecated. No additional bugs will be fixed, and they will be dropped + in a future release (probably 2.4.0). +kes Change name of wx-console to bwx-console to make it more Bacula + unique. +kes Change the name of gnome-console to bgnome-console to make it + more Bacula unique. +14Apr07 +kes Some time in March, a Feature Request with patch from Jorj Bauer + was committed by Landon (with my approval). + It implements: + The ability for the director to validate a Client (FD) CN against + an arbitrary set of patterns rather than the hostname, with + A new 'TLS Allowed CN' set of directives which are implemented + in the Client resource. Then pattern matching is used in place + of hostname matching against the Certificate's CN. As an example, we + have certificates which (a) use a local CA, and (b) have a CN of the + form client_123. +kes Add new/changed entry points to Win32 build +kes Create unaccepted-projects for projects that are not accepted. +kes Simplify locking in the reservations system. +kes Add more debug code in reservations. +kes Make sure error condition on reserving a volume is handled correctly. +kes Correct handling of volume_in_use. +kes Correct handling of initializing a device. +kes Move handling of broadcasting releasing a device into release_device(). +kes Correct attaching dcr to dev so that it is only done if device + is properly initiated. +12Apr07 +kes Locking debug level tweaks in SD. +kes Tweak new Volume code. +11Apr07 +kes Add exec external-command [wait-seconds] to bconsole. This + executes the external-command. Note! normally external-command + should be enclosed in double quotes. +kes Turn the .die command on only if DEVELOPER is defined -- i.e. + it should normally be off in a production system. +10Apr07 +kes Implement die command for SD so that we can force it to dump. +kes Implement SD lock debug code. +kes Implement new algorithm for keeping Volume list in SD. It + is now owned by the device. +04Apr07 +kes Implement new code for freeing in use volumes that should + resolve if not all, some of the problems of multiple drive + tape conflicts described in bug 801. +03Apr07 +kes Fix gui/bacula-web/images files in svn. +kes Turn on FreeBSD/OpenBSD code to set EOT model on tape. +02Apr07 +ebl Fix a bug in batch mode (in string escape) +kes Correct migration prune SQL typo that crept in in a + recent 2.1.x change. +01Apr07 +kes Move bnet_despool() into class in bsock.c +kes Modify job report to include director name and Build OS. +kes Move drop root privilege and check_catalog() before fork. +kes Add update database scripts (version 9 to 10) to updatedb directory. +31Mar07 +ebl Check size and age of each file after its backup to see if + it has changed during backup, if 'checkfilechanges' is set. + The FD will do an extra check (stat(2)) after + each file backup. mtime, ctime and size are compared with + 'before backup' information. If time or size mismatch, an + error message will be generated. You must upgrade FD to use it. +30Mar07 +kes Make database name and user configurable + --with-db-name=xxx --with-db-user=xxx +kes Add back database type to message.c for debugging. +29Mar07 +kes Implement dir_sql() which issues an SQL query. +kes Modify bat medialist to use dir_sql() and do some minor C++ + formatting as well as eliminating a number of pointers, simplifing + the code. +28Mar07 +kes Fix some of the mtx-changer grep commands for tape label readers. +kes Convert a number of bsendmsg into the appropriate send/warning/error + message class calls. +kes Suppress the using database message in the .sql command. +kes Correct an incorrect bnet_tls_client prototype -- patch from Martin. +27Mar07 +kes Add context menu for floating a window. +kes Some minor cleanup and name changes in qt-console +kes Add doing mt setblk 0 in Win32 mtx-changer. +kes Apply Martin's bug fix to move definition of ENODATA for + FreeBSD to bsock.c +ebl Add a BUSY handler to sqlite to be able to use multi_db = 1 with + sqlite2 and sqlite3. +26Mar07 +kes More pruning cleanup. +kes Turn on wait_for_drive by default in mtx-changer. +kes Turn on Batch insert code by default as it now passes regression. +kes Add ./configure --enable-bat to enable building of Bat. + No install yet though. +25Mar07 +kes Implement a new .sql command for bat. +kes Implement code to turn off pruning in obtaining the next volume. + Pruning is turned off for the status dir command, but turned on + for SD requests and for the list nextvolume command. +24Mar07 +kes Correct Qmsg() that was not updated correctly when committing a + previous change (probably the recent TLS patch). +23Mar07 +kes Write new subroutine is_volume_purged() that explicitly checks + if the Volume is purged, and if so marks it as such. This should + resolve problems reported about needing to mount twice to recycle + volumes. +kes Rewrite pruning algorithm to do more work in the SQL engine, and + to pass a list of JobIds to be deleted to SQL. Also, minimize the + amount of duplicated code. +kes Do volume pruning only for the Media Type desired (reduces pruning time + if multiple Media Types are in the same pool). +kes Implement more detailed info in the Job report for the Bacula version + and architecture. +kes Switch from POOLMEM to POOL_MEM (a real class) in ua_prune.c and + ua_purge.c. +ebl Add bbatch tool to bench database and insert mode. + Fix sql quote stuff in batch mode + Fix sql stuff for mysql +22Mar07 +kes Correct problems with am/pm scheduling. Fixes bug #808. +kes Implement new prunning code that prunes up to 1000 jobs at + the same time. The same technique can be applied to a number + of other prune/purge subroutines. +kes Add an insanity check when starting a new tape job to ensure + that the tape position has not been changed. If so fail the + job. +kes Fix Win32 build for dlls to add the folllowing: + src/lib/bsock.c -- new file with new entry points + src/lib/dlist.c -- new entry points + src/cats/sql_create.c -- new entry point + src/cats/sql_cmds.c -- new DATA item exported +21Mar07 +ebl batch mode cleanup bscan-test is ok now. +kes Implement SD code to check length of disk volume before appending. +18Mar07 +kes Correct return status on db_batch... routines. +kes Add call to db_write_batch_file_records() to migration code. +ebl Fix AfterJob timing +kes Move the checking of the database in initializion of the Director + to after we drop privileges. This avoids the need for both root + and bacula access to the DB. +kes Correct a misplaced variable definition in src/filed/backup.c +kes Correct how the new batch insert db_create_attributes_record() + uses the arguments. Caused a seg fault in bscan. +kes Implement lock() and unlock() methods in DEVICE class. + Implement block() and set_block(xx) methods in DEVICE class. +kes Modify bnet_connect() so that it uses time() to check for the + wait time expiring (on some OSes, some system calls may not + return immediately). +kes Modify Verify to obtain the previous JobId when it is actually + running rather than at schedule time (as it was in 1.38.x). +kes Fix src/job.c to handle MaxWaitTime correctly. This should + fix bug #802. +kes When checking pid in pid file, continue running if the pid is + the same as ours. This occurs on IRIX after a system crash. + Fixes bug #797. +10Mar07 +kes Extend new GUI API. +kes Make the ua structure a class, and implement send_msg(), + error_msg(), warning_msg(), and info_msg(). +08Mar07 +kes Apply fix from for building wx-console on the Mac from + bug #798. +kes Implement new select mechanism for GUI programs. +kes Reorganize initialization of stackedWidgets in bat. +07Mar07 +kes Add updated nagios plugin supplied by Christian Masopust. +05Mar07 +kes More bat implementation. +kes File migrate bug with Pool Occupancy using mediaid instead + of jobids. Fixes bug #795. +kes Fix orphaned buffers in filed backup and verify due to + crypto buffers not freed during errors. Fixes bug #789. +kes Extend new GUI api code to tree commands. +kes Ensure that tree and dot commands check console ACLs. +kes Permit marking directory with trailing slash. +kes Allow 20 console connections (instead of only 10). +04Mar07 +kes Add smartctl call to bacula-sd.conf as an example of getting + tape alert info. +02Mar07 +kes Modify jobq.c to let simultaneous restore jobs run. This may + cause them to fail if they cannot get a drive. +kes Add Client Connect Wait to Storage daemon to permit users to + modify the time the SD waits for a FD connection. +29Feb07 +kes Correct virtual changer check which was backwards. This caused + volumes to be unloaded into slots already occupied. +28Feb07 +kes Apply Command ACL filter to JobId list in restore command. +kes Correct typeo in var.c patch. +27Feb07 +kes Don't let Bacula prune File or Job records for the current Job. +kes Fix variable substitution pad + inc bug reported (with patch) + in bug #791. +26Feb07 +kes Correct SQLite log table index as reported by Luca Berra. +24Feb07 +ebl fix fifo stuff, bacula tries to rewind the fifo... Thanks to Andreas +22Feb07 +kes Begin implementing new comm signals for API. +kes Fix a few places in lib/message.c where the open fd may + not be zeroed. +kes Continue implementing lib/bsock.c (real class). Make jcr, + who, host, and port private. There are new methods to access + them for non-class use. This required touching a number of files. +21Feb07 +kes Add LANG=C to autoconf/randpass so it works with languages other + than English. Fixes bug #788. +20Feb07 +ebl Revert ClientRunBeforeJob to old position as in 1.38.X. + This fixes bug #780 + You will not be able to generate Include/Exclude list any more. + It will be fixed soon. + If you want to use this, you can apply + trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch +19Feb07 +kes Restore of sockets created false error messages because Bacula + no longer restores sockets, but the code was still trying to + set the attributes on a non-existent file. Reported by a user. +ebl finish RecyclePool feature + Media will takes Pool.RecyclePool + when moving from Scratch to a Pool or when user will do + update volume=xxx frompool + To use it, add RecyclePool = aPool to your Pool resource + Pool { + Name = Default + RecyclePool = Scratch + ... + } + TODO: update manual +kes Expand new BSOCK class adding signal() and new BNET signals. +kes Begin enhancing the dot commands adding a new API function + that returns more information and will make it easier + to interface to the Director from a program. +18Feb07 +kes Make DEVICE fd private. Its new name is m_fd, and can be + obtained with dev->fd() outside the class. This is the + first of many DEVICE members to be made private. +kes Implement Michael Renner's idea on having a virtual disk + changer. I made some minor modifications (e.g. I did not + implement the Virtual Changer directive, but simply set + the Changer Command to an empty string. +17Feb07 +kes Implement a BSOCK send() method that writes the whole record + in a single write() request rather than in two. +ebl add update volume=xxx recyclepool=yyyy + volume takes recyclepool from pool when using update volume=xxx from pool +16Feb07 +kes Fix encryption deblocking bug, which caused some restored files + to be truncated. This fixes bug #763. +kes Add FD event sequence order prepared by Eric -- for RunScripts. +kes Fix 12am/pm bug as reported in bug #782. +13Feb07 +kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1. +ebl Use btime_t instead of uint64_t in media patch. +11Feb07 +kes Optimize the use of the database a bit in the Status dir command. + Only open it when needed, ensure that if any previous database + was opened, it is closed. +10Feb07 +kes Correct VolCatBytes bug from media patch. +kes Apply patch from bug #612 by Rudolf Cejka to speedup pruning + in the case of orphaned records. +kes Modify dbcheck to handle orphaned JobMedia, Path, Filename, + and File records in 300K chunks to be more efficient. This + idea came from Juan Luis Frances (if I remember right). +kes Apply Eric's scratch patch that moves a purged Volume to + the RecyclePool. Question: how is RecyclePool set? what + happens to the ScratchPool? +kes Apply Eric's media patch that collects read/write media + times as well as byte counts. This patch requires a + simultaneous upgrade of the DIR and SD. Note, there + should be some way to turn off timing. I'm not sure + times are in Bacula units. +kes Apply Eric's batch-insert patch. +09Feb07 +kes Update projects list. +08Feb07 +kes Implement Include/Exclude file lists in FD as dlists using + the new dlistString class. This permits efficiently having + large include/exclude lists and completes project Item 25. +kes Fix dird/ua_cmds.c so that a cancel command checks if the + console is authorized to cancel the job. This fixes bug + #767. +kes Modify SD so that the VolCatJobs medium record is updated + at the beginning of a Job rather than the end. This + fixes bug #775 where exceeding MaxVolJobs caused jobs + to fail. +kes Added a mutex around getting and setting Volume information + so that multiple simultaneous jobs will single thread. +07Feb07 + Switch to using Subversion +kes Remove src/pygtk-console/ from configure +06Feb07 +kes Delete src/lib/btree.c from win32 build, then add rblist.c + plus the entrypoints. +kes Apply patch supplied that corrects debug print + in canceling jobs for max run time. Supplied as + part of bug #621, which was previously fixed. +05Feb07 +kes Test on job_canceled() and sd_msg_thread_done inside + loop starting the message thread to avoid a race condition. + Fixes bug #771. +kes Remove rl_catch_signal from console.c as it conflicted + with the header definition. Fixes bug #765. +ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive) +04Feb07 +kes Clarify some stored/acquire messages to indicate if the + problem is with read or append. +02Feb07 +kes Fix memory leak with storage ids in cats/sql_get.c +kes Terminate watchdog earlier to avoid reference to released + memory -- reported by Jason Austin. +kes Move closing the database from jobq.c to the director daemon + termination routine. This fixes memory leaks for shadow jobs + (i.e. migration jobs). +kes Free up the unique jobid chain items in migrate.c. This fixes + a memory leak problem. +kes Convert some ugly looking for statements to use foreach_alist + in findlib/find.c. This will facilitate converting the structures + to use dlist (for large include/exclude lists). +kes Fix a bug in the btree.c and btree.h routines, then rename them + rblist and add them to be built in src/lib. Include some new + methods written by Rudolf Cejka that make the code more readable + (hides some of the ugly casting). +kes Add set_next() and set_prev() methods which make the code much more + readable. Also add a new dlistString class that facilitates storing + strings in dlists. To be used in the large include/exclude lists. +kes Make some trivial modifications to lib/tree.h that use rblist + rather than dlist for storing the tree links. This was suggested + by Rudolf Cejka. The result of this is that the restore tree now + uses red-black binary trees rather than simple linked lists. This + should give rather dramatic speed improvements for directories + contining large numbers of directories/files (more than 10000). +28Jan07 +kes Fix maxruntime bug #621. +26Jan07 +ebl Implement the include JobID in spool file name project. +kes Reorder projects file in order determined by Jan 2007 vote. +kes Implement item #12 on project list -- quick release of FD by + the SD. +kes Fix open of SQLite3 db where user does not have write permission + so that DIR does not crash. Fixes bug #761. +25Jan07 +kes Add back missing @ in Win32 Makefile. +kes Change 'Device not configured to autolabel' from INFO + to WARNING. +kes Fix jobq.c to restart failed jobs when Reschedule Times = 0 + which should restart an indefinite # of times. kes Fix configure --help to print --with-mysql[=DIR]. Same for other DIR specifications. 23Jan07