In SAS Viya 3.5, SAS® Cloud Analytic Services (CAS) or the SAS® Compute Server might intermittently fail to read an Optimized Row Columnar (ORC) file from Azure Data Lake Storage (ADLS). The load can fail for different ORC files, and later attempts of the same operation might succeed without a change to the source file.
This issue applies to SAS Viya 3.5 environments that read ORC data from ADLS.
A CAS table.loadTable action can be interrupted with an ORC read error.
A SAS Compute Server DATA step that reads the ORC file can terminate abnormally.
The issue occurs intermittently and is not limited to one specific ORC file.
As a result, errors similar to the following occur in the SAS log:
ERROR: ORC read error = bad StripeFooter from zlib(...)
ERROR: Exception occurred while reading from ORC table: bad StripeFooter from zlib(...)
ERROR: An error occurred during TKORC execution
ERROR: The action stopped due to errors.
ERROR: ORC read error = adls2Read failed
NOTE: The tcpSockRead call failed. The system error is 'The connection was reset by a peer.'.
A read stream from ADLS can be interrupted. In the affected SAS Viya 3.5 Azure data access code, the retry handling does not correctly process the interrupted read. As a result, an incomplete ORC read and an error (such as bad StripeFooter from zlib or adls2Read failed) occurs.
The issue affects the Azure data access path that CAS uses and the SAS Compute Server in SAS Viya 3.5.
Update the applicable SAS Viya 3.5 environment with the following package version or later. Select the package that matches the operating system repository type.
If you cannot apply the SAS Viya 3.5 update yet, retrying the failed ORC load might enable the operation to complete. Note that this option is only a temporary workaround because it does not correct the interrupted-read condition.