New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CORE-2708 - chore: fix open source CI build #18390
Conversation
The oss build is still failing, but now on Locally the fedora build works now with the additional fixes I've pushed, but on ubuntu there are some seastar-related errors. @graphcareful could you take a look at the errors? |
src/v/serde/serde_is_enum.h
Outdated
@@ -17,7 +17,7 @@ using serde_enum_serialized_t = int32_t; | |||
|
|||
template<typename T> | |||
inline constexpr bool serde_is_enum_v = | |||
#if __has_cpp_attribute(__cpp_lib_is_scoped_enum) | |||
#if __cpp_lib_is_scoped_enum >= 202011L |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What changed that made this break?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've reverted this change now. It was needed because seastar was overwriting the c++ version used to 23 instead of 20, and it looks like this fails in c++ 23.
If your referring to the unit test failure this is a known issue and is being looked into here: #13275 (comment) |
f47b209
to
82dcbb4
Compare
0697ee4
to
0d9ae7a
Compare
ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/48939#018f6364-0f3d-4556-983c-16b5c576c63c |
This is needed to fix the failing open source build. Until we upgrade to newer OS versions of ubuntu and fedora, we need to stick to v1.21 because the version of golang installed by install-dependencies.sh is 1.21 on both fedora:38 and ubuntu:mantic.
The type changed from bytes_view to std::vector<std::byte> during the seastar upgrade.
Seastar uses a cmake cache variable to configure the c++ version it uses. The problem with this for the redpanda build is that the cache variable overwrites the normal variable set with the simple set() call. This leads to us building redpanda with c++23 instead of c++20 as intended, since seastar started setting the c++ version to c++23. This is only a problem with the open source build because here we use FetchContent to include dependencies directly in the cmake build, whereas the internal build uses ExternalProject which allows us to explicitly set the cache variable `CMAKE_CXX_STANDARD` for our dependencies. Note that we can't yet change to compiling with C++23 because of a bug in the llvm-project. The combination of libstdc++ >= 13, c++ >= 23 and clang 16 has a bug that caused compilation issues on ubuntu (see llvm-project issue 61415). This does not cause any compilation errors on fedora because fedora has a patch version higher gcc and libstdc++ installed which contains a fix for the above bug.
0d9ae7a
to
370822a
Compare
I got to a passing build with this: https://github.com/redpanda-data/redpanda/actions/runs/9061716793/job/24894083129 |
@@ -292,7 +292,7 @@ void tls_certificate_probe::loaded( | |||
return; | |||
} | |||
|
|||
auto to_tls_serial = [](bytes_view b) { | |||
auto to_tls_serial = [](const auto& b) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit, perhaps this could be std::span<std::byte>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tangential (sorry):
- Did my recent seastar change break this?
- Would it make sense to expedite this instead? (stalled last week on CI troubles, but I can push)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Yes I believe so
- I am happy with either approach
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd lean towards pushing on the vtools/seastar bump since the generic lambda here is a pure stopgap. But I'll rejigger it to the "correct" type regardless.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
go for it
The open source build is currently failing because of various errors.
The open source build is that it tries to use golang version 1.21 to build kreq-gen because that is what is available on
ubuntu:mantic
andfedora:38
. Unfortunately, we can't upgrade to the newer OS yet because that would upgrade clang to clang-18 as well, which we are not ready for. So for the meantime, I have reverted to using go v1.21 for kreq-gen.Fixes https://redpandadata.atlassian.net/browse/CORE-2708
Backports Required
Release Notes