Kern's ToDo List
- 31 May 2003
+ 22 June 2003
Documentation to do: (any release a little bit at a time)
- Document running a test version.
- Document FInclude ...
- Document need to add "-u root" to most of MySQL script calls
(./create_mys... ./make_my...).
+- Document recycling algorithm.
Testing to do: (painful)
- Test cancel at EOM.
- Test not zeroing Autochanger slot when it is wrong.
- Test multiple simultaneous Volumes
-
+- Test of last block is correct in JobMedia when splitting file
+ over two volumes.
+- Test recycling and purging (code changed in db_find_next_volume and
+ in recycle.c).
- Figure out how to use ssh or stunnel to protect Bacula communications.
For 1.31 release:
+- Check that Block number in JobMedia are correct.
+- Complain if record dropped in bnet_recv because too long.
+- Suppress Job Name in Jmsg for console
+- Check Jmsg in bnet, may not work, must dup bsock.
+- Use SD returned values in report -- or add them.
+- Increment DB version prior to releasing.
+- Turn off FULL_DEBUG prior to releasing.
+- Implement forward spacing block/file: position_device(bsr) --
+ just before read_block_from_device();
+- On Windows with very long path names, it may be impossible to create
+ a file (and thus restore it) because the total length is too long.
+ We must cd into the directory then create the file without the
+ full path name.
+- Move JobFiles and JobBytes to SD rather than FD -- more correct.
+- Add client name to cram-md5 challenge so Director can immediately
+ verify if it is the correct client.
+- Use runbeforejob to unload, then reload a volume previously used,
+ then the next job run gets an error reading the drive.
+- lstat() is not going to work on Win32 for testing date.
+- Implement a Recycle command
+- Something is not right in last block of fill command.
+- Implement List Volume Job=xxx or List scheduled volumes or
+ Status Director
+- Check if Incremental is working correctly when it looks for the previous Job
+ (Phil's problem).
+- Add next Volume to be used to status output.
- Make bootstrap filename unique.
-- Implement FileSet VolIndex.
-- Sort JobIds entered into recover tree.
- The bsr for Dan's job has file indexes covering the whole range rather
than only the range contained on the volume.
Constrain FileIndex to be within range for Volume.
-- Should Bacula make an Append tape as Purged when purging?
- Test a second language e.g. french.
- Start working on Base jobs.
- Make "make binary-release" work from any directory.
- Unsaved Flag in Job record.
- Base Flag in Job record.
- Implement UnsavedFiles DB record.
-- Use switch() in backup.c and restore.c in FD instead of giant if statement.
- Implement argc/argv for daemon command line scanning using table driven
stuff below.
- Implement table driven single argc/argv scanner to pickup all arguments.
- Prohibit backing up archive device (findlib/find_one.c:128)
- Make Restore report an error if FD or SD term codes are not OK.
- Add JobLevel in FD status (but make sure it is defined).
-- Make Pool resource handle Counter resources.
- Restrict characters permitted in a Resource name, and don't permit
duplicate names.
- Implement new serialize subroutines
send(socket, "string", &Vol, "uint32", &i, NULL)
- Audit all UA commands to ensure that we always prompt where possible.
+- Scratch Pool where the volumes can be re-assigned to any Pool.
After 1.31:
+- When doing a Backup send all attributes back to the Director, who
+ would then figure out what files have been deleted.
- Currently in mount.c:236 the SD simply creates a Volume. It should have
explicit permission to do so. It should also mark the tape in error
if there is an error.
- Add Progress command that periodically reports the progress of
a job or all jobs.
-- Implement "Reschedule OnError=yes interval=nnn times=xxx"
- One block was orphaned in the SD probably after cancel.
- Add all command line arguments to "update", e.g. slot=nn volStatus=append, ...
- Make bcopy copy with a single tape drive.
- Permit changing ownership during restore.
+- From Phil:
+ > My suggestion: Add a feature on the systray menu-icon menu to request
+ > an immediate backup now. This would be useful for laptop users who may
+ > not be on the network when the regular scheduled backup is run.
+ >
+ > My wife's suggestion: Add a setting to the win32 client to allow it to
+ > shut down the machine after backup is complete (after, of course,
+ > displaying a "System will shut down in one minute, click here to cancel"
+ > warning dialog). This would be useful for sites that want user
+ > woorkstations to be shut down overnight to save power.
+ >
+
- Autolabel should be specified by DIR instead of SD.
- Storage daemon
- Add media capacity
Item 2: Make the Storage daemon use intermediate file storage to buffer data.
-Deferred -- not necessary yet.
+Deferred -- not necessary yet -- possibly implement with Migration.
What: If data is coming into the SD too fast, buffer it to
disk if the user has configured this option.
Item 5: Implement Label templates
+Done
What: This is a mechanism whereby Bacula can automatically create
a tape label for new tapes according to a detailed specification
Item 9: Add SSL to daemon communications.
-Inprogress as of version 1.31.
What: This provides for secure communications between the daemons.
- The "List last 20 Jobs run" doesnt work correctly in restore.
It doesnt show the last 20 jobs , but some older ones.
- Fix Verify VolumeToCatalog to use BSRs -- it is broken.
-
+- Implement Release Storage=xxx
+- Fix restore on Win95/98
+- Remove the Jmsg() in sql_find.c:102 or only print on hard error.
+- Implement FileSet VolIndex -- done, but must update old records.
+- Check this below from Phil.
+ This was SD reported data rather than FD data!
+ > When the job was done, Bacula reported 11084 files restored:
+ >
+ > JobId: 527
+ > Job: Zocalo_Restore.2003-06-05_16.42.01
+ > Client: Zocalo
+ > Start time: 05-Jun-2003 16:42
+ > End time: 06-Jun-2003 01:21
+ > Files Restored: 11,084
+ > Bytes Restored: 65,474,772
+ > Rate: 2.1 KB/s
+ > FD termination status: OK
+ > Termination: Restore OK
+ >
+ > when it should probably have reported 11084 files scanned, 250 restored.
+ > The bytes restored count looks about right.
+ >
+- Should Bacula make an Append tape as Purged when purging?
+- Use switch() in backup.c and restore.c in FD instead of giant if statement.
+- If during a restore, a hard linked file already exists (on option), delete
+ the file and re-link it. This is to avoid the possibility that the
+ user had re-linked the file between the backup and the restore.
+ Do lstat() to see if it is already properly linked.
+ Same for symlinked file.
+ Make sure ifnewer, ifolder, never, ... apply correctly.
+- Flag so that no connect does not error, and Reschedule a job.
+- Implement "Reschedule OnError=yes interval=nnn times=xxx"
+- That restoring a hard link that already exists works correctly.
+ Same for soft link.
+- Make Pool resource handle Counter resources.
+- Fix first block number after label to be zero instead of 1 (reset after label).
+- Grep for Backup OK in regression script.
+- Do NOT reuse same JobId if tape written.
+- Implement non-blocking writes and bsock->terminate in heartbeat
+ thread, or set it in status.c cancel (used pthread_kill() instead of
+ non-blocking I/O.
+- Add restore to specific date.
+- Instrument use_count on DEVICE packets and ensure that the device is
+ being close()ed at the appropriate time.
+- Test long path names (>64 chars) in Windows -- crashes FD?
+- Implement fast block rejection: match_bsr_block().
+