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]

Reply via email to