Problem Note 70792: A segmentation violation occurs when reading a Databricks table using SAS/ACCESS® Interface to Spark
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:
- Define a SAS/ACCESS Interface to Spark LIBNAME statement with the DBMAX_TEXT_TYPES=ALL option.
- Create a table and populate it with data.
- 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
SAS System | SAS/ACCESS Interface to Spark | Linux for x64 | 9.4 | | 9.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.
SAS/ACCESS® Interface to Spark, when connected to a Databricks database under certain conditions, 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.
Type: | Problem Note |
Priority: | high |
Date Modified: | 2024-05-13 12:08:12 |
Date Created: | 2024-05-10 15:56:21 |