Skip to content
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

Bad Experience on Unreliable Connections #2560

Open
da2ce7 opened this issue Feb 9, 2021 · 3 comments
Open

Bad Experience on Unreliable Connections #2560

da2ce7 opened this issue Feb 9, 2021 · 3 comments

Comments

@da2ce7
Copy link

da2ce7 commented Feb 9, 2021

for users who have unreliable internet connections rpm-ostree has a very poor experience, including wasted bandwidth.

While it is possible to turn off updates using the "metered connections" option, often, this is not a option, as it is important to maintain a secure system when traveling or in low-economic countries.

Problems:

  • Unable to cancel the transfer of a object: canceling must wait until the current object is obtained before cleanly exiting.
  • Cache deletes objects that have been successfully downloaded if rpm-ostree dose not cleanly exit.
  • No progress for the download of the current object.
  • Iterative metadata process gives a false exception of time requirements for download.
  • Timeout for changing, dropping, and unstable connections is far-too-long. Leading for very annoying object download stalls; on poor connections leading to a infinite download time.
  • Partial and presumable downloads of large objects should be the default.

Expected:

rpm-ostree should be very respectful of user bandwidth. modern cryptographic techniques, (such as a hash-merkel tree), should be used to verify partial downloads; such as what bittorrent provides; there should be (almost) no loss of downloaded data, even when exiting uncleanly.

rpm-ostree should provide clear and accurate data for the progress and speed of the download, downloading all the required meta-data ahead of time in a non-iterative process.

rpm-ostree should use a multi-threaded multi-piece download system with short timeouts and multiple routes, either using bit-torrent directly, or a system that is modeled upon bit torrent for its efficiency and resilience under adverse conditions.

@jlebon
Copy link
Member

jlebon commented Feb 9, 2021

What package requests do you have? It should only be downloading the filelist if you're requesting something by path that falls outside of [/usr]/[sb]in/ (this could also be requested transitively via one of your top-level package requests). The logic for that is shared with dnf (via libdnf).

@da2ce7
Copy link
Author

da2ce7 commented Feb 9, 2021

@jlebon The program that is running is refresh-md, the automated update program. Here on F33 Silverblue.

@jlebon
Copy link
Member

jlebon commented Feb 10, 2021

Ahh right, OK. The refresh-md calls are almost certainly triggered by GNOME Software. Hmm, I think GNOME Software has capabilities for detecting metered connections. If it doesn't recognize it as a metered connection, it's possible you have to label it as such manually? (But also, it's probably safer to disable automatic updates in that case).

I'll have to dig into the download resume bit; all that should be shared with dnf via libdnf/librepo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants