I noticed the following problem when using rpm on an ftp-server, eg. rpm -Fhv ftp://cube0/pub/redhat/updates/6.2/i386/*.rpm when /var is full (because of recurring dependency-problems when more than one release of a package is on a mirror-site eg. pam-0.72-20 and pam-0.72-20.6.x). RPM doesn't seem to clean up its /var filesystem AND it segfaults when it doesn't have space available for downloading packages using a temporary name. -- dag wieers, dag, http://mind.be/ -- Out of swap, out of luck.
/var is also where the rpm database lives. Graceful behavior with ENOSPC returns from the file system on which the active/open database resides is not gonna happen soon
The db-3.3.11 used in rpm-4.0.3 claims graceful behavior under ENOSPC conditions. Time will tell ...
I'm going to my old bug-reports and want to add this. This bug was about 2 bugs in rpm, the first one is causing the second in a way. I should have made this clearer. 1. If rpm downloads packages but cannot install them, it keeps them stored somewhere in /var and does not clean them. (Not in my case anyway) The bad thing is that the filename is not kept and you have to query each and everyone. Plus: packages that were not downloaded fully were kept too... Filling your /var-partition more and more (with every try) 2. If /var-partition is full it segfaults, where it should not segfault anyway. It could check on beforehand if it is already full and quite with a nice message and/or check during downloading... I'm not sure whether both bugs are solved already. (Is not in the changelog anyway so I reopened it.)
Yes, space in /var/tmp is needed for downloads, and on errors the packages are not cleaned up so that you have a prayer of debugging the problem. Yes, the file names are goofy, this is a side effect of using the makeTempFile API which permits a configurable %{_tmppath} to be prepended. The file name will be changed at some point, use another means to download packages if the name bothers you. No, rpm should not (can not?) check for all possible failure conditions like ENOSPC on /var. Perform normal system administration duties instead.