This issue was initially reported in bug 554838, comment #21: # emerge --update --newuse --deep --with-bdeps=y -pv world ... Total: 0 packages, Size of downloads: 0 KiB ----- # emerge -pev world ... [ebuild U ] sys-devel/llvm-3.8.0-r2:0/3.8.0::gentoo [3.7.1-r2:0/3.7.1::gentoo] USE="clang gold libffi ncurses static-analyzer xml -debug -doc -libedit -lldb -multitarget -ocaml -python {-test}" ABI_X86="(64) -32 (-x32)" PYTHON_TARGETS="python2_7" VIDEO_CARDS="-radeon" 27,198 KiB [ebuild U ] sys-devel/clang-3.8.0-r100:0/3.8::gentoo [3.7.1-r100:0/3.7::gentoo] USE="static-analyzer -debug -multitarget -python" ABI_X86="(64) -32 (-x32)" 0 KiB [blocks b ] <=sys-devel/clang-3.8.0-r99 ("<=sys-devel/clang-3.8.0-r99" is blocking sys-devel/llvm-3.8.0-r2) ... Total: 1002 packages (2 upgrades, 1000 reinstalls), Size of downloads: 27,198 KiB Conflict: 1 block
Created attachment 435896 [details] copy of user configuration that reproduces the issue I was able to reproduce the problem using the attached configuration together with the gentoo repository at commit 88c1f9f779abf72b6091cd5f772dfcb29151e639 (from 2016-05-19, approximately when the user reported the issue).
The debug log shows a bunch of failed slot_operator_update_probe calls like this: slot_operator_update_probe: existing child package: (sys-devel/llvm-3.7.1-r2:0/3.7.1::gentoo, installed) existing parent package: (media-libs/mesa-11.2.2:0/0::gentoo, installed) new child package: None new parent package: None It seems pretty obvious that it has to fail in check_reverse_dependencies, since updating to llvm-3.8.0-r2 would break this dependency from the installed clang-3.7.1-r100 instance: ~sys-devel/llvm-3.7.1[clang(-),-debug,static-analyzer,abi_x86_64(-)]
Maybe we can handle this by ignoring a broken reverse dependency when the corresponding parent package has an available update which would be compatible with the selected replacement package.
sounds reasonable to me
I have a test case which reproduces this issue in the following branch: https://github.com/zmedico/portage/tree/bug_584626
My branch has a fix, and I've posted the patches for review: https://archives.gentoo.org/gentoo-portage-dev/message/0d492715dd8b590c29004c82eecbb02a https://archives.gentoo.org/gentoo-portage-dev/message/64eef561062fb9ef59260f7a05c2f108
This is in the master branch: https://gitweb.gentoo.org/proj/portage.git/commit/?id=0ccb4f0fefa54592f9c90c70c855dbe35d0ede75
Fixed in portage-2.3.3.