on recent 'make check' failures (was: getting past gcc-11 for T)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



sharing a retrospective on the 'make check' failures over the past few days:

On Fri, Jul 26, 2024 at 3:15 PM Casey Bodley <cbodley@xxxxxxxxxx> wrote:
>
> On Thu, Jul 18, 2024 at 2:03 PM Casey Bodley <cbodley@xxxxxxxxxx> wrote:
> >
> > now that distros are starting to adopt gcc-14, it's time to revisit
> > our supported compiler versions
> >
> > ceph has been pinned to gcc-11 ever since we enabled c++20 in
> > https://github.com/ceph/ceph/pull/45133
> >
> > this means that we're now trying to support 4 gcc major versions. an
> > example where this is problematic:
> > gcc-14 complains about the use of deprecated overloads
> > atomic_store_explicit/atomic_load_explicit in ceph_context.h, with a
> > warning that says "use 'std::atomic<std::shared_ptr<T>>' instead". i
> > made this change in https://github.com/ceph/ceph/pull/58176, but it
> > fails to compile under gcc-11 with "std::atomic requires a trivially
> > copyable type". that works fine in gcc-12 and later
> >
> > crimson builds recently switched to gcc-13 in
> > https://github.com/ceph/ceph/pull/55886, but an lto-related bug in gcc
> > prevented the whole project from switching. in order to make that
> > switch, we'll either need to:
> > a) verify that the compiler bug is resolved in all supported distros, or
>
> for reference, this bug is tracked by:
> https://tracker.ceph.com/issues/63867
> https://bugzilla.redhat.com/show_bug.cgi?id=2241339
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113359
>
> the gcc bug is RESOLVED with 13.3 as the target milestone
>
> in an up-to-date centos stream 9 vm, i see that appstream's
> gcc-toolset-13-gcc-c++ provides 13.3.1-2.1.el9. so we could switch to
> gcc-13 for rpm builds
>
> ubuntu jammy doesn't provide gcc-13. its toolchain ppa does, but i
> only see version 13.1.0-8ubuntu1~22.04 there. so we might stick to
> gcc-12 on ubuntu until we get 24.04 builders going in the lab
>
> > b) measure the performance impact of disabling lto and decide whether
> > it's significant
> >
> > if we're not able to switch to gcc-13 yet, then we should require at
> > least gcc-12

in https://github.com/ceph/ceph/pull/58384, i tried what i considered
the most conservative approach: bumping gcc from 11 to 12

this was successful in ceph-ci builds, but caused an unforeseen
interaction with the clang builds for pull request checks. the
presence of gcc-12 on these workers caused clang to choose the
standard library from gcc-12 where it had previously used 11's. this
affected the clang builds of all pull requests and all release
branches

the first symptom, tracked in https://tracker.ceph.com/issues/67233,
was due to the fact that gcc-12 was installed but not
libstdc++-12-dev. with help from #sepia, we went through and installed
this package on all of the ubuntu builders

while this fixed the immediate issue, crimson unit tests built with
this toolchain still failed with exceptions from libfmt tracked in
https://tracker.ceph.com/issues/66887. a libfmt upgrade was proposed
in https://github.com/ceph/ceph/pull/58960 to address this, but could
not be reasonably backported all the way to quincy

so the only way to restore 'make check' on all releases was to remove
all of the gcc-12-related packages from these workers and give up on
gcc upgrades for now. this cleanup should be complete soon (if not
already), thanks to help from Adam Kraitman. if you see further issues
here, please raise them in the #sepia slack channel

i apologize for the disruption, especially while the squid release
process is still ongoing. i'll wait until after the squid release
before trying to make any further progress here

after squid is out, i think we need to prioritize the upgrade of these
ubuntu 22.04 workers to 24.04 where we have access to gcc-13 (which
has been working for crimson builds) and newer clang. this is tracked
in https://tracker.ceph.com/issues/66914
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx




[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux