SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 70792: A segmentation violation occurs when reading a Databricks table using SAS/ACCESS® Interface to Spark

DetailsHotfixAboutRate It

SAS/ACCESS Interface to Spark, when connected to a Databricks database under the conditions specified in the Example section, can erroneously expand some column field lengths. This field expansion can cause the column buffer to be overrun, which triggers a segmentation violation or buffer overflow error.

Example

You might encounter this issue if you perform steps similar to the following:

  1. Define a SAS/ACCESS Interface to Spark LIBNAME statement with the DBMAX_TEXT_TYPES=ALL option. 
  2. Create a table and populate it with data. 
  3. Run a SQL procedure query to bring the data from Databricks to SAS. 

When the error occurs, you an exception similar to the following is generated:

SAS Task Name: [SQL     ]
Segmentation Violation
Traceback of the Exception:
/sas/sashome/SASFoundation/9.4/sasexe/sas(+0x185ed2) [0x55ed5a4cfed2]
/sas/sashome/SASFoundation/9.4/sasexe/sas(+0x4c60c) [0x55ed5a39660c]
/sas/sashome/SASFoundation/9.4/sasexe/tkmk.so(bkt_signal_handler+0x14b)  [0x7f3702c0a70b]
/usr/lib64/libpthread.so.0(+0x12cf0) [0x7f37044c5cf0]
/sas/sashome/SASFoundation/9.4/sasexe/tkmk.so(skm_unlinke+0x26)  [0x7f3702c23d66]
/sas/sashome/SASFoundation/9.4/sasexe/tkmk.so(skmMemRelease+0x160)  [0x7f3702c1fdc0]
/sas/sashome/SASFoundation/9.4/sasexe/sasiosk(hdclose+0x209) [0x7f36ddd63b89]
/sas/sashome/SASFoundation/9.4/sasexe/sasxdbi(dbiclos+0x46) [0x7f36ddad2bb6]
/sas/sashome/SASFoundation/9.4/sasexe/sasxdbi(yoeclos+0x1e1) [0x7f36dda94f71]
/sas/sashome/SASFoundation/9.4/dbcs/sasexe/sasyoio(yoclose+0xb5d) [0x7f36cc975dbd]
/sas/sashome/SASFoundation/9.4/sasexe/sassqx(+0xf8a9) [0x7f36cd8c58a9]
/sas/sashome/SASFoundation/9.4/sasexe/sassqx(+0x283e5) [0x7f36cd8de3e5]
/sas/sashome/SASFoundation/9.4/sasexe/sassqx(+0x2705d) [0x7f36cd8dd05d]
/sas/sashome/SASFoundation/9.4/sasexe/sassqx(+0x296cd) [0x7f36cd8df6cd]
/sas/sashome/SASFoundation/9.4/sasexe/sassqx(sqxexec+0x58f) [0x7f36cd90356f]
/sas/sashome/SASFoundation/9.4/sasexe/sassqx(+0x45652) [0x7f36cd8fb652]
/sas/sashome/SASFoundation/9.4/sasexe/sassqx(sqlloop+0x3d0) [0x7f36cd8fa6b0]
/sas/sashome/SASFoundation/9.4/sasexe/sassql(sassql+0x37f) [0x7f36ce18486f]
/sas/sashome/SASFoundation/9.4/sasexe/sas(+0x4c1eb) [0x55ed5a3961eb]
/usr/lib64/libpthread.so.0(+0x81ca) [0x7f37044bb1ca]
/usr/lib64/libc.so.6(clone+0x43) [0x7f3703978e73]
SAS WTABORT (SQL) The SAS System has detected an abort condition. An
       Exception occurred during wthtrm().
Please Contact Technical Support.
Tasks
[MAIN    ] [WAITING ] pri[   5] reb[F1237C20] WC[0] WN[1]
[IDLETASK] [READY   ] pri[   9] reb[F1237C20]
[EVENTTSK] [WAITING ] pri[   0] reb[F1237C20] WC[0] WN[1]
[sasxkern] [WAITING ] pri[   3] reb[F1237C20] WC[0] WN[1]
[Session ] [WAITING ] pri[   3] reb[EC06F9C0] WC[0] WN[1]
[TKSRV   ] [WAITING ] pri[   3] reb[EC0700C0] WC[0] WN[1]
[Line Mod] [WAITING ] pri[   7] reb[EC070C00] WC[0] WN[1]
[SQL     ] [RUNNING ] pri[   7] reb[EC18F760]
Traceback
No Traceback Available
ERROR: User asked for termination
NOTE: The SAS System stopped processing this step because of errors.

Workaround

The workaround is to not specify the DBMAX_TEXT_TYPES=ALL option in your SAS/ACCESS Interface to Spark LIBNAME statement.

Click the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS/ACCESS Interface to SparkLinux for x649.49.4 TS1M8
* 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.