At 12:30 PM 8/30/2000 -0700, Peter Prymmer wrote:
>MCR Sys$Disk:[]miniperl.exe "-I[.lib]" [.vms]gen_shrfls.pl -f gen_shrfls.opt
>Fatal VMS error (status=114762) at DKB100:[PERL]VMS.C;1, line 5688 at
>[.vms]gen_shrfls.pl line 59.
>%RMS-E-DNF, directory not found
>-NONAME-W-NOMSG, Message number 00000000
>%MMS-F-ABORT, For target PERLSHR_XTRAS.TS, CLI returned abort status:%X0001C04A.
>-RMS-E-DNF, directory not found
>
>Could this related to your rightslist trouble avoidance patch Craig?
As you surmised, no. This is an old problem that has come back because we
are now exercising cando_by_name() in a way that doesn't get hit very often.
The provisional patch below got it working for me, but it will break for you
if you are running on the system with LOGVOLNAM overridden. When I get
another tuit or two I want to paste the device name from the stat buffer
onto the filename returned by lib$fid_to_name in Perl_cando(). That in
conjunction with this patch should get us back in business. If the
foregoing makes no sense (and in the unlikely event anyone wants to know
more), search the vmsperl archives for lib$fid_to_name.
--- vms.c;-0 Tue Aug 29 16:52:44 2000
+++ vms.c Tue Aug 29 17:41:26 2000
@@ -5656,7 +5656,7 @@
retsts = sys$check_access(&objtyp,&namdsc,&usrdsc,armlst);
if (retsts == SS$_NOPRIV || retsts == SS$_NOSUCHOBJECT ||
retsts == SS$_INVFILFOROP || retsts == RMS$_FNF || retsts == RMS$_SYN ||
- retsts == RMS$_DIR || retsts == RMS$_DEV) {
+ retsts == RMS$_DIR || retsts == RMS$_DEV || retsts == RMS$_DNF) {
set_vaxc_errno(retsts);
if (retsts == SS$_NOPRIV) set_errno(EACCES);
else if (retsts == SS$_INVFILFOROP) set_errno(EINVAL);
[end of not quite a patch yet]
_______________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]