On Thu, Jul 20, 2023 at 5:08 AM Adam Emerson <aemerson@redhat.com> wrote:
On 19/07/2023, Ilya Dryomov wrote:
Hi Adam,
"make check" fails to build on pacific and quincy:
common/CMakeFiles/common-common-objs.dir/ConfUtils.cc.o:(.bss+0x0): first defined here /usr/bin/ld: CMakeFiles/common-objs.dir/mon/MonCap.cc.o:(.bss+0x2): multiple definition of `boost::phoenix::placeholders::uarg2'; common/CMakeFiles/common-common-objs.dir/ConfUtils.cc.o:(.bss+0x2): first defined here /usr/bin/ld: CMakeFiles/common-objs.dir/mon/MonCap.cc.o:(.bss+0x4): multiple definition of `boost::phoenix::placeholders::uarg3'; common/CMakeFiles/common-common-objs.dir/ConfUtils.cc.o:(.bss+0x4): first defined here ...
Example on pacific: https://jenkins.ceph.com/job/ceph-pull-requests/118551/
Example on quincy: https://jenkins.ceph.com/job/ceph-pull-requests/118552/
Could you please take a look?
Yes.
There are three things going on here:
1. It looks like things aren't completely cleaned up between make check runs, and stuff installed for one hangs around for others. This surprises me.
2. It looks like quincy's install-deps.sh wasn't updated when we switched to jammy, and it was just using whatever version of Boost was lying around from previous builds. When this was 1.79, that didn't cause problems. For 1.82, it does.
3. Proximately, the workaround for the Boost.Phoenix bug isn't in quincy.
I have a candidate fix in https://github.com/ceph/ceph/pull/52559
Long-term, I think we should also address issue 1, the state of the bulder being overly dependendent on what was built previously.
This is what Ernesto and John have been cooperating on. Some preliminary work landed in https://github.com/ceph/ceph/pull/48697, the goal is to fully containerize everything that's running in Jenkins. John, any news on picking up https://github.com/ceph/ceph/pull/46071? Thanks, Ilya