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.