1 
  2 09/21/87  data_management
  3 Known errors in the current release of data_management.
  4 #         Associated TR's
  5 Description
  6 
  7 57  phx20078
  8 There is an inconsistency between list_entry_types and
  9 describe_entry_type regarding DM files.  list_entry_types states that
 10 it is selected using the string "dm_file", but you actually have to use
 11 "describe_entry_type data_management_file".  This is because
 12 describe_entry_type.pl1 uses the constant "data_management_file" while
 13 the list_entry_types entry into the same program uses the
 14 FM_OBJECT_TYPE_DM_FILE variable.
 15 
 16 56  phx20369
 17 The word directory is spelled directotry in an error message passed out
 18 from dm_no_firstref_util_$get_log_path.
 19 
 20 55  phx20201
 21 When cv_dmcf gets a zero length segment as input, it's error message
 22 should include this as the reason that the transation failed.
 23 
 24 54  phx20193
 25 The info segment cv_dmcf.info needs to be reformatted.
 26 
 27 47  phx20213
 28 dm_translate_system_config_ attempts to use release_temp_segment_ on
 29 the user ring stack.  There is no real affect on the user's process or
 30 DM, but this is very confusing when first looking at the code and
 31 expecting to to be working correctly.
 32 
 33 46
 34 tm_user_shutdown_real.pl1 directly calls a gate entry instead of
 35 following the DM project standard of calling a transfer vector, in this
 36 case dm_misc_util_$is_process_using_dm.
 37 
 38 45
 39 The fast lock metering tool converts seconds into hours instead of
 40 minutes.
 41 
 42 44
 43 Audit changes for cm_postcommit_increment.pl1 were never installed.
 44 
 45 43
 46 The automatic structure my_ci_parts in cm_get_bci_header should have a
 47 must_be_zero field preceding my_ci_parts.part.
 48 
 49 42
 50 When deleting a multi-datum element the wrong type of header is used
 51 when getting the continuation of the first datum.  It is a
 52 continued-datum-header, not a continued-continuation-header.
 53 
 54 41
 55 Passing a null rel_creation_info_ptr to
 56 relation_manager_$create_relation causes unpredictable results.
 57 
 58 39
 59 The file_manager_ post-transaction action of actual file closing is not
 60 done under the protection of transaction locks.  The call to unlock
 61 locks should come before the call to file_manager_$post_transaction in
 62 the commit/abort process.
 63 
 64 38
 65 When a complex commit is done, uninitialized automatic storage is used
 66 to set the transaction ID in the commit record.  When this unitialized
 67 storage happens to be null, recovery detects too many commit marks
 68 because the finished transaction table built has all transaction IDs
 69 initialized to null.  This leads to a very confusing error entry in the
 70 dms log, about txn 0 having multiple commit or abort marks.
 71 
 72 There is a minor problem with the second log message which usually
 73 accompanies the above error:  the last_record_id is reported as zero if
 74 the last record in the BJ was the offending commit mark.
 75 
 76 It is not known for sure at this time whether user databases are
 77 actually damaged or not by this behaviour.
 78 
 79 37  phx19960
 80 file_manager_$copy does not abide by the delete switch, copy_acl
 81 switch, or any other switch specified in the copy_options structure.
 82 
 83 36  phx19837
 84 It is possible to remove the caretaker Daemon's access from a DM file.
 85 This causes the removing process to take faults in the DM ring and
 86 requires a new_proc; it is not possible to set the caretaker's access
 87 back in the faulting process.  This also will cause recovery to fail if
 88 the file has the protected attribute or is a before journal.
 89 
 90 35  phx19312
 91 dm_set_free_area was never MCR'd, but is explicitly retained as an
 92 entry into bound_dm_.
 93 
 94 34  phx19782
 95 The transaction command's -all and (-tid -tix) selection ctl args are
 96 not diagnosed as incompatible and do not override each other.  This
 97 makes it impossible to use an abbrev or to correct mistakes via
 98 overriding previous specifications.
 99 
100 32  phx19651
101 The command sequence "create_dm_file filename;txn begin;srb filename 4
102 5; txn commit" fails in the post-commit handler with the error msg "the
103 file has been deleted".  A second commit will finish the commit.
104 
105 31  phx19781
106 Transaction status with multiple -tix or -tid ctl arg specifications
107 will only print the last one specified, but N times where N is the
108 number of specifications used.  The output loop is using the last entry
109 (tix_count) to index into the array of txn entries instead of the index
110 of the loop (tix_index).
111 
112 27  phx19606
113 If dm_recovery_ signals an error, the Daemon's cl_intermediary will try
114 to logout the Daemon.  The logout will think the Daemon is using DM,
115 however, and try to do per-process shutdown.
116 
117 26
118 There is a window in per-process initialization where a user will get
119 the dm_not_available_ condition, but get a TDT slot anyway.  The
120 particular case observed was the Daemon just enabling the new DMS and a
121 user taking over the Daemon's TDT entry (tix = 1).  The user solved the
122 problem with a new_proc; it is not known if dm_user_shutdown would have
123 also solved the problem.  See dmsdev [2525], it was a good year.
124 
125 22
126 There are no administrative tools for handling the DM configuration
127 file (e.g., installing).  If one is installed while the DM Daemon is
128 booting a DMS, the Daemon will take an error when it tries to unlock
129 the config file lock; also, another DM Daemon can try to boot a DMS due
130 to the zeroing of the lock word.
131 
132 21
133 If a FM create or delete rollback/post-commit handler is present, SM
134 access is needed.  The problem exists because *.SysDaemon is given
135 access to directories by default, but not *.Daemon.  Also, there is no
136 way to prevent the user from removing the Daemon's access after the
137 creation of a file.
138 
139 20
140 If recovery is necessary, there is no check done to verify the current
141 maximum values in the DM config file are equal to or greater than the
142 previous DM bootload's values.  This may cause problems if any maximums
143 are exceeded in the new system (e.g., max.  BJ's less than BJ's left
144 active).
145 
146 19
147 In some cases, a user can get the error dm_error_$bj_bad_ppte_version
148 (or similar error).  This is most noticable when doing a txn st -a as
149 the 1st DM command in the process to cause the fref trap to go off.  It
150 seems to be caused by the Daemon not clearing the bj_txt after
151 recovery, and possibly after dead process or abandoned transaction
152 adjustment.
153 
154 15
155 The file_manager_ and before_journal_manager_ UID-pathname tables may
156 be useless if a directory in the pathname is renamed.  This occurs
157 because DMS is not coordiniated with directory control.
158 
159 14
160 No garbage collection is done on the before journal system tables for a
161 deleted journal.
162 
163 12
164 The transaction counts in the BJ TXTE and BJ PSTE may become out of
165 sync (but should not happen often).  The count in the PSTE is the true
166 count.
167 
168 7
169 Overlapping and_groups in a search_specification can cause a key to be
170 returned multiple times for the same search_spec.
171 
172 1
173 There is a case where a very small element grows and is made a
174 multi-datum element, only to find there is not enough room in the
175 original control interval for the continued_datum_header.  Varying-size
176 Basic ESM elements should have a minimum size large enough to
177 accomodate a continued_datum_header.