Bug 31086 - Make urpmi check for enough disc space before proceeding; and alter urpmi behaviour to continue downloading packages while also installing packages
Summary: Make urpmi check for enough disc space before proceeding; and alter urpmi beh...
Status: NEW
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal enhancement
Target Milestone: ---
Assignee: Mageia tools maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-07 08:37 CET by Ben McMonagle
Modified: 2023-05-27 21:45 CEST (History)
1 user (show)

See Also:
Source RPM: urpmi-8.128-1.mga9.src.rpm
CVE:
Status comment:


Attachments

Description Ben McMonagle 2022-11-07 08:37:02 CET
Description of problem: Currently (broadly) urpmi downloads ~ 60 packages, verifies them and then installs them, and repeats until all packages are installed.
On a slow internet connection (mine varies from <56kB/s  to approx 900kB/s) this results in significant *downtime* of the connection (no data is being sent/received), is it possible to change the behaviour of urpmi such that after urpmi starts installing the first *batch* of packages that it has verified, could it then begin downloading the subsequent *batch* of packages. 

A side issue is there may be insufficient HDD space for concurrent sets of packages. 
This already occurs, particularly if the system has not been regularly updated, and a smaller / was initially created, and the user must either increase the / partition size or remove unused/unwanted packages to create more space.

Could urpmi also check available space on /, and calculate approx required HDD space for the entire update package set, just in case there is a (verification) error and all packages are downloaded but not installed, and advise the user if the available space is insufficient and to cancel or proceed at user risk? 

It may be possible to reduce the total system upgrade time from a current release to the next available release by doing this.


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
Comment 1 Ben McMonagle 2022-11-07 09:42:10 CET
an example of the HDD  / space issue;

eg:

# df -H
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.1G     0  4.1G   0% /dev
tmpfs           4.1G     0  4.1G   0% /dev/shm
tmpfs           4.1G  1.5M  4.1G   1% /run
/dev/sda7        16G   13G  2.0G  87% /
8<---------------8<-------------8<------------8<----

urpmi kicad
To satisfy dependencies, the following packages are going to be installed:
  Package                        Version      Release       Arch    
(medium "Core Release (distrib1)")
  lib64ngspice0                  33           1.mga8        x86_64  
(medium "Core Updates (distrib3)")
  kicad                          5.1.12       1.1.mga8      x86_64  
  kicad-doc                      5.1.12       1.1.mga8      noarch  
  kicad-i18n                     5.1.12       1.1.mga8      noarch  
  kicad-library                  5.1.12       1.1.mga8      noarch  
5.8GB of additional disk space will be used.
598MB of packages will be retrieved.
Proceed with the installation of the 5 packages? (Y/n)

if there is insufficient space on /, confirming the above install would render the / partition full with no warning to the user.

yes, the user should be aware of HDD space, but unfortunately, user forums often have users having difficulties with a 100% used / space and need assistance to recover from this.




looks like I need to remove some kernels again .
Comment 2 Lewis Smith 2022-11-07 22:02:36 CET
Ben, in the light of what you say, the business of checking free disc space before proceeding seems far more important than overlapping package installation with downloading the next batch (if any). The collossal example you show above certainly makes the point! I thought texlive was the worst (1Gb+).
Why I changed the title.

Many of us know about slow lines... Before a small network upgrade, I lived with 125KB/s , now 380. I think the idea of overlapping installation & downloading is less important:
* Most system updates work as a single batch, so the facility is mostly relevant for - as  you say - full system upgrades, or post-install update. Rare, if not once-off.
* once a batch has been fully downloaded, its installation is usually relatively very quick. [I shared the 10m wait for kernel updates because of Grub, but that was exceptional]. Normally, the line will be idle for little time.
* I think this would be quite complicated to implement: changing serial processes to parallel ones. [I know some other systems do package downloads in several parallel streams, but always doubted whether there was any gain].

> looks like I need to remove some kernels again
'remove-old-kernels' our neat new package.

Assigning to the tools group.

Assignee: bugsquad => mageiatools
Source RPM: (none) => urpmi-8.128-1.mga9.src.rpm
Summary: Enhancement request: alter urpmi behaviour to continue downloading packages while also installing packages. => Make urpmi check for enough disc space before proceeding; and alter urpmi behaviour to continue downloading packages while also installing packages

Comment 3 Frédéric "LpSolit" Buclin 2022-11-08 01:38:31 CET
I think this bug should be split into two pieces. Bug 3428 already covers the "download while installing" part. This bug should focus on checking the available free disk space.
Morgan Leijström 2023-05-27 21:45:50 CEST

CC: (none) => fri


Note You need to log in before you can comment on or make changes to this bug.