From Bugzilla Helper: User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.2.17-14 i686) I just upgraded from 6.2 to seawolf yesterday and found that the stage "preparing to install" doesn't check the total amount of disk space needed. Instead I had to go three times through this stage until all requirements were met. It was every time on the same partition (/). Reproducible: Didn't try Steps to Reproduce: 1. start the upgrade with 60 MB of free disk space 2. 3.
So does the installer crash? What exactly is the behavior?
The installer doesn't crash, I have to go through the screens multiple times. The installer wanted 13 MB in / during the first prepare to install, 10 MB in / during the second prepare to install and another 18 MB in the third run of prepare to install. (Original numbers were different).
I don't understand...what do you mean that "Original numbers were different"?
I've added Thomas Hiller to the CC list, since the original bugreport came from him and he only used my bugzilla-account to enter it. AFAIK his main problem is, that anaconda doesn't calculate the needed disk-size for installation correctly at the first step. Example (don't trust my numbers here - I've in no way verified them!): If anaconda starts, it seems to calculate a needed space of 1GB, then it tries to install some packages and finds, that this initial calculated size won't fit. So it calculates again (step A) and says it will need more 13MB free space. The user switches to another console (step B), frees 14MB of the disk and continues the installation in the hope all remaining packages will now fit on the disk. But: anaconda continues and finds again, that it will need more space -this time it says it will need 18MB - huh? Why the heck did anaconda said 13MB in the first round ? So, why can't anaconda calculate directly from the beginning the needed space correctly ? In the end it's frustrating for the user to free space from his disk, just to see that it won't fit this time either, esp. when you have to do this (step B) three times.
The calculation takes place in RPM, as far as I know. Jeff, does this make sense to you?
The calculation in rpm is nominal, accurate to only +/- 5%, because there's no way to get an accurate handle on the root reserved disk space (rpm "guesses" 5%, there's no attempt to read the parameters from the disk). So, you're bouncing around near the edge, making changes of +/- 1%, and failing because the calculation is not that accurate. In addition, rpm's calculation is only for files within packages, there's no attempt (nor should there be in rpm) to account for temporary space used by the installer, that can be significant as well. Yes the calculation is done during transaction set processing in rpm.