FS#22896 - "returning error 1 from local_db_populate : out of memory!" on i686 netbook
Attached to Project:
Pacman
Opened by h (Cdh) - Monday, 14 February 2011, 21:52 GMT
Last edited by Allan McRae (Allan) - Thursday, 17 February 2011, 11:01 GMT
Opened by h (Cdh) - Monday, 14 February 2011, 21:52 GMT
Last edited by Allan McRae (Allan) - Thursday, 17 February 2011, 11:01 GMT
|
Details
Summary and Info:
On 64 bit everything still works fine but on my 32 bit netbook I got a problem with installing or upgrading packages. "pacman -Suu --debug" ("pacman -S" too) gives http://aur.pastebin.com/1AEGeR4K I am pretty sure that I am not "out of memory"... Here the culprit got introduced: http://mailman.archlinux.org/pipermail/pacman-dev/2011-February/012402.html I don't know the code of pacman but there seems to be another reason that _alpm_pkghash_create(est_count * 2) returns NULL. Before that commit (03.02.2011) it worked fine, after the commit (08.02.2011) it doesn't, though I have not checked yet if _alpm_pkghash_create returned NULL before. |
This task depends upon
Closed by Allan McRae (Allan)
Thursday, 17 February 2011, 11:01 GMT
Reason for closing: Fixed
Additional comments about closing: git commit d1cc1ef6
Thursday, 17 February 2011, 11:01 GMT
Reason for closing: Fixed
Additional comments about closing: git commit d1cc1ef6
error: database larger than maximum size
(which needs a newline added at the end...)
There seems to be something wrong with the estimation of local db size instead of a out-of-memory error. This would only be noticed after the commit you pointed out as previously it would have just returned a zero size hash table that would have been rehashed as needed.
Can you add:
_alpm_log(PM_LOG_ERROR, "requested size: %zd\n", size);
after the previous error (line 74, pkghash.c) so we can see what size is being requested.
debug: checking for package upgrades
debug: loading package cache for repository 'local'
error: database larger than maximum sizeerror: requested size: -2
debug: returning error 1 from local_db_populate : out of memory!
---snip---
chris@chriseee ~ % ls /var/lib/pacman/local | wc -l
1362
On my 64 bit machine it's ext4... That's another difference, yes.
Can you post the output of `ls -l /var/lib/pacman/` as well as `stat /var/lib/pacman/local/`?
total 72
drwxr-xr-x 1171 root root 65536 Feb 11 09:23 local
drwxr-xr-x 2 root root 4096 Feb 11 09:16 sync
File: `/var/lib/pacman/local/'
Size: 65536 Blocks: 136 IO Block: 4096 directory
Device: 901h/2305d Inode: 1917424 Links: 1171
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2011-01-09 10:39:40.000000000 -0600
Modify: 2011-02-11 09:23:35.000000000 -0600
Change: 2011-02-11 09:23:35.000000000 -0600
Birth: -
At least pacman -Syu and -U worked fine now.
And don't forget the missing newline... :)
The first comment, referring to the line in the original debug output:
error: database larger than maximum sizedebug: returning error 1 from local_db_populate : out of memory!
should rather be
error: database larger than maximum size
debug: returning error 1 from local_db_populate : out of memory!