Hi there ! I get the same since a few times : Each time I do a emerge --metadata (or a emerge --sync), I have a traceback, with the error : cache.cache_errors.CacheCorruption: media-fonts/culmus-0.101-r1 is corrupt: dictionary update sequence element #0 has length 1; 2 is required every time on the same package... I've tried to remove the package (in /usr/portage), remove the cache (/var/cache/edb/dep AND /var/portage/metadata/cache), run emerge --regen (Segfault after some other random package, and the, no more emerge --metadata possible (It just do nothing... Doesn't even display the '1%' step... just freeze...), having an fsck done on my partition/disk (no bad sector or anything else) I'll join my emerge --info and the complete traceback... It'd be great if anyone could have some ideas... ++
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.