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.