SAS® 9.4 terminates with a user completion code of 1335 or VM 1335


In SAS 9.4, if a member of a SAS library has a bad record length that causes a buffer overrun, the SAS session terminates with a user abend U1335.

One of the following messages might appear in your job output:

Free buffer overwritten.
ERROR: VM 1335: The PCE address= 00000000 and MEMORY address=23D907B8
IEA995I SYMPTOM DUMP OUTPUT
USER COMPLETION CODE=1335

Or:

USER COMPLETION CODE=1335
TIME=14.25.05 SEQ=15413 CPU=0000 ASID=0045
PSW AT TIME OF ERROR 078D1000 965CC14C ILC 2 INTC 0D

This problem has been reported only with SAS libraries that were created with a release prior to SAS 9.4 that are being copied to a SAS 9.4 library. For example, this might occur in a program that uses PROC COPY to copy a SAS library created under SAS® 9.1.3 into a new physical library with SAS 9.4.

To circumvent this problem, use the older release of SAS to use PROC COPY to copy the problem library into a new library. Then, under SAS 9.4, use PROC COPY to copy the library into a SAS 9.4 library.

The following example shows how you could create a SAS 9.4 SAS library using a temporary SAS library between the PROC COPY steps:

...
// EXEC SAS913
//BADLIB DD DSN=problem.sas.library,DISP=SHR
//LIB913 DD DSN=&&INTERIM,SPACE=(CYL,(10,10)),UNIT=unit,
//          DISP=(NEW,PASS)
//SYSIN DD *
  proc copy in=badlib out=lib913;
  run;
//*
// EXEC SAS94
//LIB913 DD DSN=&&INTERIM,DISP=(OLD,DELETE)
//LIB94 DD DSN=new.sas94.library,DISP=(NEW,CATLG),
//         UNIT=unit,SPACE=(CYL,(10,10))
//SYSIN DD *
  proc copy in=lib913 out=lib94;
  run;
/*