Our Ubuntu minions are unable to download packages during an apt upgrade after upgrading to 2023.09 #7710
Replies: 5 comments 6 replies
-
P.S. I've tried upgrading the venv-salt-minion package on one of our test clients to venv-salt-minion-3006.0-15.1.uyuni.amd64-deb.deb (with a manual download of the file followed by an apt install of the local file, in case the older version was a factor, but it didn't make a difference. |
Beta Was this translation helpful? Give feedback.
-
Are the tokens what's in /etc/apt/auth.conf.d/susemanager.conf? The entries in there seem to be channel specific, which seems to match up with some of the later comparisons in DownloadController. But if those entries are the tokens then why wouldn't they be passed on, and is there a salt formula that can be used to refresh them since the header says it's managed by SUSE Manager? Renaming that file causes 403 errors trying to get Uyuni channel metadata so it seems likely that those are tokens, but if so why are they submitted for apt update but not apt upgrade? |
Beta Was this translation helpful? Give feedback.
-
this sounds a lot like its the same issue i recently fixed #7566. Is this happening on cloned channels? (incudes CLM). If so the problem is that the metadata is generated from faulty cached snippets that are channel specific so the path for a package apt requests does not match the path the tokens are configured for so apt won't sent the token for those requests. |
Beta Was this translation helpful? Give feedback.
-
Can confirm using java.salt_check_download_tokens = false as a workaround allowed the updates to proceed on one of our test clients. What are the tradeoffs of using one workaround vs. another? Is java.salt_check_download_tokens less secure and caching user_db_repodata = more performance impacting? |
Beta Was this translation helpful? Give feedback.
-
I have another issue and I don't know if I should open a new discussion or not. I was able to successfully update our traditional Uyuni Proxies without too much trouble, and they work to update clients associated with those proxies. However I also needed to create a new Uyuni proxy, and I used openSUSE 15.5 and the Uyuni Proxy install for 2023.09. That proxy almost works but fails on the key operation of updating clients. I set up a new test Ubuntu client and registered it with the proxy. Everything looks fine. I can run salt commands to the client through the new proxy such as a state.apply. I can do an apt update from the client and it fetches the repodata information with no problem. But when I try to do an apt upgrade to actually update packages on that client system, it lists the appropriate packages that need to be upgraded, but it fails to download them. When I try to do it through the Uyuni console, the error is similar. The entries in the venv-salt-minion.log on the client show Ign:1 https://{new_proxy_fqdn}:443/rhn/manager/download ubuntu22-prod-ubuntu-2204-amd64-main-updates-uyuni/ linux-firmware 20220329.git681281e4-0ubuntu3.19 errors: When I run it interactively with apt upgrade it seems to try to get the headers but fail afterwards, and the log above seems to indicate it might be OK downloading the new venv-salt-minion package but choking on the kernel package. The message I see when it's trying to get the package is 59% [Waiting for headers] The entries in the squid log are Any suggestions? |
Beta Was this translation helpful? Give feedback.
-
Because they were recent issues with Ubuntu after upgrading to 2023.09, at first I thought we had the same problem as #7671 because the error message was somewhat similar. However with further investigation we're having a different problem: our Ubuntu Uyuni clients don't appear to be supplying a token. The error in /var/log/rhn/rhn_web_ui.log is actually
2023-10-11 17:23:57,160 [ajp-nio-0:0:0:0:0:0:0:1-8009-exec-2] INFO com.suse.manager.webui.controllers.DownloadController - Forbidden: You need a token to access
That error appears to be because the client is not supplying a token in the request, failing the getTokenFromRequest in the DownloadPackage method in the DownloadController.java module.
where that call tries
So my questions are: Why wouldn't the client be putting the token in the request header? Where does the Uyuni client/minion store the token if it's available? and assuming that location is empty on those clients somehow, is there a way to push a token to the client with salt to avoid having to re-register the client (assuming that works).
Beta Was this translation helpful? Give feedback.
All reactions