-
Notifications
You must be signed in to change notification settings - Fork 134
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
after upgrading to 1.16.0, images dont load in web UI. #248
Comments
The new server version has added the built-in authentication for the fileserver, I assume that for some reason (perhaps due to the fileserver url you're using?) the WebApp does not identify the fileserver and thus is not attaching the cookie when trying to download (the SDK obviously does that). You can try disabling this feature in the fileserver (using the fileserver.conf file) by setting |
thanks. yes, I know the new version has auth, which is exactly what I want / need (in fact). So I do not want to disable it (though it's no better than downgrading, I know).
(unfortunately I don't have control over subdomain names) I do however, have some cycles to try and fix it, if it's possible. I just need guidance on the cause of the issue / feasibility of solutions. |
In general, the server is configured to place the cookie with a specific domain - I assume the cookie is simply not propagated to the fileserver since it's hosted under a different domain name - in general, if the two services are hosted under some parent domain name (like |
@jkhenning thank you! so it sounds like my suspicion might have been directionally correct and that the cookie's scope is missing our URLs. The networking set up I am constrained to with this particular ClearML deployment has the following structure:
so my setup is setting it to I wrote this part of the ClearML docs: I was surprised when the deployment "just worked" with this new domain mapping (for this deployment), but I realize now that was because the fileserver was totally insecure until 1.16.0, so the domain didn't matter. We've been using these urls for six months now, so I'm not sure the aforementioned docs are "exactly correct" anymore. |
that all said... take a look at my logs again. Notice that the Debug Images load just fine from the web app, and they're served behind the same backend fileserver URL. So... what does that tell us about that cookie's scope... When one tab in the ClearML Web UI is able to load assets from the fileserver, but the neighboring tab does not??? |
Ah, this might be a WebApp issue, some plots (which are too complicated to be stored as a plotly object) are stored as an image, but the link is embedded in the plot object, which means the WebApp has to parse it and decide whether to attach the cookie there, I think the WebApp only knows how to automatically do that for the standard port variants and the standard subdomains. |
ooh Ill try that env var! thank you! but I'm not sure that explains why Debug Images work while Plotly image embeds do not. Is it because the two structure the urls differently? (and I explicitly save some as images for better control over formatting - e.g. histograms. I send some to Debug and some to the Plots tab. Debug tab works, Plot does not. same underlying fileserver url structure, but console logs show 401 only on the latter) is the scope of the cookie a problem given how the urls are structured? other customers (not us) using the same reverse proxy would have urls with the same domain name, and I dont want those to be valid against my instance... |
yields
if I prepend and upgrading to 1.16.0 with that prepended env var does not bring back the images (had to force refresh to avoid browser cache tricking me) |
I guess you should put it in quotes? |
one thing I noticed poking around the console: |
tried that, both single and double quotes still throw the same message. I'm pretty sure the problem is that the cookie isn't set by the template that renders out the plotly images. |
It's possible docker compose removes the quotes, can you perhaps try: |
@jkhenning unfortunately that also throws the same to my comment about the browser Inspect tool showing a missing cookie (but valid artifact url) in the requests that are 401'ing... could this possibly explain the situation? (cookie not set in the first place) |
@mathematicalmichael - what version of docker-compose (or docker) are you using?
|
@mathematicalmichael any update? |
moving some info from this discussion https://clearml.slack.com/archives/CTK20V944/p1730193419574559 here when a Plotly background image is set, Plotly used JS to fetch it, but it omits the cookie when the image and webapp are not on the same site. |
@oren-allegro sorry for the late response - but that env var didnt work. my solution has been "stop letting clearml deal with security"
@shyallegro thanks for the help - would you like me to try this again on the latest versions and with https enabled instead? |
@mathematicalmichael |
I'm using the docker-compose stack. Basically everything to recreate my set up is here: https://github.com/ml-starter-packs/clearml-lightning except I bumped my version to 1.16.0
after upgrading my image tags to the latest release, I noticed that the
clearml-fileserver
emitsError getting token
whenever I try to load images in the Plots tab.data still works fine, and oddly enough so do
Debug Samples
despite them also coming from the fileserver.Those load fine...
(top: manual download from web UI in artifacts tab... works fine, seems to authenticate happily)
(middle: errors when I load the Plots tab, first screenshot)
(bottom: opening the Debug Samples tab)
downgrading to 1.15.1 (as is in the repo linked above) restores all images in Web UI.
The text was updated successfully, but these errors were encountered: