1
2 09/21/87 mrds
3 Known errors in the current release of mrds.
4 # Associated TR's
5 Description
6
7 169 phx20856
8 When mrds is updating the segments in the resultant_segs.dir it can get
9 a no_write_permission fault. This happens when the person is a DBA
10 sma access on the database dir, but doesn't have write permission on
11 the segments. The copy_resultant_data module should check for this
12 before trying the update.
13
14 168 phx20271
15 This error occurs with MR11 mrds but is fixed with MR12 mrds. See the
16 TR for complete details. If preventive scope is set with MR11 mrds,
17 the problem doesn't occur.
18
19 167 phx18744
20 When a check_proc determines that a domain value isn't acceptable, mrds
21 prints an error message and doesn't do the store or modify. The error
22 message should also include the name of the attribute because there is
23 ambiguity when more than one check_proc is associated with a tuple.
24
25 166 phx20850
26 When dsl_$compile is processing run time ".X." arguments, it
27 incorrectly handles char varying and bit varying. The solution is for
28 mrds_dsl_translate to set the argument pointer to the beginning of the
29 length word, instead of at the beginning of the bit or character
30 strinng.
31
32 165 phx20666
33 If you give an unrecognized control arg to rmdb's ready_db request you
34 get the error_table_$bad_arg error message instead of
35 error_table_$badopt.
36
37 164 phx15756
38 When a conversion error occurs during a data conversion, the details
39 are a bit lacking in the sub_err_ call. This TR suggests that the
40 error message should also specify which datum couldn't be converted.
41
42 162 phx19173
43 When the trouble switch of a database gets turned on, people who
44 currently have the database open are still allowed to set scope. The
45 trouble switch setting only prevents new people from opening the
46 database.
47
48 147 phx19911
49 MRDS needs to find out that the data management system isn't available,
50 at open time. Currently it doesn't find out until set scope time, and
51 then closing the database to recover from dm_not_available_ runs into
52 the same problem because the close operation requires a transaction to
53 be in progress.
54
55 128
56 Selection expression parsing needs to generate better error messages.
57
58 102
59 When mrds creates the saved resultant directory in the database, it
60 only gives read acls to the creater of the saved resultant and the
61 SysDaemons. This means that most people who use the database will not
62 be able to use the saved resultant. Mrds should give acls to whoever
63 is allowed to open the database.
64
65 A somewhat related problem is that mrds creates the saved resultant
66 with the ring brackets of the creating process. If another DBA in a
67 higher ring tries to open the database after this, mrds tries to
68 recreate the saved resultant and fails. This produces a warning
69 message that may affect a linus user.
70
71 101
72 When translating a selection expression, mrds will incorrecly match any
73 left subset of the name. Thus if the database contains a relation
74 named my_relation, the selection expression "-range x my_re -select
75 x" will select it as will ones using m, my, my_, my_rel, etc. When two
76 or more relations match the left subset, mrds will choose the first it
77 finds in its internal tables.
78
79 97
80 dmdbp terminates prematurely when it encounters a relation the user
81 does not have read access on even though there are other relations he
82 does not have access to.
83
84 85
85 In the cmdb listing, the options used in the db creation are not
86 properly included in the "Options: " line.
87
88 83 phx14522
89 When a relation has ring brackets set up to allow, for example rw in
90 ring 4 and r in ring 5 rb 4 5 5, and the DBA is in ring 5, the
91 attempt is made to force rw access to the relation, resulting in a
92 not-in-write-bracket condition. The program determining this is
93 mu_get_relation_acl. He should either a) look at the raw access as
94 opposed to effective access which considers rbs b) have a handler for
95 not_in_write_bracket around the call to
96 mrds_dm_authorization$set_needed_access or c) have such a handler in
97 mrds_dm_auth_etc...
98
99 81
100 The number of and-groups that linus can have is around 30 instead of
101 the maximum of 100. The problem is that linus creates a mrds selection
102 expression of the form:
103 G1 | G2 | G3 which causes the node stack in the
104 optimize to overflow. THe stack is based on max_pred_depth.
105
106 80
107 setting a permit scope of modify also sets a permit scope of retrieve
108
109 65
110 mu_sec_make_res does not properly diagnose no_execute_permission.
111
112 63
113 The file model is constructed such that several 18-bit offsets are not
114 word or even half-word aligned. In particular the rel_ptr spans a word
115 boundary. This apparently causes significant performance degradation.
116 To fix it would cause an incompatible change, but it should be done.
117
118 62
119 The following modules do not respect the directory specified by
120 set_mrds_temp_dir: cmdb, rmdb and apparently dmdm. If this fix is
121 made, the smtd needs to be changed. It currently states that it only
122 affects openings. We consider this to be a design flaw.
123
124 50
125 The variable CFLD59_DESC in mis-declared packed bit on in both
126 mrds_builtin_ and mrds_v1_builtin_.
127
128 28
129 dmdsm The cmdsm command does not detach the submodel. Several
130 invocation of the command will overflow the pdir or pat.
131
132 18
133 mrds_dsl_store expects that the relation name be a character string.
134 Since we now allow stores into temp rels still is not always the case.
135 Note that if the temp rel index is converted into a character string
136 stores can be done but it should not be necessary to do the conversion.
137
138 2 phx08878
139 cmdsm can no longer accept 2 submodel relations defined from the same
140 model relation.
141
142 cmdsm can be made to accept a submodel that defines multiple submodel
143 relations over the same model relation. The problem is that the use of
144 such a submodel can cause problems. For instance concurency control is
145 based on the model relation what happens when two different scopes are
146 set on the different submodel relations ? In order for mrds to handle
147 this its entire scoping scheme would have to be redesigned. Rather than
148 allow strange things to happen during application package execution it
149 was felt that no permitting the submodel to be created would be better.