I was running with FEATURES=parallel-install, not sure if it matters here. Traceback (most recent call last): File "/usr/lib/python-exec/python2.7/emerge", line 50, in <module> retval = emerge_main() File "/usr/lib64/python2.7/site-packages/_emerge/main.py", line 1185, in emerge_main return run_action(emerge_config) File "/usr/lib64/python2.7/site-packages/_emerge/actions.py", line 3236, in run_action emerge_config.args, spinner) File "/usr/lib64/python2.7/site-packages/_emerge/actions.py", line 505, in action_build retval = mergetask.merge() File "/usr/lib64/python2.7/site-packages/_emerge/Scheduler.py", line 1032, in merge rval = self._merge() File "/usr/lib64/python2.7/site-packages/_emerge/Scheduler.py", line 1434, in _merge self._main_loop() File "/usr/lib64/python2.7/site-packages/_emerge/Scheduler.py", line 1405, in _main_loop self._event_loop.iteration() File "/usr/lib64/python2.7/site-packages/portage/util/_eventloop/EventLoop.py", line 270, in iteration if not x.callback(f, event, *x.args): File "/usr/lib64/python2.7/site-packages/portage/util/_async/PipeLogger.py", line 92, in _output_handler self.wait() File "/usr/lib64/python2.7/site-packages/_emerge/AsynchronousTask.py", line 57, in wait self._wait_hook() File "/usr/lib64/python2.7/site-packages/_emerge/AsynchronousTask.py", line 175, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/python2.7/site-packages/_emerge/SpawnProcess.py", line 174, in _pipe_logger_exit self.wait() File "/usr/lib64/python2.7/site-packages/_emerge/AsynchronousTask.py", line 57, in wait self._wait_hook() File "/usr/lib64/python2.7/site-packages/_emerge/AsynchronousTask.py", line 175, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/python2.7/site-packages/_emerge/EbuildPhase.py", line 266, in _ebuild_exit self.wait() File "/usr/lib64/python2.7/site-packages/_emerge/AsynchronousTask.py", line 57, in wait self._wait_hook() File "/usr/lib64/python2.7/site-packages/_emerge/AsynchronousTask.py", line 175, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/python2.7/site-packages/_emerge/EbuildBinpkg.py", line 50, in _package_phase_exit self.wait() File "/usr/lib64/python2.7/site-packages/_emerge/AsynchronousTask.py", line 57, in wait self._wait_hook() File "/usr/lib64/python2.7/site-packages/_emerge/AsynchronousTask.py", line 175, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib64/python2.7/site-packages/_emerge/EbuildBuild.py", line 385, in _record_binpkg_info errors='strict') as f: IOError: [Errno 2] No such file or directory: '/var/tmp/portage/app-arch/unrar-5.3.11/build-info/BINPKGMD5'
Since _record_binpkg_info is called via addExitListener, the order call in relation to other exit listeners is somewhat fragile. The issue may be similar to bug 562264 in this respect, where the problem was solved by using a CompositeTask instance was used to ensure that _sync_callback was called before exit listeners: https://gitweb.gentoo.org/proj/portage.git/commit/?id=4205ec912aebf2e3b0bd673fcacb576b1f344329 We can certainly do the same for _record_binpkg_info.
There's a patch in the following branch: https://github.com/zmedico/portage/tree/bug_578204 It can be applied as follows: mkdir -p /etc/portage/patches/sys-apps/portage wget -O /etc/portage/patches/sys-apps/portage/bug_578204.patch \ https://github.com/zmedico/portage/commit/617a78c8e9123b3df8725a2ac2cf16043895ed5b.patch emerge -1 portage
This is in the master branch: https://gitweb.gentoo.org/proj/portage.git/commit/?id=c5c5cabc4e25922710a911833cae69ad0ee2ef7a
Fixed in 2.3.0.