Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 584626

Summary: sys-apps/portage: missed sys-devel/llvm-3.8.0-r2 update from 3.7.1-r2
Product: Portage Development Reporter: Zac Medico <zmedico>
Component: Core - Interface (emerge)Assignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: esigra, m+gentoo-bugs
Priority: Normal Keywords: InVCS
Version: 2.2   
Hardware: All   
OS: All   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=612772
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 155723, 604854    
Attachments: copy of user configuration that reproduces the issue

Description Zac Medico gentoo-dev 2016-05-31 04:58:37 UTC
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
Comment 1 Zac Medico gentoo-dev 2016-05-31 05:12:11 UTC
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).
Comment 2 Zac Medico gentoo-dev 2016-05-31 05:24:52 UTC
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(-)]
Comment 3 Zac Medico gentoo-dev 2016-05-31 05:43:28 UTC
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.
Comment 4 Brian Dolbec gentoo-dev 2016-05-31 13:52:21 UTC
sounds reasonable to me
Comment 5 Zac Medico gentoo-dev 2016-06-22 07:36:36 UTC
I have a test case which reproduces this issue in the following branch:

https://github.com/zmedico/portage/tree/bug_584626
Comment 8 Zac Medico gentoo-dev 2017-02-10 18:48:06 UTC
Fixed in portage-2.3.3.