1 
  2 09/21/87  rcp
  3 Known errors in the current release of rcp.
  4 #         Associated TR's
  5 Description
  6 
  7 101  phx20753
  8 rcprm_find_resource_ is not sending access_audit_ a correct operation
  9 type.
 10 
 11 100  phx18124
 12 register_resource <xxx> -type <yyy> doesn't work like it should.
 13 
 14 99  phx18776
 15 The variable RTDT_area_len is not set or is set incorrectly in several
 16 modules.
 17 
 18 98  phx19693
 19 Four routines signal the vfile_error condition and provide no handling
 20 for that condition.  This was left in from debugging (see comment in
 21 rcprm_find_resource_.pl1).  The four routines are
 22 rcp_compute_aim_mode.pl1, rcp_audit.pl1, rcp_access_kernel_setup.pl1
 23 and rcprm_find_resource_.pl1.
 24 
 25 97  phx16956
 26 list_resources -acquisitions -type tape_vol -user *.* does not list
 27 system tapes, and the only way to list them is with lr -acq -tp
 28 tape_vol -user system.
 29 
 30 94  phx20428
 31 The resource usage lock is not preventing a tape mount request from
 32 reaching the operator.
 33 
 34 93  phx20018
 35 rcp_tape_survey_ is required to do I/O sequences to either the tape
 36 controller or tape handler to obtain configuration information.  If I/O
 37 has been suspended through the controller the Initializer will go
 38 blocked waiting for the I/O to complete, which will not occur.
 39 
 40 92  phx19799
 41 Absentees entered with "-resource" can cause the Initializer's response
 42 to become very bad when there are not enough resources to go around.
 43 
 44 90  phx19654 phx19423
 45 Not able to acquire a tape_vol with the request "aqr tape_vol -nb 1"
 46 when the current auth is above system_low and the resource is
 47 system_low:system_high.
 48 
 49 89  phx18654
 50 reconstruct_registry not permitting registries to be updated from
 51 journals that contain entries older than the registry to be
 52 constructed.
 53 
 54 85
 55 RCP (rcp_attach_ & rcp_check_attach_) can take a null pointer fault
 56 under certain conditions.
 57 
 58 84
 59 Add auditing for denial of reservations of devices requested by name.
 60 
 61 83
 62 Calls to rcprm_find_resource_$(reserve reserve_proxy) operate as if the
 63 caller's validation level were 1.  This effectively cancels any ring bracket
 64 checks by this entry.
 65 
 66 82
 67 The program rcp_check_attach_ unconditionally calls rcp_detach_ in case
 68 of an error.  It should only do so if rcse_ptr in non-null.
 69 
 70 81
 71 A call to rcp_$attach or rcp_priv_$attach which encounters an error
 72 will return with the rcp_id output parameter changed.
 73 
 74 80
 75 Several RCP entries (including rcp_$release and rcp_$set_status) only
 76 audit if the access class range of the object in question is not a
 77 range (e.g.  system_low:system_low objects would cause audit messages
 78 to be generated while system_low:system_high objects would not).
 79 
 80 79
 81 An attempt to access a multi-class volume without privileges and
 82 outside of ring 1 (which are the only conditions under which this is
 83 allowed) does not return the correct error code.
 84 
 85 78
 86 The program rcp_attach_ can return a garbage error code in some error
 87 cases.
 88 
 89 77
 90 If an RCP registry specifies that a given resource's access is
 91 controlled by an ACS, and that ACS doesn't exist, the owner of the
 92 resource is given null access to the resource instead of REW.
 93 
 94 76
 95 The program rcprm_find_resource_ returns two or more error codes.  One
 96 is an output parameter of the call, while the others are in the
 97 resource_descriptions structure, one per entry.  The parameter is zero
 98 iff all of the entries codes are zero.  There is no error code
 99 censoring done in the entries, but this is consistent with RCP's model
100 of resource name space, in which the only way to hide the existence of
101 a resource is to isolate it with AIM.
102 
103 75
104 RCP logical volume attachment is completely unaudited.
105 
106 74  phx16540
107 Attempts to ask for a scratch volume for a system attachment yield the
108 first volume from the system pool with its allocation flag off.  It
109 should yield a volume from the free pool.
110 
111 69  phx18398
112 The cleanup handler in rcprm_list_resource_ tries to reset the
113 validation level, but the validation level is not set until later.
114 This results in invalid validation levels attempting to be set.
115 
116 68  phx18555 phx12105
117 Possessing null access to the last device in the threaded list in
118 rcp_data effectively results in null access to all devices in the list.
119 
120 63  phx16817
121 Turning on RCP privilege prevents the process from writing to tapes of
122 lower than system high access class.
123 
124 62  phx15914
125 If the only disks in a subsystem are listed as user disks (UDSK card),
126 RCP does not properly handle them, not recognizing mounts from them or
127 allowing their states (ss vs io) to be changed.
128 
129 60  phx18170
130 rcp_initializer_ can overflow the array it uses to keep track of
131 devices being considered for allocation.  This causes various faults.
132 
133 59  phx17813
134 rcp_unload_ should canonicalize volume names just like everything else.
135 
136 58  phx17793
137 Registry locks are not correctly reset upon a crawlout from ring 1.  In
138 particular, such a case happens when a record-quota overflow occurs in
139 the journals directory.
140 
141 56  phx17296
142 rcprm_find_resource_$reserve_proxy is misdeclared in rcp_check_access_.
143 This prevents (via a fault) the Initializer from reserving devices for
144 upgraded absentees.
145 
146 55  phx17061
147 RCP does not correctly authenticate the volume id for version 1 Multics
148 tapes.
149 
150 54  phx16691
151 RCP does not properly censor unprintable characters when printing on
152 the console.
153 
154 52  phx16536
155 RCPRM does not return error_table_$ai_restricted when the access
156 failure occured because of an AIM reason.
157 
158 51  phx15673
159 resource_status, when used as an active function, places a ";" instead
160 of a ":" in the access class information returned.
161 
162 50  phx15236
163 RCP should detect attempts to mount for read only half of a shared
164 spindle device in which the other half is currently mounted for write.
165 Such a mount should be rejected.
166 
167 47  phx12559
168 RCP does not correctly authenticate GCOS formatted tapes.
169 
170 46  phx09707
171 If a registry is flagged as damaged, it is very hard to determine the
172 damage or to fix it.  It is also very hard to get rid of the old
173 registry.  See the TR for more details.
174 
175 43  phx13303
176 When RCPRM scans resources looking for one to satisfy a user request,
177 it stops if it encounters one whose maximum access class is higher than
178 the process' current authorization.
179 
180 41  phx13485
181 It is not possible to regsiter a tape_vol with a minimum access class
182 greater than the process' authorization, with or without privileges.
183 
184 40  phx17882
185 It should not be possible to set potential AIM ranges for a free
186 resource (RCPRM); that is, a privileged user cannot release a free
187 resource.
188 
189 39  phx17883
190 It should be possible for a privileged user to release a release-locked
191 resourse (within RCPRM).
192 
193 38  phx17884
194 If a device is deleted, RCPRM will not allow any operations upon its
195 registry, confusing the deleted state of the device with the user
196 having no access.
197 
198 36  phx17546
199 rcp_preload_ dos not canonicalize resource names.
200 
201 34  phx14652
202 rcp_disk_ returns the same error code (error_table_$bad_label) when a
203 disk pack is authenticated "deny" and when the lack of the system flag
204 prohibits the caller from mounting a pack with an apparent storage sys-
205 tem label.
206 
207 33  phx16538
208 There is a disagreement about the aggument list for cancel_id_string
209 between the rcp_ gate and the ring 1 program that prevents the program
210 from working.
211 
212 31  phx16243 phx20514
213 A privledged process executing the command "ur device_name -am" will
214 take a null pointer fault in ring one when no prior resource activity
215 has happened.  rcp_force_unassign_ tries to get a pointer to
216 rcp_com_seg in the SETUP procedure beofre setting the validation level.
217 
218 27  phx06286
219 An absentee is deferred indefintely when a volume reservation is
220 specified {-rsc} and the volume was initially registered with no
221 specified acs path.
222 
223 23  phx12382
224 A mount request fails when the user has assigned his limit of devices
225 and the requested tape is already mounted on another drive (not
226 assigned to the user).  An attempt is made to assign that drive,
227 thereby exceeding the device limit.  No attempt is made to remount it
228 on one of the assigned drives.
229 
230 22  phx12320
231 rcp_reserve_ doesnt canonicalize the resource name.  This causes
232 absentee jobs submitted with a volume reservation to be deferred for
233 unavailable resources.
234 
235 21  phx12319
236 Absentee volume reservation jobs don't check the user's access to a
237 resource correctly when rcprm is enabled.  In addition,
238 rcprm_find_resource_$reserve_proxy is delcared incorrectly in
239 rcp_check_access_ which can cause a fault tag crawlout.
240 
241 20  phx12010
242 A 'copy_registry -reset' will cause a crawlout of ring1 with an attempt
243 to use an invalid seg number when more than one journal exists in the
244 chain.  This is due to an attempt to delete a segment which has already
245 been terminated.
246 
247 19  phx11985
248 The group_id in a resource reservation cancellation message is
249 incorrect.
250 
251 16  phx11634
252 When a resource is "awaiting_clear", acquire_resource accepts
253 -access_class and ignores it without informing the user.
254 
255 15  phx10245
256 list_resources command incorrectly prints out the reservation
257 identifier.
258 
259 14  phx08476 phx11640
260 When a non-existent tape drive is inadvertently registered, one cannot
261 derigister, list or re-register it.  even a status of it
262 
263 12  phx08455
264 When rcprm is turned off, tape_mult_ mount message for scratch tapes
265 prints blanks instead of the tape number.
266 
267 10  phx04767
268 register_resource ignores the -type argument.
269 
270 9  phx02669
271 rcp_unload_ does not cleanup.  If an error occurs, this can leave system
272 data bases in an inconsistent state.
273 
274 8  phx08065
275 No facilities are provided to allow cancellation of a reservation from
276 within an absentee submitted with -rsc specified.
277 
278 6  phx11433
279 The interaction between absentee jobs with resource reservations and the
280 ring 1 code in rcp_reserve_ can generate excessive syserr messages when
281 an absentee cannot run due to the inability to satisfy the reservation.
282 
283 5  phx06608
284 Since the management of mount timers (that is turning them on and off)
285 is done in the user process, it is possible for the user to quit with a
286 mount timer turned on and thereby inhibit its being turned off.
287 
288 3  phx11032
289 resource_status allocates temporary storage in the stack that can fairly
290 easily cause an overflow on the stack.
291 
292 1  phx09325
293 During startup, all configured I/O devices, paths, and multiplexors
294 should be surveyed, so that defective channels can be deleted, as well
295 as defective devices.  When this is not done, the system can hang
296 forever trying to use a defective channel later in the bootload (for a
297 tape subsystem, for instance).