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.