Summary: | emerge --metadata => package is corrupt | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Swoög <Swoog.News> |
Component: | Core - Ebuild Support | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | Swoog.News |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 194041 | ||
Attachments: |
complete Traceback
Emerge --info handle the CacheCorruption error |
Description
Swoög
2007-10-21 23:56:54 UTC
Created attachment 134092 [details]
complete Traceback
You didn't say which version of portage you're using but I'm pretty sure this is fixed already. This should solve it for you: rm -rf /var/cache/edb/dep emerge --metadata emerge portage Created attachment 134095 [details]
Emerge --info
Sorry, it seems that I forgot to put the emerge-info file... So, it's Portage v2.1.3.9 (the last one)... And as I had said : "I've tried to [...]remove the cache (/var/cache/edb/dep[...]" I had already tried that and nothing more happened... the same about (re)-emerging portage... Created attachment 134098 [details, diff]
handle the CacheCorruption error
If this patch is saved as /tmp/cache.patch then it can be applied as follows:
patch /usr/lib/portage/pym/cache/util.py < /tmp/cache.patch
Perfect, it worked ! Thank you ! Anybody else who gets a traceback like this one should note that the error is triggered by one of the files inside ${PORTDIR}/metadata/cache/. In most cases it should serve as a workaround to remove that directory and run emerge --sync again.
>>> Updating Portage cache: 56%Traceback (most recent call last):
File "/usr/bin/emerge", line 6474, in ?
retval = emerge_main()
File "/usr/bin/emerge", line 6431, in emerge_main
action_metadata(settings, portdb, myopts)
File "/usr/bin/emerge", line 5036, in action_metadata
eclass_cache=ec, verbose_instance=noise_maker)
File "/usr/lib/portage/pym/cache/util.py", line 31, in mirror_cache
try: entry = src_cache[x]
File "/usr/lib/portage/pym/cache/metadata.py", line 32, in __getitem__
return flat_hash.database.__getitem__(self, cpv)
File "/usr/lib/portage/pym/cache/flat_hash.py", line 28, in __getitem__
d = self._parse_data(myf, cpv)
File "/usr/lib/portage/pym/cache/metadata.py", line 39, in _parse_data
d = flat_hash.database._parse_data(self, data, cpv)
File "/usr/lib/portage/pym/cache/flat_hash.py", line 46, in _parse_data
raise cache_errors.CacheCorruption(cpv, e)
This has been released in 2.1.3.16. |