Problem Note 58378: "Access Violation" errors might occur when you use the STARJOIN optimization facility in SAS® Scalable Performance Data Server
If you use the STARJOIN facility's IN-SET strategy, SAS Scalable Performance Data Server might disconnect.
Click the Full Code tab in this SAS Note to see an example of code that produces the following error in the SAS SPD Server log:
05/30/16 08:44:05:(10029) SPDSBASE- STARINSET: SETUP FACT JOIN FINISHED
05/30/16 08:44:05:(10029) SPDSBASE- ERROR: Access Violation
05/30/16 08:44:05:(10029) SPDSBASE-
/saswork/SPDS52/SASScalablePerformanceDataServer/5.2/bin/spdsbase() [0x6a1b3e]
/saswork/SPDS52/SASScalablePerformanceDataServer/5.2/bin/spdsbase() [0x69cba9]
/saswork/SPDS52/SASFoundation/9.4/sasexe/tkmk.so(bktExcept+0x62) [0x7f338922df92]
/saswork/SPDS52/SASFoundation/9.4/sasexe/tkmk.so(bkt_signal_handler+0x144) [0x7f338922e5d4]
/lib64/libpthread.so.0() [0x340980f710]
To circumvent this issue, disable STARJOIN optimization in your SAS code by setting the following macro variable:
%let SPDSSQLR=nostarjoin;
Click the Hot Fix tab in this note to access the hot fix for this issue.
Operating System and Release Information
SPDS | SAS Scalable Peformance Data Server | Microsoft® Windows® for x64 | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
Microsoft Windows Server 2008 for x64 | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
Microsoft Windows Server 2012 R2 Std | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
Windows 7 Enterprise x64 | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
64-bit Enabled AIX | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
64-bit Enabled Solaris | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
HP-UX IPF | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
Linux for x64 | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
Solaris for x64 | 5.2 HF1 | 5.2 HF2 | 9.4 TS1M3 | 9.4 TS1M3 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
Modify the macro variables to match your environment setting before submitting the code.
%let dom=spds51;
%let host=myhost.domain;
%let portno=5200;
libname foo sasspds "&dom" host="&host" serv="&portno" user='admin' password='secret' IP=YES LIBGEN=YES;
/*table1*/
data foo.fixe_SUPPORTSAS;
finess2='754218071';
ident='0c2fb5';
char2='A';
output;
run;
proc datasets lib=foo;
modify fixe_SUPPORTSAS;
index create ident;
index create finess2;
quit;
/*table2*/
data foo.um_SUPPORTSAS;
finessGeo2='754218099';
ident='0c2fb5';
rum='01';
output;
run;
proc datasets lib=foo ;
modify um_SUPPORTSAS;
index create ident;
index create cleru=(ident rum);
quit;
/*table3*/
data foo.acte_SUPPORTSAS;
ident='0c2fb5';
rum='01';
char3='A';
output;
run;
proc datasets lib=foo;
modify acte_SUPPORTSAS;
index create ident;
index create cleru=(ident rum);
quit;
%let spdssqlr= _method nostarjoin=0 DETAILS="stj$";
proc sql;
create table toto as select t2.FinessGeo2,
case when SUBSTR(t1.char2, 1, 5) = 'A'
then 'mastec' else 'autre' end as Type,
COUNT(t2.ident) as COUNT_of_ident
from foo.FIXE_SUPPORTSAS t1,
foo.UM_SUPPORTSAS t2,
foo.ACTE_SUPPORTSAS t3
where ((t1.ident = t2.ident) and (t1.ident = t3.ident)) and
(t1.finess2 = '754218071') and (( SUBSTR(t3.char3, 1, 1)
in ('A', 'B', 'C','D') ) and (t3.rum = '01')) group by t2.FinessGeo2;
quit;
Type: | Problem Note |
Priority: | high |
Date Modified: | 2016-07-07 12:11:23 |
Date Created: | 2016-06-13 08:21:24 |