-
Notifications
You must be signed in to change notification settings - Fork 9
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
Configure to run ITs on remote nodes #7
Comments
It's not in the proxy, it's in galaxy. https://github.com/galaxyproject/galaxy/blob/release_20.01/lib/galaxy_ext/container_monitor/monitor.py is run on the node and figures out the IP of the host that the request should be routed to. this patch might be needed for you: galaxyproject/galaxy#9353
the potential ports that containers attach to is defined by docker's configuration. |
Thanks a lot or the quick reply @hexylena thanks again |
Hi again @hexylena I made some progress by adding that patch. I can launch and render the jupyter tool but the kernel never finish loading and when I try to run something it just says reconnecting kernel (top right corner of the notebook).
and in the gie-proxy service I get:
so it seems nginx is correctly forwarding the request to gie-proxy serving at 127.0.0.1:8000 but it times out. cheers, |
Hiya, Sounds like websockets. Do you have the upgrade header set appropriately? dunno if galaxy has any examples but apollo's configuration here mixes http / websocket requests and uses this nice snippet. you might add some console logging around that place in the JS, not sure what the "Error in handler" would be from. |
Hey! It's like:
One relevant thing is that if I run an ipynb file and select to return after its run (no interactive browsing of jupyter) then it works fine, returning the correct outputs for the cells. Although not sure what this suggests. Tried to debug by printing requests and headers from inside the proxy.js but there seems to be nothing strange. While running jupyter interactive tool I get mostly all:
The error I mentioned earlier is hard to replicate, seems to only appear after quite some time so I guess it's probably not related with this issue. Any idea on how can I check if the problem is indeed with websockets or something else? or where else can I debug this? from within the docker container logs I'm seeing some weird stuff, but I'm not sure it's a cause or a consequence of this problem:
There is one thing I can think of...the SSL encrpytion is not done within this nginx proxy but its done in another server, centralized for several domains we manage. It's only purpouse is to do the encryption, then redirects to this nginx which does the rest. any chance it could be interfering with this? So yes, I'm a bit lost with this. Ignacio |
Then it's just run from startup, no websocket established, so, not much information to be gained from that unfortunately.
If you're getting HTTP responses, but none of the cells are executable, then it's websockets. 100% for sure.
that one looks harmless enough, but the following one is failure to establish websocket connection.
Ah, if you've got two nginx proxies in the mix, then all sorts of fun things can happen. Check that the host, upgrade, and connection headers are carried through properly. I had a problem with another websocket system + two proxies, that presented this way. E.g. the following option in jupyter:
is left alone to its default, which sounds to me like it might have expectations about what the http headers for Host and Origin should be, and it might be doing some internal security off of that? 400 isn't the usual code for that. You might try adding that option in your jupyter IE tool xml, to see if it helps. If yes, then it's an issue of headers probably, and the request is coming from an invalid origin. |
Hi all,
I'm trying to configure the proxy (ie2 branch).
I've used the ansible role to deploy it in the Galaxy head only and the service seems to start fine and register the ITs running ok, or at least it's not showing any errors. But when I try to connect to a launched IT I get this error in the gie proxy:
seems like it's trying to redirect the connection to localhost on that specific port but on the localhost, not on the compute node that is actually running the docker container (The ITs jobs are queued by condor and run on separate nodes. ).
Am I missing something in the proxy configuration? does it needs to be run on all the compute nodes too? or could this be just an error of connection with the host?
Something else also related with this....is there a way to restrict the range of the ports used by the proxy to forward connections to the containers?
I would need to configure ingress rules in the VMs acting as compute nodes and not sure which range of ports is being used.
Cheers,
Ignacio
The text was updated successfully, but these errors were encountered: