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
Unable to upgrade fresh F37 installation #405
Comments
Same for me on 37.20230127.0. Looks like the server has issues! May be unrelated but when gnome-software fired up on login just now, it went crazy and wrote out like 40Gb of data, swamping I/O. Coincidence or a buggy reaction to a failure to check updates? |
Also having this issue today with version
|
I tried to install Silverblue at 9:30 am (2023/01/29—GMT-03) and had the same issue! |
Having the same issue here. Surprisingly rpm-ostree refresh-md -f works fine... Guess the server just is doing some maintenance |
Exciting; I don't have admin privileges on the repo but I'm guessing this is related to recent pruner runs. I saw coreos/fedora-coreos-releng-automation@9ef521a go by and I suspect that the prod ref was aliased and got removed? I think it should just be a matter of re-creating the alias to |
I have the same problem! |
Same issue when trying to rebase from kinoite 36 to 37 |
Same issue here trying to upgrade Silverblue (37) |
hmm. I just ran an |
At least the logs from the pruner for F37 SB would indicate otherwise:
though there was a later error when running
We've seen this error before and @jlebon and I have been trying to understand what causes it. Though, as mentioned in my previous comment I'm not observing any |
It is still |
I think maybe the reason I wasn't getting a I'm investigating further. |
OK I think I've resolved the issue by re-importing the commits from the
the Similarly for kinoite:
the |
It's working fine now, just updated my system without an issue. |
Thanks @dustymabe for the Sunday fix! |
Double thanks @dustymabe! Confirm upgrade is functional here. |
Can confirm all is well for me too. Thanks @dustymabe! 🙇 |
When we calculate the reachability set in `ostree prune`, we do this without any locking. This means that between the time we build the set and when we call `ostree_repo_prune_from_reachable`, new content might've been added. This then causes us to immediately prune that content since it's not in the now outdated set. Fix this by calculating the set under an exclusive lock. I think this is what happened in fedora-silverblue/issue-tracker#405. While the pruner was running, the `new-updates-sync` script[1] was importing content into the repo. The newly imported commits were immediately deleted by the many `ostree prune --commit-only` calls the pruner does, breaking the refs. [1] https://pagure.io/fedora-infra/ansible/blob/35b35127e444/f/roles/bodhi2/backend/files/new-updates-sync#_18
Just to close the loop on this, I think ostreedev/ostree#2808 should fix the underlying issue so this doesn't happen again. |
When we calculate the reachability set in `ostree prune`, we do this without any locking. This means that between the time we build the set and when we call `ostree_repo_prune_from_reachable`, new content might've been added. This then causes us to immediately prune that content since it's not in the now outdated set. Fix this by first listing the objects eligible for pruning, then calculating the set, and then passing both the set and the object list to the prune API. I think this is what happened in fedora-silverblue/issue-tracker#405. While the pruner was running, the `new-updates-sync` script[1] was importing content into the repo. The newly imported commits were immediately deleted by the many `ostree prune --commit-only` calls the pruner does, breaking the refs. [1] https://pagure.io/fedora-infra/ansible/blob/35b35127e444/f/roles/bodhi2/backend/files/new-updates-sync#_18
When we calculate the reachability set in `ostree prune`, we do this without any locking. This means that between the time we build the set and when we call `ostree_repo_prune_from_reachable`, new content might've been added. This then causes us to immediately prune that content since it's not in the now outdated set. Fix this by first listing the objects eligible for pruning, then calculating the set, and then passing both the set and the object list to the prune API. I think this is what happened in fedora-silverblue/issue-tracker#405. While the pruner was running, the `new-updates-sync` script[1] was importing content into the repo. The newly imported commits were immediately deleted by the many `ostree prune --commit-only` calls the pruner does, breaking the refs. [1] https://pagure.io/fedora-infra/ansible/blob/35b35127e444/f/roles/bodhi2/backend/files/new-updates-sync#_18
Sometimes we use the pods for the importer and pruner to inspect and fix issues with the OSTree repos since it's the most efficient way for us to gain read/write access to the repos. Recently I was restoring some data that was lost in a recent prune [1] and the `ostree pull` operation I was running failed with an obscure error message: ``` error: Commit 1eb251bced7652f2f486c15447a7bf00238ef0ea172b4f214d2684ecfbeb2c40: GPG: GPG: Failed to import key: GPGME: System error w/o errno ``` It turns out the many gpg processes that get forked during a pull operation to verify the signatures for the commits don't get cleaned up: ``` 1000720+ 11737 1 0 14:59 pts/4 00:00:00 [gpg] <defunct> 1000720+ 11740 1 0 14:59 pts/4 00:00:00 [gpg] <defunct> 1000720+ 11743 1 0 14:59 pts/4 00:00:00 [gpg] <defunct> 1000720+ 11746 1 0 14:59 pts/4 00:00:00 [gpg] <defunct> ... ``` Let's use `dumb-init` to reap these defunct processes. [1] fedora-silverblue/issue-tracker#405 (comment)
Sometimes we use the pods for the importer and pruner to inspect and fix issues with the OSTree repos since it's the most efficient way for us to gain read/write access to the repos. Recently I was restoring some data that was lost in a recent prune [1] and the `ostree pull` operation I was running failed with an obscure error message: ``` error: Commit 1eb251bced7652f2f486c15447a7bf00238ef0ea172b4f214d2684ecfbeb2c40: GPG: GPG: Failed to import key: GPGME: System error w/o errno ``` It turns out the many gpg processes that get forked during a pull operation to verify the signatures for the commits don't get cleaned up: ``` 1000720+ 11737 1 0 14:59 pts/4 00:00:00 [gpg] <defunct> 1000720+ 11740 1 0 14:59 pts/4 00:00:00 [gpg] <defunct> 1000720+ 11743 1 0 14:59 pts/4 00:00:00 [gpg] <defunct> 1000720+ 11746 1 0 14:59 pts/4 00:00:00 [gpg] <defunct> ... ``` Let's use `dumb-init` to reap these defunct processes. [1] fedora-silverblue/issue-tracker#405 (comment)
To Reproduce
Please describe the steps needed to reproduce the bug:
rpm-ostree upgrade
error: While pulling fedora/37/x86_64/silverblue: Server returned HTTP 404
Expected behavior
Upgrade the system.
OS version:
The text was updated successfully, but these errors were encountered: