-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SAS kernel failing inside Docker container with Python 3.9 #83
Comments
I'll have to let Jared look at this from the SAS_Kernel side of the fence, but since you're specifying a cfgname= on SASsession(), I'm guessing you have more than one config def available? Do you? If that's so, then when you try to start a SAS notebook, and you submit the first thing, are you getting prompted for which config to use, or is it failing w/out even getting that far? It would have to prompt you, if you have more than one, since there's no way for you to provide it ahead of time. Just trying to get a little more info. Thanks, |
On the older, working image, it would show a prompt asking for the config, followed by the username and password. With the new image, it never gets that far; it crashes immediately with the above error. |
Ok, good (well, for understanding), as that means it's something w/ the kernel or the install or some requirement. I'll have to let Jared look into this. I'm not sure about the kernel requirements or install or diagnosing what this might be. Thanks for the info! |
I replicated this:
I see this:
Is sas_kernel using a different method than SASPY for handling the key exchange? Does it need its own version of the TK files separate from the SASPY ones, or something along those lines? edit: Looks like hongooi is'nt getting that error, so perhaps this is an entirely different issue. |
On a kind-of related note: when I do |
The SAS_Kernel, uses SASPy under the covers to interface to SAS. It's just a 'thin client' on top of SASPy. So, any connection configuration and all of that is just saspy. So, since you had saspy connecting, but failing in the SAS notebook, even before asking which configuration definition to use, it seems like something specific to the kernel or environment or something. |
@tomweber-sas Yes, SASPy works fine. IE, if I take the same Jupyter Notebook instance and start a Python3, and then do the basic
Then I get a SAS session established and can run code normally. I'm not totally sure my issue isn't on my end though with the environments - I'm not too handy with environments and since it doesn't look like it's exactly the same issue Hongooi is having, it may be me doing something wrong (I'm running Jupyter inside a 3.9 environment installed inside my 3.8 base...). In my case this isn't critical so don't worry about it unless it happens to be useful for Hongooi's issue, I was just trying to replicate. |
@hongooi73 thanks for the details on this issue. I've been able to reproduce the issue locally but I haven't completed the fix yet. I hope to have it done this week. There are a couple of issues at play so I'm working through those interactions. |
Just an update. I'm still trying to resolve why this fails inside a docker image. It is working on my Ubuntu system with python 3.9. As a short-term workaround, you can build the container with just one valid configuration -- there is no prompting in that case it automatically uses the only configuration option. You don't need to remove the other entries just change the python list (example below). I'm still looking at the issue and little baffled at the moment why it isn't working.
|
Thanks but I'm still getting the same error. 😕 I should also mention: I'm running Jupyter Lab using docker-compose, not the OG notebook interface. Here's the docker-compose yml, stripped down a little bit:
And then I connect to |
Here's the IOM config:
The JDK version is openjdk-11-jre-headless. |
Hi, just wondering if there's been any progress on this lately? |
@hongooi73 , |
No worries, thanks for the update @jld23. We're using saspy in a Python notebook for now, which doesn't seem to have any problems. |
Hey, so Jared isn't at SAS anymore, and I've started looking into issues for this repo. I've fixed the other 2 that had been outstanding on here; never fixed. This one I've looked into today and found the problem to be that prompting in the kernel interface has changed at some point and that's what is broke. So, I've made a fix to account for that, which is actually in SASPy, since that's where the processing is happening. I've pushed that out and when I build then next version, it will then fix thins problem for the SAS_kernel. I also just built a new version of the kernel and build the doc with a number of doc fixes. So, once I publish saspy V4.4.1 (tomorrow), getting both new releases will address this problem and the other one, 45 I also just fixed. I'll close this once saspy is published, again, I plan on doing that tomorrow. |
nvm, I went ahead and built it out now. So, if you get the current production version of saspy, V4.4.1 (or higher, later), then this bug will go away and prompting will again work in the SAS_kernel in the newer versions of jupyter. Closing this out. If you have any issues though, just reopen or open a fresh issue. |
(Crossposted from Stack Overflow, at user Joe's suggestion)
For some reason I'm unable to run SAS notebooks inside a Jupyter Docker container. I can run SAS code inside Python notebooks via saspy, but the SAS kernel keeps throwing errors on me.
I'm using the image jupyter/pyspark-notebook:notebook-6.4.2 as the base, and connecting to a remote server via IOM. If I run a Python notebook, eg with
then the connection works fine. Sometimes it times out, but that's probably a server issue.
However if I run a SAS notebook, when I try to submit a code chunk I get an error result:
There are also a bunch of error messages in the terminal window running the container:
The dockerfile is intended for use behind a corp firewall so contains some confidential entries, making it hard to give a reproducible example. But the gist of it is:
Some specific versions:
An earlier build of the image using Python 3.7 worked, so I'm guessing it's a Python 3.9 compatibility issue.
The text was updated successfully, but these errors were encountered: