On Wed, 30 Aug 2000, Craig A. Berry wrote:

> 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.

OK, I am no longer experiencing difficulty with gen_shrfls.pl *but*
using the 6933 kit I get a complete failure of [.t.lib]trig.t and
I notice that this one-liner is enough to trigger the problem:

$ perl -"MMath::Trig" -e "print 'hhh'"
%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual
address=000000000000
0028, PC=0000000000146C98, PS=0000001B

  Improperly handled condition, image exit forced.
    Signal arguments:   Number = 0000000000000005
                        Name   = 000000000000000C
                                 0000000000010000
                                 0000000000000028
                                 0000000000146C98
                                 000000000000001B

    Register dump:
    R0  = 0000000000000000  R1  = 000000000029B5CC  R2  = 0000000000055E20
    R3  = 0000000000221BF8  R4  = 000000007B557EB4  R5  = 0000000000000000
    R6  = 00000000001B2468  R7  = 0000000000001002  R8  = 0000000000000009
    R9  = 0000000000001218  R10 = 0000000000000000  R11 = 00000000002183FB
    R12 = 00000000001B231C  R13 = 0000000000000028  R14 = 0000000000000000
    R15 = 000000007B557970  R16 = 20202020090A7B20  R17 = 000000000008F180
    R18 = 0000000000001219  R19 = 0000000000205B00  R20 = 000000007B557970
    R21 = 0000000000000000  R22 = 000000007B557970  R23 = 0000000004040004
    R24 = 0000000000205B00  R25 = 0000000000000001  R26 = FFFFFFFF805DE948
    R27 = 000000007B52D308  R28 = 000000000010D7A0  R29 = 000000007AF87930
    SP  = 000000007AF87930  PC  = 0000000000146C98  PS  = 300000000000001B
$ show symbol $status
  $STATUS == "%X1000000C"

> --- 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]

BTW the 6933 kit has the full version of this patch where you've removed
the special case for the certain compiler version.

I see that 6948 has been posted by Jarkko.  I will be switching to that
now (not that I expect any vms specific changes in this regard).

Peter Prymmer


Reply via email to