Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 663022 - sys-apps/portage: FEATURES=metadata-transfer FileNotFoundError when eclass is removed
Summary: sys-apps/portage: FEATURES=metadata-transfer FileNotFoundError when eclass is...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All All
: Normal normal
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 659322
  Show dependency tree
 
Reported: 2018-08-07 16:51 UTC by Zac Medico
Modified: 2018-10-12 19:33 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge_info,6.95 KB, text/plain)
2018-08-07 18:24 UTC, josef.95
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Zac Medico gentoo-dev 2018-08-07 16:51:54 UTC
Removal of virtualx.eclass triggered this error:

https://github.com/gentoo/kde/commit/a8c709fa1218ed7f4229b258d8725984eb195a74

Note that FEATURES="metadata-transfer" is not really appropriate for this repository, but apparently there was a metadata/md5-cache directory in the checkout that triggered metadata-transfer behavior:

> >>> Syncing repository 'kde' into '/srv/repos/kde'...
> >>> Starting layman sync for kde...
>  * Running Git... # ( cd /srv/repos/kde  && /usr/bin/git pull )
> remote: Counting objects: 10, done.
> remote: Compressing objects: 100% (10/10), done.
> remote: Total 10 (delta 6), reused 0 (delta 0)
> Unpacking objects: 100% (10/10), done.
> From https://anongit.gentoo.org/git/proj/kde
>    5edb26de10..886dcb9e53  master     -> origin/master
> Updating 5edb26de10..886dcb9e53
> Fast-forward
>  eclass/virtualx.eclass                                            | 260 ----------------------------------------------------------------------------------------------------------------------------------------
>  kde-plasma/plasma-pa/files/plasma-pa-5.13.3-automagic_gconf.patch |  18 ++++++++++
>  kde-plasma/plasma-pa/plasma-pa-5.13.49.9999.ebuild                |   6 ++--
>  kde-plasma/plasma-pa/plasma-pa-9999.ebuild                        |   6 ++--
>  4 files changed, 24 insertions(+), 266 deletions(-)
>  delete mode 100644 eclass/virtualx.eclass
>  create mode 100644 kde-plasma/plasma-pa/files/plasma-pa-5.13.3-automagic_gconf.patch
>  * 
>  * Succeeded:
>  * ------
>  * Successfully synchronized overlay "kde".
>  * 
> >>> layman sync succeeded: kde
> >>> laymansync sez... "Hasta la sync ya, baby!"
> === Sync completed for kde
> q: Updating ebuild cache for /srv/repos/kde ... 
> q: Finished 632 entries in 0.005513 seconds
>  * Updating metadata cache for kde ...                                                                                                                                                                      [ ok ]
> 
> >>> Updating Portage cache
>   0% [>                                                                       ]Exception in callback AsynchronousTask.wait()
> handle: <Handle AsynchronousTask.wait()>
> Traceback (most recent call last):
>   File "/usr/lib64/python3.6/site-packages/portage/checksum.py", line 43, in _open_file
>     encoding=_encodings['fs'], errors='strict'), 'rb')
> FileNotFoundError: [Errno 2] No such file or directory: b'/srv/repos/kde/eclass/virtualx.eclass'
> 
> During handling of the above exception, another exception occurred:
> 
> Traceback (most recent call last):
>   File "/usr/lib64/python3.6/asyncio/events.py", line 145, in _run
>     self._callback(*self._args)
>   File "/usr/lib64/python3.6/site-packages/_emerge/AsynchronousTask.py", line 84, in wait
>     self._wait_hook()
>   File "/usr/lib64/python3.6/site-packages/_emerge/AsynchronousTask.py", line 195, in _wait_hook
>     self._exit_listener_stack.pop()(self)
>   File "/usr/lib64/python3.6/site-packages/portage/sync/controller.py", line 395, in _sync_task_exit
>     self.sync_callback(self.sync_task)
>   File "/usr/lib64/python3.6/site-packages/portage/sync/controller.py", line 365, in _sync_callback
>     porttrees=[repo.location])
>   File "/usr/lib64/python3.6/site-packages/portage/metadata.py", line 117, in action_metadata
>     ebuild_hash, tree_data.eclass_db):
>   File "/usr/lib64/python3.6/site-packages/portage/cache/template.py", line 246, in validate_entry
>     if self._validate_entry(chf_type, entry, ebuild_hash, eclass_db):
>   File "/usr/lib64/python3.6/site-packages/portage/cache/template.py", line 261, in _validate_entry
>     self.store_eclass_paths)
>   File "/usr/lib64/python3.6/site-packages/portage/eclass_cache.py", line 170, in validate_and_rewrite_cache
>     if cache_getter(ec_data) != our_getter(cached_data):
>   File "/usr/lib64/python3.6/site-packages/portage/eclass_cache.py", line 53, in __getattr__
>     val = checksum.perform_checksum(self.location, hashname)[0]
>   File "/usr/lib64/python3.6/site-packages/portage/checksum.py", line 529, in perform_checksum
>     myhash, mysize = hashfunc_map[hashname].checksum_file(myfilename)
>   File "/usr/lib64/python3.6/site-packages/portage/checksum.py", line 84, in checksum_file
>     with _open_file(filename) as f:
>   File "/usr/lib64/python3.6/site-packages/portage/checksum.py", line 51, in _open_file
>     raise portage.exception.FileNotFound(filename)
> portage.exception.FileNotFound: b'/srv/repos/kde/eclass/virtualx.eclass'
> --Return--
> > /usr/lib64/python3.6/site-packages/portage/util/_eventloop/asyncio_event_loop.py(76)_internal_caller_exception_handler()->None
> -> pdb.set_trace()
> (Pdb)
Comment 1 josef.95 2018-08-07 18:24:24 UTC
Created attachment 542710 [details]
emerge --info

I added the associated emerge --info to this bug.

Thank you
Comment 2 Larry the Git Cow gentoo-dev 2018-08-07 18:36:19 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=eb81c8081ae53e862f9f0f82c6119f936ca896e7

commit eb81c8081ae53e862f9f0f82c6119f936ca896e7
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-08-07 18:29:51 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2018-08-07 18:34:29 +0000

    action_metadata: refresh eclass cache (bug 663022)
    
    After sync, the eclass cache can contain stale data, therefore
    use the update_eclasses method to refresh it.
    
    Bug: https://bugs.gentoo.org/663022

 lib/portage/metadata.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Comment 3 josef.95 2018-08-07 19:01:35 UTC
(In reply to Larry the Git Cow from comment #2)
> The bug has been referenced in the following commit(s):

After adding this patch the sync works now fine here.

Thanks! :)