Pacman

Historical bug tracker for the Pacman package manager.

The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues

This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
Tasklist

FS#4840 - Pacman fails to recognise space full on /

Attached to Project: Pacman
Opened by James Rayner (iphitus) - Sunday, 18 June 2006, 01:40 GMT
Last edited by Roman Kyrylych (Romashka) - Wednesday, 24 January 2007, 11:15 GMT
Task Type Bug Report
Category
Status Closed
Assigned To Aaron Griffin (phrakture)
Architecture not specified
Severity Critical
Priority Normal
Reported Version 0.7.2 Gimmick
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

http://pastebin.com/715773
log kinda explains it all, pacman downloads packages fine, as /var/cache/pacman/pkg is on a seperate partition, but completely destroys itself when installing them as / is full.

my pacman db is now bust, it doesnt list half the packages that are installed.
further attempts to use pacman, end up with this error:

error: /var/lib/pacman/local/-/desc: No such file or directory

being spat out over and over and over.

this could easily be fixed by checking for free space on / before doing anything.
This task depends upon

Closed by  Aaron Griffin (phrakture)
Monday, 12 February 2007, 09:17 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed in CVS
Comment by James Rayner (iphitus) - Sunday, 18 June 2006, 02:27 GMT
removing /var/lib/pacman/local/- made it remember everything. so it's not bust.
Comment by Judd Vinet (judd) - Friday, 30 June 2006, 17:15 GMT
>> this could easily be fixed by checking for free space on / before doing anything.

So how much free space is enough?

Sync DBs store the compressed file size, so we can approximate disk requirements after processing a sync list, but we don't know for fact how much space the uncompressed packages will take, and we don't know for fact how much space the DB entries in /var/lib/pamcan/local will take. Once packages are downloaded, we have a definite idea of the uncompressed space requirements for the package (but not the DB).

So I think we're going to need multiple diskspace checks at various points in the package installation process. Once after a sync and before downloading, then again after packages are downloaded and meta-data is loaded. And after all's said and done, we still have to do some guesswork on the DB size requirements.
Comment by James Rayner (iphitus) - Saturday, 01 July 2006, 08:59 GMT
how much space? checking for more than 0 before installing a package would be a start.

pacman erroring out would help too, it realises there's something wrong with codec's installation, but continues on anyway.

Comment by Miklos Vajna (vmiklos) - Sunday, 09 July 2006, 10:47 GMT Comment by Damjan Georgievski (damjan) - Sunday, 30 July 2006, 22:57 GMT
It would be best if the package manager would support full transactions, and if something goes wrong it should be able to rollback... This would require some spare working space, but somehow I feel that's the only way a package manager should operate.

Has anyone tried implementing that? The logic should not be that hard, but I wonder about the performance.
Comment by Miklos Vajna (vmiklos) - Sunday, 30 July 2006, 23:01 GMT
and what would be that logic?

btw have a look at the cvs, transactions are already supported, but for rollback - do the mirrors provides the old versions of packages or what? i don't think so
Comment by James Rayner (iphitus) - Monday, 31 July 2006, 08:02 GMT
> do the mirrors provides the old versions of packages or what? i don't think so

they dont need to. they're already installed on your system and you're upgrading from them.
Comment by Miklos Vajna (vmiklos) - Monday, 31 July 2006, 08:48 GMT
then let's define what does rollback should do:

(imho) the ability of the following: pacman upgrades foo-1.0 to foo-2.0, then i empty the package cache (i'm allowed to do it all the time) then i'm able to downgrade foo-2.0 to foo-1.0

do you still think that they don't need to? :)
Comment by Damjan Georgievski (damjan) - Tuesday, 01 August 2006, 16:00 GMT
Miklos, before you upgrade a package you have all the files of the old package in your filesystem (/usr/bin/foo for ex.).

The idea of a rollback is that, for every destructive operation that pacman does (deleteing, changeing or overwriting any file, including the package meta-data) it would first make a safe copy... if all is good at the end the safe copies are removed. If not, a rollback would bring them back.

This would require spare hard disk space.. but it might be worth it.
Comment by Miklos Vajna (vmiklos) - Tuesday, 01 August 2006, 16:12 GMT
ok, so this still won't solve the following situation:

pkg A depends on pkg B which is a library. the library is upgraded and it provides a newer soversion of the library, so that pkg A needs recompiling, but you're a user, so you don't want to compile anything, but till the devs provides a fixed pkg A you want your old version of pkg A back

i thought this is what is rollback about, but this is something totally different :)
Comment by Vinay S Shastry (shastry) - Saturday, 26 August 2006, 14:41 GMT
>Sync DBs store the compressed file size, so we can approximate disk requirements after processing a sync list, but we don't know for fact how much space the uncompressed packages will take, and we don't know for fact how much space the DB entries in /var/lib/pamcan/local will take. Once packages are downloaded, we have a definite idea of the uncompressed space requirements for the package (but not the DB).

Why not have more package info in the db ? It'd make sense to have all the important info in the sync db (URL, installed size, pkg size, etc.)
Comment by Miklos Vajna (vmiklos) - Saturday, 26 August 2006, 15:34 GMT Comment by Aaron Griffin (phrakture) - Friday, 29 December 2006, 17:38 GMT
This should be fixed in CVS now. Changing status, but keeping open.

Loading...