Updating portage 2.2 from rc41 to rc42 caused a Python backtrace for me: >>> Installing (1 of 1) sys-apps/portage-2.2_rc42 * Cleaning orphaned Python bytecode from /usr/lib/portage/pym .. Traceback (most recent call last): File "/usr/bin/emerge", line 40, in <module> from portage.exception import ParseError, PermissionDenied File "/usr/lib/portage/pym/_emerge/main.py", line 1415, in emerge_main msg = [] File "/usr/lib/portage/pym/_emerge/actions.py", line 457, in action_build pkglist = mydepgraph.altlist() File "/usr/lib/portage/pym/_emerge/Scheduler.py", line 824, in merge mtimedb = self._mtimedb File "/usr/lib/portage/pym/_emerge/Scheduler.py", line 1132, in _merge portage.elog.add_listener(self._elog_listener) File "/usr/lib/portage/pym/_emerge/Scheduler.py", line 1279, in _main_loop self._schedule() File "/usr/lib/portage/pym/_emerge/PollScheduler.py", line 134, in _poll_loop handler(f, event) File "/usr/lib/portage/pym/_emerge/SpawnProcess.py", line 192, in _output_handler self._unregister_if_appropriate(event) File "/usr/lib/portage/pym/_emerge/AbstractPollTask.py", line 27, in _unregister_if_appropriate self.wait() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib/portage/pym/_emerge/EbuildPhase.py", line 84, in _post_phase_exit self.wait() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib/portage/pym/_emerge/TaskSequence.py", line 44, in _task_exit_handler self.wait() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib/portage/pym/_emerge/CompositeTask.py", line 106, in _default_final_exit return self.wait() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib/portage/pym/_emerge/EbuildBuild.py", line 178, in _build_exit self.wait() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib/portage/pym/_emerge/CompositeTask.py", line 106, in _default_final_exit return self.wait() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 42, in wait self._wait_hook() File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 115, in _wait_hook self._exit_listener_stack.pop()(self) File "/usr/lib/portage/pym/_emerge/Scheduler.py", line 1111, in _build_exit self._status_display.failed = len(self._failed_pkgs) File "/usr/lib/portage/pym/_emerge/PollScheduler.py", line 43, in _schedule return self._schedule_tasks() File "/usr/lib/portage/pym/_emerge/Scheduler.py", line 1301, in _schedule_tasks self._status_display.display() File "/usr/lib/portage/pym/_emerge/SequentialTaskQueue.py", line 55, in schedule task.addExitListener(self._task_exit) File "/usr/lib/portage/pym/_emerge/AsynchronousTask.py", line 24, in start self._start() File "/usr/lib/portage/pym/_emerge/PackageMerge.py", line 44, in _start self.returncode = self.merge.merge() File "/usr/lib/portage/pym/_emerge/MergeListItem.py", line 148, in merge retval = self._install_task.install() File "/usr/lib/portage/pym/_emerge/EbuildBuild.py", line 269, in install rval = merge.execute() File "/usr/lib/portage/pym/_emerge/EbuildMerge.py", line 27, in execute blockers=self.find_blockers) File "/usr/lib/portage/pym/portage/__init__.py", line 7374, in merge for hardlink_src in hardlink_candidates: File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 4277, in merge base_path_tmp = mkdtemp("", "._portage_reinstall_.", File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 4287, in _merge settings.backup_changes(var_name) File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 3839, in treewalk pass File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 2169, in unmerge retval = doebuild(myebuildpath, ebuild_phase, self.myroot, File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 2972, in _find_unused_preserved_libs preserved_nodes.add(preserved_node) File "/usr/lib/portage/pym/portage/dbapi/vartree.py", line 662, in findProviders if not self._libs: KeyError: "[u'/usr/bin/same-gnome'] not in object list" Re-emerging portage again complained about possible collisions, as the first emerge wasn't fully recorded, but otherwise went all right.
This doesn't seem like it should have happened. I'm not sure what could caused it. If anyone can reproduce this then please comment.
Maybe this has been fixed by now. Please re-open if it happens again.