Kern's ToDo List
- 28 May 2004
+ 31 August 2004
+
+Major development:
+Project Developer
+======= =========
+IPv6_2 Meno Abels
+Data encryption Meno Abels (see projects)
+Communication encryption Meno Abels
+Version 1.35 Kern (see below)
+========================================================
+
+1.35 Items to do for release:
+- Bacula rescue CDROM implement isolinux
+- Add new DCR calling sequences everywhere in SD. This will permit
+ simultaneous use of multiple devices by a single job.
+- Look at patches/bacula_db.b2z postgresql that loops during restore.
+ See Gregory Wright.
+- Perhaps add read/write programs and/or plugins to FileSets.
+- Make sure Qmsgs are dequeued by FD and SD.
+- Check if ACLs allocated at dird_conf.c:1214 are being properly
+ released.
+
+- Add bscan to four-concurrent-jobs regression.
+- Add IPv6 to regression
+- Alternative to static linking "ldd prog" save all binaries listed,
+ restore them and point LD_LIBRARY_PATH to them.
+- Document a get out of jail procedure if everything breaks if
+ you lost/broke the Catalog -- do the same for "I know my
+ file is there how do I get it back?".
+- Test/doc Tape Alerts
+- Doc update AllFromVol
+- Doc dbcheck eliminate orphaned clients.
+- Doc -p option in stored
+- Document that console commands can be abbreviated.
+- New IP address specification is used as follows:
+ [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = {
+ [[addr|port] = [^ ]+[\n;]+] }] }
+
+ so it could look for example like this:
+ SDaddresses = { ip = {
+ addr = 1.2.3.4; port = 1205; }
+ ipv4 = {
+ addr = 1.2.3.4; port = http; }
+ ipv6 = {
+ addr = 1.2.3.4;
+ port = 1205;
+ }
+ ip = {
+ addr = 1.2.3.4
+ port = 1205
+ }
+ ip = {
+ addr = 1.2.3.4
+ }
+ ip = {
+ addr = 201:220:222::2
+ }
+ ip = {
+ addr = bluedot.thun.net
+ }
+ }
+ as a consequence, you can now specify multiple IP addresses and
+ ports to be used. In the case of a server, it will listen on
+ all those that you specify. In the case of connecting to the server,
+ Bacula will attempt connecting to one at a time until it succeeds.
+ And, in a few other special cases, Bacula will use only the first
+ address specified.
+
+ The default port numbers are still the same and the services and hosts
+ are also resolved by name. So now you could use the real names for the
+ port numbers.
+
+ An ip section will allow resolution to either an ipv4 or an ipv6 address.
+ An ipv4 section forces the resolution to be only ipv4, and an ipv6 section
+ forces the resolution to be only ipv6.
+
+
Documentation to do: (any release a little bit at a time)
- Document query file format.
+- Add more documentation for bsr files.
- Document problems with Verify and pruning.
- Document how to use multiple databases.
- VXA drives have a "cleaning required"
- Lookup HP tape replacement recommendations (see trouble shooting autochanger)
- Add more obvious documentation of @ for conf files.
- Document doing table repair
+
Testing to do: (painful)
-- Test drive polling!
-- blocksize recognition code.
-- Test if rewind at end of tape waits for tape to rewind.
-- Test cancel at EOM.
-For 1.33 Testing/Documentation:
-- Figure out how to use ssh or stunnel to protect Bacula communications.
- Add Dan's work to manual See ssl.txt
+
+For 1.37 Testing/Documentation:
+- Fix find_device in stored/dircmd.c:462 (see code)
- Add db check test to regression. Test each function like delete,
purge, ...
- If you use restore replace=never, the directory attributes for
non-existent directories will not be restored properly.
-1.34 Cleanup
+Fix:
+ Kern,
+
+ mt status and tapeinfo output are attached. Default blocksize was
+ originally 512 bytes. I ran the following test on my machine:
+
+ - set defblksize to 512
+ - started bacula, labelled tape, ran job
+ - job completes with the following in log
+ SD termination status: OK
+ Termination: Backup OK
+ - restore attempts with blocksize set to 0 or 512 result in the familiar
+ "Volume data error! Wanted block-id BB02, got . Buffer discarded."
+
+
+ # tapeinfo -f /dev/sg0
+ Product Type: Tape Drive
+ Vendor ID: 'SONY '
+ Product ID: 'TSL-11000 '
+ Revision: 'L100'
+ Attached Changer: Yes
+ SerialNumber: '0010000443'
+ MinBlock:1
+ MaxBlock:16777215
+ SCSI ID: 1
+ SCSI LUN: 0
+ Ready: yes
+ BufferedMode: yes
+ Medium Type: Not Loaded
+ Density Code: 0x26
+ BlockSize: 512
+ DataCompEnabled: no
+ DataCompCapable: yes
+ DataDeCompEnabled: yes
+ CompType: 0x20
+ DeCompType: 0x20
+ BOP: yes
+ Block Position: 0
+
+ # mt -f /dev/nst0 status
+ SCSI 2 tape drive:
+ File number=0, block number=132, partition=0.
+ Tape block size 512 bytes. Density code 0x26 (DDS-4 or QIC-4GB).
+ Soft error count since last status=0
+ General status bits on (1010000):
+ ONLINE IM_REP_EN
+
+
+
+Wish list:
+- see lzma401.zip in others directory for new compression
+ algorithm/library.
+- Minimal autochanger handling in Bacula and in btape.
+- Look into how tar does not save sockets and the possiblity of
+ not saving them in Bacula (Martin Simmons reported this).
+ The next two lines will show them.
+ localmounts=`awk '/ext/ { print $2 }' /proc/mounts` # or whatever
+ find $localmounts -xdev -type s -ls
+- Fix restore jobs so that multiple jobs can run if they
+ are not using the same tape(s).
+- Allow the user to select JobType for manual pruning/purging.
+- Look at adding Client run command that will use the
+ port opened by the client.
+- bscan does not put first of two volumes back with all info in
+ bscan-test.
+- Implement the FreeBSD nodump flag in chflags.
+- Figure out how to make named console messages go only to that
+ console and to the non-restricted console (new console class?).
+- Make restricted console prompt for password if *ask* is set or
+ perhaps if password is undefined.
+- Implement "from ISO-date/time every x hours/days/weeks/months" in
+ schedules.
+==== from Marc Schoechlin
+- the help-command should be more verbose
+ (it should explain the paramters of the different
+ commands in detail)
+ -> it´s time-comsuming to consult the manual anytime
+ you need a special parameter
+ -> maybe it´s more easy to maintain this, if the
+ descriptions of that commands are outsourced to
+ a ceratin-file
+- the cd-command should allow complete paths
+ i.e. cd /foo/bar/foo/bar
+ -> if a customer mails me the path to a certain file,
+ it´s faster to enter the specified directory
+- if the password is not configured in bconsole.conf
+ you should be asked for it.
+ -> sometimes you like to do restore on a customer-machine
+ which shouldn´t know the password for bacula.
+ -> adding the password to the file favours admins
+ to forget to remove the password after usage
+ -> security-aspects
+ the protection of that file is less important
+- long-listed-output of commands should be scrollable
+ like the unix more/less-command does
+ -> if someone runs 200 and more machines, the lists could
+ be a little long and complex
+- command-output should be shown column by column
+ to reduce scrolling and to increase clarity
+ -> see last item
+- lsmark should list the selected files with full
+ paths
+- wildcards for selecting and file and directories would be nice
+- any actions should be interuptable with STRG+C
+- command-expansion would be pretty cool
+====
+- Compaction of Disk space by "migrating" Volumes that have pruned
+ Jobs (what criteria? size, #jobs, time).
+- Add prune all command
+- Document fact that purge can destroy a part of a restore by purging
+ one volume while others remain valid -- perhaps mark Jobs.
- Add multiple-media-types.txt
- look at mxt-changer.html
-- Document a get out of jail procedure if everything breaks if you lost/broke
- the Catalog.
-
-1.34.3 Items:
-- Document dbcheck conf changes.
-- Add regression of btape "fill"
-- Document if absolute path specified extension must be specified
- on Win32.
-- Document vendor database repair.
-
-For version 1.35:
-- Implement "label slots=1,2... pool=yyy barcodes"
- Make ? do a help command (no return needed).
-- Do tape alerts -- see tapealert.txt
- Implement restore directory.
- Add All Local Partitions = yes to new style saves.
- Document streams and how to implement them.
-- On Win95
- The error I when I installed 1.34.2 clients:
- The BACULA-FD file is
- linked to missing export KERNEL32.DLL:GetFileAttributesExA.
-- When restore started from console, report jobid.
-- Feedback while the tree is being built.
- Possibly implement "Ensure Full Backup = yes" looks for a failed full backup
and upgrades the current backup if one exists.
- Check that barcode reading and update slots scan works.
- Add tree pane to left of window.
- Add progress meter.
- Polling does not work for restore. It tries a number of times,
- gives up, and crashes the FD.
+ gives up, and crashes the SD.
- Lock jcr_chain when doing attach/detach in acquire.c
- Add assert in free_jcr if attach/detach chain active.
- Max wait time or max run time causes seg fault -- see runtime-bug.txt
====
-=== Done in 1.35
+=== Done in 1.34.3
- To pass Include 1 or two letter commands
I Name Include name - first record
B Name Base name - repeat
F Number Number of filenames to follow
<file-name>
...
+- Add regression of btape "fill"
+==== Done in 1.34.4
+- Implement "label slots=1,2... pool=yyy barcodes"
+- Mark a non-removable disk Volume in error rather than asking sys op to
+ mount it.
+- Implement Fixed storage LabelFormat test.
+- Add reporting in attr despooling.
+- Figure out how to use ssh or stunnel to protect Bacula communications.
+ Add Dan's work to manual See ssl.txt
+
+==== Done in 1.35.0
+- Implement fast tree insert (doubly linked list)
+- Disallow using Internal database
+- Feedback while the restore tree is being built.
+- Add detection of Whitebox release in ./configure
+- Add InChanger to "list media"
+- Implement second cut of SIGHUP in Dir
+ (Implement resources on a single pointer)
+- Add regular expressions to FileSets (needs testing).
+- Test new despooling error recovery code when partition fills.
+- Sort Scheduled jobs status listing by start time.
+- Add priority to Scheduled jobs status listing.
+- Look at Win32 inc problem when new directory added files not saved???
+- Require resource names to be unique.
+- Make sure that all errors from libacl are printed.
+- Make FD run on Win95 if possible (not really possible).
+- Fix GROUP BYs in all SQL (done by Dan -- thanks)
+- Make entering multiple Storage names in Dir illegal.
+- Make btape release the drive during the "test" append.
+- Fix restore:
+ You have selected the following JobIds: 739,856,797
+ Building directory tree for JobId 739 ...
+ Building directory tree for JobId 856 ...
+ Building directory tree for JobId 797 ...3
+ Jobs inserted into the tree.
+- Fix errno handling in win32 compat routines.
+- Add better error codes to run_program (10000+)
+- Revisit and revise Disaster Recovery (fix SCSI and RAID
+ disk detection)
+- When passwords do not match, print message that points the
+ user to the doc.
+- Do tape alerts -- see tapealert.txt
+- Find memory leaks in address_conf.c
+- Network order of port and ip addresses.
+- SetIP in dird/fd_cmds.c is broken.
+- don't use inet_addr() it is deprecated.
+- Fix code in filed.c for init_bsock();
+- Fix code in console.c for init_bsock();
+- Solve the termcap.h problem on Solaris configure.
+- Make Verify jobs require exclusive use of Volume as Restore
+ jobs do.
+- Fix restore ++++ that get intermingled with "Building directory tree"
+- Fix doc in dirdconf.html for @, where the file must
+ have not a list of files, but
+ file = xxx
+ file = yyy
+- Test Win32 errno handling.
+- port 1.34.6-block.patch to 1.35
+- Look at Chris' patch for bscan bug.
+- Fix error handling in spooling both data and attribute.
+- Implement Ignore FileSet Change.
+- Doc new duration time input editing.
+