]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/kernstodo
- Update some very old licenses in src/cats.
[bacula/bacula] / bacula / kernstodo
index 071337cd9768967ed4d6669defadf56da3a6740a..7f1169c55fd3f6653d319f389a854addf617b6c9 100644 (file)
@@ -1,5 +1,5 @@
                     Kern's ToDo List
-                     22 February 2006
+                     20 June 2006
 
 Major development:      
 Project                     Developer
@@ -12,10 +12,34 @@ Document:
 - Pruning with Admin job.
 - Does WildFile match against full name?  Doc.
 - %d and %v only valid on Director, not for ClientRunBefore/After.
+- During tests with the 260 char fix code, I found one problem:
+  if the system "sees" a long path once, it seems to forget it's
+  working drive (e.g.  c:\), which will lead to a problem during
+  the next job (create bootstrap file will fail).  Here is the
+  workaround: specify absolute working and pid directory in
+  bacula-fd.conf (e.g.  c:\bacula\working instead of
+  \bacula\working).
 
 Priority:
 
 For 1.39:
+- Make authentication failures single threaded.
+- Make base64.c (bin_to_base64) take a buffer length 
+  argument to avoid overruns.
+- Fix catreq.c digestbuf at line 411 in src/dird/catreq.c 
+  and verify that other buffers cannot overrun.
+- Implement VolumeState as discussed with Arno.
+- Install man pages
+- Document techniques for restoring large numbers of files.
+- Document setting my.cnf to big file usage.
+- Add example of proper index output to doc.
+   show index from File;
+- Fix re-read of last block to check if job has actually written
+  a block, and check if block was written by a different job
+  (i.e. multiple simultaneous jobs writing).
+- JobStatus and Termination codes.
+- Some users claim that they must do two prune commands to get a
+  Volume marked as purged.
 - Print warning message if LANG environment variable does not specify
   UTF-8.
 === Migration from David ===
@@ -43,6 +67,20 @@ pool specified.
 
 Here's how I'd define Migration Selection Types: 
 
+With Regexes:
+Client  -- Migrate data from selected client only. Migration Selection
+Pattern regexp provides pattern to select client names, eg ^FS00* makes
+all client names starting with FS00 eligible for migration. 
+
+Jobname -- Migration all jobs matching name. Migration Selection Pattern
+regexp provides pattern to select jobnames existing in pool. 
+
+Volume -- Migrate all data on specified volumes. Migration Selection
+Pattern regexp provides selection criteria for volumes to be migrated.
+Volumes must exist in pool to be eligible for migration. 
+
+
+With Regex optional:
 LowestUtil -- Identify the volume in the pool with the least data on it
 and empty it. No Migration Selection Pattern required. 
 
@@ -54,35 +92,154 @@ PoolOccupancy -- if pool occupancy exceeds <highmig>, migrate volumes
 <lowmig>. Pool highmig and lowmig values are in pool definition, no
 Migration Selection Pattern required.
 
-Client  -- Migrate data from selected client only. Migration Selection
-Pattern regexp provides pattern to select client names, eg ^FS00* makes
-all client names starting with FS00 eligible for migration. 
+
+No regex:
+SQLQuery -- Migrate all jobuids returned by the supplied SQL query.
+Migration Selection Pattern contains SQL query to execute; should return
+a list of 1 or more jobuids to migrate.
 
 PoolResidence -- Migrate data sitting in pool for longer than
 PoolResidence value in pool definition. Migration Selection Pattern
 optional; if specified, override value in pool definition (value in
 minutes). 
 
-Volume -- Migrate all data on specified volumes. Migration Selection
-Pattern regexp provides selection criteria for volumes to be migrated.
-Volumes must exist in pool to be eligible for migration. 
-
-Jobname -- Migration all jobs matching name. Migration Selection Pattern
-regexp provides pattern to select jobnames existing in pool. 
-
-SQLQuery -- Migrate all jobuids returned by the supplied SQL query.
-Migration Selection Pattern contains SQL query to execute; should return
-a list of 1 or more jobuids to migrate.
 
 [ possibly a Python event -- kes ]
 ===
+- Mount on an Autochanger with no tape in the drive causes:
+   Automatically selected Storage: LTO-changer
+   Enter autochanger drive[0]: 0
+   3301 Issuing autochanger "loaded drive 0" command.
+   3302 Autochanger "loaded drive 0", result: nothing loaded.
+   3301 Issuing autochanger "loaded drive 0" command.
+   3302 Autochanger "loaded drive 0", result: nothing loaded.
+   3902 Cannot mount Volume on Storage Device "LTO-Drive1" (/dev/nst0) because:
+   Couldn't rewind device "LTO-Drive1" (/dev/nst0): ERR=dev.c:678 Rewind error on "LTO-Drive1" (/dev/nst0). ERR=No medium found.
+   3905 Device "LTO-Drive1" (/dev/nst0) open but no Bacula volume is mounted.
+   If this is not a blank tape, try unmounting and remounting the Volume.
+- If Drive 0 is blocked, and drive 1 is set "Autoselect=no", drive 1 will
+  be used.
+- Autochanger did not change volumes.  
+   select * from Storage;
+   +-----------+-------------+-------------+
+   | StorageId | Name        | AutoChanger |
+   +-----------+-------------+-------------+
+   |         1 | LTO-changer |           0 |
+   +-----------+-------------+-------------+
+   05-May 03:50 roxie-sd: 3302 Autochanger "loaded drive 0", result is Slot 11.
+   05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Warning: Director wanted Volume "LT
+    Current Volume "LT0-002" not acceptable because:
+    1997 Volume "LT0-002" not in catalog.
+   05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Error: Autochanger Volume "LT0-002"
+    Setting InChanger to zero in catalog.
+   05-May 03:50 roxie-dir: Tibs.2006-05-05_03.05.02 Error: Unable to get Media record
+
+   05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Fatal error: Error getting Volume i
+   05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Fatal error: Job 530 canceled.
+   05-May 03:50 roxie-sd: Tibs.2006-05-05_03.05.02 Fatal error: spool.c:249 Fatal appe
+   05-May 03:49 Tibs: Tibs.2006-05-05_03.05.02 Fatal error: c:\cygwin\home\kern\bacula
+   , got
+     (missing)
+    llist volume=LTO-002
+              MediaId: 6
+           VolumeName: LTO-002
+                 Slot: 0
+               PoolId: 1
+            MediaType: LTO-2
+         FirstWritten: 2006-05-05 03:11:54
+          LastWritten: 2006-05-05 03:50:23
+            LabelDate: 2005-12-26 16:52:40
+              VolJobs: 1
+             VolFiles: 0
+            VolBlocks: 1
+            VolMounts: 0
+             VolBytes: 206
+            VolErrors: 0
+            VolWrites: 0
+     VolCapacityBytes: 0
+            VolStatus: 
+              Recycle: 1
+         VolRetention: 31,536,000
+       VolUseDuration: 0
+           MaxVolJobs: 0
+          MaxVolFiles: 0
+          MaxVolBytes: 0
+            InChanger: 0
+              EndFile: 0
+             EndBlock: 0
+             VolParts: 0
+            LabelType: 0
+            StorageId: 1
+
+   Note VolStatus is blank!!!!!
+   llist volume=LTO-003
+             MediaId: 7
+          VolumeName: LTO-003
+                Slot: 12
+              PoolId: 1
+           MediaType: LTO-2
+        FirstWritten: 0000-00-00 00:00:00
+         LastWritten: 0000-00-00 00:00:00
+           LabelDate: 2005-12-26 16:52:40
+             VolJobs: 0
+            VolFiles: 0
+           VolBlocks: 0
+           VolMounts: 0
+            VolBytes: 1
+           VolErrors: 0
+           VolWrites: 0
+    VolCapacityBytes: 0
+           VolStatus: Append
+             Recycle: 1
+        VolRetention: 31,536,000
+      VolUseDuration: 0
+          MaxVolJobs: 0
+         MaxVolFiles: 0
+         MaxVolBytes: 0
+           InChanger: 0
+             EndFile: 0
+            EndBlock: 0
+            VolParts: 0
+           LabelType: 0
+           StorageId: 1
+===
+   mount
+   Automatically selected Storage: LTO-changer
+   Enter autochanger drive[0]: 0
+   3301 Issuing autochanger "loaded drive 0" command.
+   3302 Autochanger "loaded drive 0", result: nothing loaded.
+   3301 Issuing autochanger "loaded drive 0" command.
+   3302 Autochanger "loaded drive 0", result: nothing loaded.
+   3902 Cannot mount Volume on Storage Device "LTO-Drive1" (/dev/nst0) because:
+   Couldn't rewind device "LTO-Drive1" (/dev/nst0): ERR=dev.c:678 Rewind error on "LTO-Drive1" (/dev/nst0). ERR=No medium found.
+
+   3905 Device "LTO-Drive1" (/dev/nst0) open but no Bacula volume is mounted.
+   If this is not a blank tape, try unmounting and remounting the Volume.
+
+- Add VolumeState (enable, disable, archive)
+- Add VolumeLock to prevent all but lock holder (SD) from updating
+  the Volume data (with the exception of VolumeState).
+- The btape fill command does not seem to use the Autochanger
+- Make Windows installer default to system disk drive.
+- Look at using ioctl(FIOBMAP, ...) on Linux, and 
+  DeviceIoControl(...,  FSCTL_QUERY_ALLOCATED_RANGES, ...) on
+  Win32 for sparse files.
+  http://www.flexhex.com/docs/articles/sparse-files.phtml
+  http://www.informatik.uni-frankfurt.de/~loizides/reiserfs/fibmap.html
+- Directive: at <event> "command"
+- Command: pycmd "command" generates "command" event.  How to
+  attach to a specific job?
+- Integrate Christopher's St. Bernard code.
+- run_cmd() returns int should return JobId_t
+- get_next_jobid_from_list() returns int should return JobId_t
+- Document export LDFLAGS=-L/usr/lib64
+- Don't attempt to restore from "Disabled" Volumes.
 - Network error on Win32 should set Win32 error code.
 - What happens when you rename a Disk Volume?
 - Job retention period in a Pool (and hence Volume).  The job would
   then be migrated.
 - Detect resource deadlock in Migrate when same job wants to read
   and write the same device.
-- Make hardlink code at line 240 of find_one.c use binary search.
 - Queue warning/error messages during restore so that they
   are reported at the end of the report rather than being
   hidden in the file listing ...
@@ -91,6 +248,8 @@ a list of 1 or more jobuids to migrate.
 - Look at fixing restore status stats in SD.
 - Make selection of Database used in restore correspond to
   client.
+- Look at using ioctl(FIMAP) and FIGETBSZ for sparse files.
+  http://www.informatik.uni-frankfurt.de/~loizides/reiserfs/fibmap.html
 - Implement a mode that says when a hard read error is
   encountered, read many times (as it currently does), and if the
   block cannot be read, skip to the next block, and try again.  If
@@ -102,6 +261,7 @@ a list of 1 or more jobuids to migrate.
   ("D","Diff"),
   ("I","Inc");
 - Add ACL to restore only to original location.
+- Show files/second in client status output.
 - Add a recursive mark command (rmark) to restore.
 - "Minimum Job Interval = nnn" sets minimum interval between Jobs
   of the same level and does not permit multiple simultaneous
@@ -1388,3 +1548,5 @@ Block Position: 0
 - Fix Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to 
   accept time qualifiers.
 - Does ClientRunAfterJob fail the job on a bad return code?
+- Make hardlink code at line 240 of find_one.c use binary search.
+- Add ACL error messages in src/filed/acl.c.