Red Hat Bugzilla – Bug 1679
rpm looks at mounted FSs.
Last modified: 2008-05-01 11:37:49 EDT
$ rpm -U package-1.0-1.i386.rpm
failed to stat /mnt/h: Input/output error
Yes, /mnt/h is mentioned in /etc/mtab and it is supposed
to carry smb mount FS. Unfortunately, something is wrong
there and the mounting breaks every now and then - so I have
to remount. What I don't understand is why this should
matter to RPM.
what version of rpm?
I believe it's looking at mounted filesystems to attempt to
determine if there's enough space for the package to fit.
$ rpm -q rpm
if all the files in the package are destined to /etc and /usr, rpm has
no business looking at /mnt
Not true. There is no way for rpm to know whether symlinks point
to other mounted file systems even though all paths in the package
start with /etc or /usr. For efficiency, all mounted file systems
are processed at the same time to ascertain available disk space.
I hardly would think that the efficiency gained during an
installation (a reletively one time process) is worth making rpm
unusable if a mount point goes bad (maybe remote server goes down,
etc.), especially since checking this with a slow remote server could
in fact slow down the rpm process much longer than would be had with
a better check. Efficiency here should be "least checks to remote
locations" instead of "least number of seconds under ideal
conditions". Might be there is something I am missing though (like
the symlink check would take a LONG period of time to complete, long
enough to make it frustrating to perform).
The available disk space of all mounted files systems is acquired
before looping over all files to be installed/uninstalled and
calculating the disk space needed/released by each package. The
efficiency comes from the implementation in rpm (which is used
every time that a package is installed or removed), not from
the install process. In fact, rpm queries the mounted file systems
only once (this was the original problem). Attempting to deal with
every possible cicumstance (e.g. mount point going bas during an
install) is not worth the rpm coding effort required.