GOMEMLIMIT is required for SAS/ACCESS® Interface to Google BigQuery


Attempts to assign a Google BigQuery library fail with the fatal error unexpected signal during runtime execution. The symptoms of this issue might include the following:

unexpected signal during runtime execution

[signal SIGFPE: floating-point exception code=0x7 addr=0x7fffc66ae4cd pc=0x7fffc66ae4cd]


runtime.throw({0x7fffc6da62e8?, 0x7fff921fbe30?})

        /go/src/runtime/panic.go:1047 +0x5f fp=0x7fff921fbde8 sp=0x7fff921fbdb8 pc=0x7fffc66c189f

runtime.sigpanic()

        /go/src/runtime/signal_unix.go:819 +0x369 fp=0x7fff921fbe38 sp=0x7fff921fbde8 pc=0x7fffc66d7369

runtime.gcPaceScavenger(0x7fffc75bd240?, 0x0?, 0x7fffc66a74dd?)

        /go/src/runtime/mgcscavenge.go:149 +0x2d fp=0x7fff921fbe40 p=0x7fff921fbe38 pc=0x7fffc66ae4cd

runtime.gcControllerCommit()

        /go/src/runtime/mgcpacer.go:1578 +0x87 fp=0x7fff921fbe70 sp=0x7fff921fbe40 pc=0x7fffc66ae487

runtime.systemstack()

        /go/src/runtime/asm_amd64.s:492 +0x46 fp=0x7fff921fbe78

p=0x7fff921fbe70 pc=0x7fffc66f0186



SYSDBMSG=BIGQUERY: General Error - invalid Exception
SYSDBRC=-2130708065


ERROR: CLI error trying to establish connection: General Error - invalid Exception


ERROR: An exception was thrown while sending a packet to the peer.

Workaround

To circumvent this issue, set the GOMEMLIMIT environment variable to 80% of the available memory. Here is an example: 

export GOMEMLIMIT=250MiB

See runtime package - runtime - Go Packages for the supported suffixes. 

Note: You must set the environment variable before SAS is started, so you cannot use a SAS option to set the environment variable.