Bug 1915803

Summary: ceph fails to build with ???:0
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: cephAssignee: Kaleb KEITHLEY <kkeithle>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: adeza, branto, danmick, david, fedora, i, josef, kkeithle, loic, mhroncok, ramkrsna, steve, thrnciar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-01-14 12:55:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1868278, 1890881    

Description Miro Hrončok 2021-01-13 13:04:15 UTC
ceph fails to build with Python 3.10.0a4.

[ 41%] Building CXX object src/librbd/CMakeFiles/rbd_internal.dir/internal.cc.o
cd /builddir/build/BUILD/ceph-15.2.8/build/x86_64-redhat-linux-gnu/src/librbd && /usr/bin/g++ -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/builddir/build/BUILD/ceph-15.2.8/build/x86_64-redhat-linux-gnu/src/include -I/builddir/build/BUILD/ceph-15.2.8/src -isystem /builddir/build/BUILD/ceph-15.2.8/build/x86_64-redhat-linux-gnu/include -isystem /builddir/build/BUILD/ceph-15.2.8/src/xxHash -isystem /builddir/build/BUILD/ceph-15.2.8/src/rapidjson/include -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -rdynamic -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wpessimizing-move -Wredundant-move -Wstrict-null-sentinel -Woverloaded-virtual -fno-new-ttp-matching -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -O2 -g -DNDEBUG -fPIC -std=c++17 -o CMakeFiles/rbd_internal.dir/internal.cc.o -c /builddir/build/BUILD/ceph-15.2.8/src/librbd/internal.cc
'
*** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
Event                            | Plugins
PLUGIN_FINISH_UNIT               | annobin: Generate final annotations
PLUGIN_START_UNIT                | annobin: Generate global annotations
PLUGIN_ALL_PASSES_START          | annobin: Generate per-function annotations
PLUGIN_ALL_PASSES_END            | annobin: Register per-function end symbols
during GIMPLE pass: uninit
In function 'std::string rgw::lc::s3_expiration_header(DoutPrefixProvider*, const rgw_obj_key&, const RGWObjTags&, const real_time&, const std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>&)':
Segmentation fault
 2123 | std::string s3_expiration_header(
      |             ^~~~~~~~~~~~~~~~~~~~
0x15ff5c9 diagnostic_impl(rich_location*, diagnostic_metadata const*, int, char const*, __va_list_tag (*) [1], diagnostic_t)
	???:0
0xfc93b7 internal_error(char const*, ...)
	???:0
0x937254 crash_signal(int)
	???:0
0x71efe9 print_mem_ref(c_pretty_printer*, tree_node*)
	???:0
0x658dec dump_expr(cxx_pretty_printer*, tree_node*, int) [clone .constprop.0] [clone .cold]
	???:0
0x658dec dump_expr(cxx_pretty_printer*, tree_node*, int) [clone .constprop.0] [clone .cold]
	???:0
0x658ac2 expr_to_string(tree_node*)
	???:0
0x6585c2 cp_printer(pretty_printer*, text_info*, char const*, int, bool, bool, bool, bool*, char const**) [clone .cold]
	???:0
0x1601da0 pp_format(pretty_printer*, text_info*)
	???:0
0x1401e43 diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*)
	???:0
0x14022cc warning_at(unsigned int, int, char const*, ...)
	???:0
0x12bf475 warn_uninit(opt_code, tree_node*, tree_node*, tree_node*, char const*, void*, unsigned int)
	???:0
0x9ec123 (anonymous namespace)::pass_late_warn_uninitialized::execute(function*) [clone .cold]
	???:0
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
In file included from /builddir/build/BUILD/ceph-15.2.8/src/include/encoding.h:41,
                 from /builddir/build/BUILD/ceph-15.2.8/src/include/uuid.h:9,
                 from /builddir/build/BUILD/ceph-15.2.8/src/include/types.h:21,
                 from /builddir/build/BUILD/ceph-15.2.8/src/librbd/internal.cc:8:
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::bound_encode(const container&, size_t&, uint64_t) [with U = std::pair<long unsigned int, std::__cxx11::basic_string<char> >; C = std::map; Details = _denc::maplike_details<std::map<long unsigned int, std::__cxx11::basic_string<char> > >; Ts = {long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<long unsigned int>, std::allocator<std::pair<const long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >}; _denc::container_base<C, Details, Ts>::container = std::map<long unsigned int, std::__cxx11::basic_string<char> >; size_t = long unsigned int; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1554:23:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<long unsigned int, std::__cxx11::basic_string<char> >; traits = denc_traits<std::map<long unsigned int, std::__cxx11::basic_string<char> >, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/CompatSet.h:85:23:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:963:23: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<long unsigned int, std::__cxx11::basic_string<char> >&'} binds to a temporary constructed from type 'const std::pair<const long unsigned int, std::__cxx11::basic_string<char> >' [-Wrange-loop-construct]
  963 |         for (const T& e : s) {
      |                       ^
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:963:23: note: use non-reference type 'const T' {aka 'const std::pair<long unsigned int, std::__cxx11::basic_string<char> >'} to make the copy explicit or 'const std::pair<const long unsigned int, std::__cxx11::basic_string<char> >&' to prevent copying
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::bound_encode(const container&, size_t&, uint64_t) [with U = std::pair<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>; C = std::map; Details = _denc::maplike_details<std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list> >; Ts = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list> >}; _denc::container_base<C, Details, Ts>::container = std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>; size_t = long unsigned int; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1554:23:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>; traits = denc_traits<std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/auth/Auth.h:44:20:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:963:23: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>&'} binds to a temporary constructed from type 'const std::pair<const std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>' [-Wrange-loop-construct]
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:963:23: note: use non-reference type 'const T' {aka 'const std::pair<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>'} to make the copy explicit or 'const std::pair<const std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>&' to prevent copying
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::bound_encode(const container&, size_t&, uint64_t) [with U = std::pair<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >; C = std::map; Details = _denc::maplike_details<std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> > >; Ts = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::optional<ceph::buffer::v15_2_0::list>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::optional<ceph::buffer::v15_2_0::list> > >}; _denc::container_base<C, Details, Ts>::container = std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >; size_t = long unsigned int; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1554:23:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >; traits = denc_traits<std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/osd/osd_types.h:3809:25:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:963:23: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >&'} binds to a temporary constructed from type 'const std::pair<const std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >' [-Wrange-loop-construct]
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:963:23: note: use non-reference type 'const T' {aka 'const std::pair<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >'} to make the copy explicit or 'const std::pair<const std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >&' to prevent copying
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::bound_encode(const container&, size_t&, uint64_t) [with U = std::pair<long int, std::map<unsigned int, unsigned int> >; C = std::map; Details = _denc::maplike_details<std::map<long int, std::map<unsigned int, unsigned int> > >; Ts = {long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > >, std::less<long int>, std::allocator<std::pair<const long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > > > >}; _denc::container_base<C, Details, Ts>::container = std::map<long int, std::map<unsigned int, unsigned int> >; size_t = long unsigned int; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1554:23:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<long int, std::map<unsigned int, unsigned int> >; traits = denc_traits<std::map<long int, std::map<unsigned int, unsigned int> >, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/osd/osd_types.h:6172:23:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:963:23: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<long int, std::map<unsigned int, unsigned int> >&'} binds to a temporary constructed from type 'const std::pair<const long int, std::map<unsigned int, unsigned int> >' [-Wrange-loop-construct]
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:963:23: note: use non-reference type 'const T' {aka 'const std::pair<long int, std::map<unsigned int, unsigned int> >'} to make the copy explicit or 'const std::pair<const long int, std::map<unsigned int, unsigned int> >&' to prevent copying
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::encode_nohead(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with C = std::map; Details = _denc::maplike_details<std::map<long unsigned int, std::__cxx11::basic_string<char> > >; Ts = {long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<long unsigned int>, std::allocator<std::pair<const long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >}; _denc::container_base<C, Details, Ts>::container = std::map<long unsigned int, std::__cxx11::basic_string<char> >; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:981:22:   required from 'static void _denc::container_base<C, Details, Ts>::encode(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with U = std::pair<long unsigned int, std::__cxx11::basic_string<char> >; C = std::map; Details = _denc::maplike_details<std::map<long unsigned int, std::__cxx11::basic_string<char> > >; Ts = {long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<long unsigned int>, std::allocator<std::pair<const long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >}; _denc::container_base<C, Details, Ts>::container = std::map<long unsigned int, std::__cxx11::basic_string<char> >; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1556:17:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<long unsigned int, std::__cxx11::basic_string<char> >; traits = denc_traits<std::map<long unsigned int, std::__cxx11::basic_string<char> >, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/CompatSet.h:85:23:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<long unsigned int, std::__cxx11::basic_string<char> >&'} binds to a temporary constructed from type 'const std::pair<const long unsigned int, std::__cxx11::basic_string<char> >' [-Wrange-loop-construct]
 1001 |       for (const T& e : s) {
      |                     ^
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: note: use non-reference type 'const T' {aka 'const std::pair<long unsigned int, std::__cxx11::basic_string<char> >'} to make the copy explicit or 'const std::pair<const long unsigned int, std::__cxx11::basic_string<char> >&' to prevent copying
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::encode_nohead(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with C = std::map; Details = _denc::maplike_details<std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list> >; Ts = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list> >}; _denc::container_base<C, Details, Ts>::container = std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:981:22:   required from 'static void _denc::container_base<C, Details, Ts>::encode(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with U = std::pair<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>; C = std::map; Details = _denc::maplike_details<std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list> >; Ts = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list> >}; _denc::container_base<C, Details, Ts>::container = std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1556:17:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>; traits = denc_traits<std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/auth/Auth.h:44:20:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>&'} binds to a temporary constructed from type 'const std::pair<const std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>' [-Wrange-loop-construct]
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: note: use non-reference type 'const T' {aka 'const std::pair<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>'} to make the copy explicit or 'const std::pair<const std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>&' to prevent copying
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::encode_nohead(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with C = std::map; Details = _denc::maplike_details<std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> > >; Ts = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::optional<ceph::buffer::v15_2_0::list>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::optional<ceph::buffer::v15_2_0::list> > >}; _denc::container_base<C, Details, Ts>::container = std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:981:22:   required from 'static void _denc::container_base<C, Details, Ts>::encode(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with U = std::pair<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >; C = std::map; Details = _denc::maplike_details<std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> > >; Ts = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::optional<ceph::buffer::v15_2_0::list>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::optional<ceph::buffer::v15_2_0::list> > >}; _denc::container_base<C, Details, Ts>::container = std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1556:17:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >; traits = denc_traits<std::map<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/osd/osd_types.h:3809:25:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >&'} binds to a temporary constructed from type 'const std::pair<const std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >' [-Wrange-loop-construct]
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: note: use non-reference type 'const T' {aka 'const std::pair<std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >'} to make the copy explicit or 'const std::pair<const std::__cxx11::basic_string<char>, std::optional<ceph::buffer::v15_2_0::list> >&' to prevent copying
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::encode_nohead(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with C = std::map; Details = _denc::maplike_details<std::map<long int, std::map<unsigned int, unsigned int> > >; Ts = {long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > >, std::less<long int>, std::allocator<std::pair<const long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > > > >}; _denc::container_base<C, Details, Ts>::container = std::map<long int, std::map<unsigned int, unsigned int> >; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:981:22:   required from 'static void _denc::container_base<C, Details, Ts>::encode(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with U = std::pair<long int, std::map<unsigned int, unsigned int> >; C = std::map; Details = _denc::maplike_details<std::map<long int, std::map<unsigned int, unsigned int> > >; Ts = {long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > >, std::less<long int>, std::allocator<std::pair<const long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > > > >}; _denc::container_base<C, Details, Ts>::container = std::map<long int, std::map<unsigned int, unsigned int> >; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1556:17:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<long int, std::map<unsigned int, unsigned int> >; traits = denc_traits<std::map<long int, std::map<unsigned int, unsigned int> >, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/osd/osd_types.h:6172:23:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<long int, std::map<unsigned int, unsigned int> >&'} binds to a temporary constructed from type 'const std::pair<const long int, std::map<unsigned int, unsigned int> >' [-Wrange-loop-construct]
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: note: use non-reference type 'const T' {aka 'const std::pair<long int, std::map<unsigned int, unsigned int> >'} to make the copy explicit or 'const std::pair<const long int, std::map<unsigned int, unsigned int> >&' to prevent copying
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h: In instantiation of 'static void _denc::container_base<C, Details, Ts>::encode_nohead(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with C = std::map; Details = _denc::maplike_details<std::map<unsigned int, unsigned int> >; Ts = {unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> >}; _denc::container_base<C, Details, Ts>::container = std::map<unsigned int, unsigned int>; uint64_t = long unsigned int]':
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:981:22:   required from 'static void _denc::container_base<C, Details, Ts>::encode(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with U = std::pair<unsigned int, unsigned int>; C = std::map; Details = _denc::maplike_details<std::map<unsigned int, unsigned int> >; Ts = {unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> >}; _denc::container_base<C, Details, Ts>::container = std::map<unsigned int, unsigned int>; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:667:19:   required from 'std::enable_if_t<(traits::supported && (! is_const_iterator_v<It>)), void> denc(const T&, It&, uint64_t) [with T = std::map<unsigned int, unsigned int>; It = ceph::buffer::v15_2_0::list::contiguous_appender; traits = denc_traits<std::map<unsigned int, unsigned int>, void>; std::enable_if_t<(traits::supported && (! is_const_iterator_v<It>)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:906:11:   required from 'static void denc_traits<std::pair<_T1, _T2>, typename std::enable_if<(denc_supported<A> && denc_supported<B>), void>::type>::encode(const std::pair<_T1, _T2>&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with A = long int; B = std::map<unsigned int, unsigned int>; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:667:19:   required from 'std::enable_if_t<(traits::supported && (! is_const_iterator_v<It>)), void> denc(const T&, It&, uint64_t) [with T = std::pair<long int, std::map<unsigned int, unsigned int> >; It = ceph::buffer::v15_2_0::list::contiguous_appender; traits = denc_traits<std::pair<long int, std::map<unsigned int, unsigned int> >, void>; std::enable_if_t<(traits::supported && (! is_const_iterator_v<It>)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1005:15:   required from 'static void _denc::container_base<C, Details, Ts>::encode_nohead(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with C = std::map; Details = _denc::maplike_details<std::map<long int, std::map<unsigned int, unsigned int> > >; Ts = {long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > >, std::less<long int>, std::allocator<std::pair<const long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > > > >}; _denc::container_base<C, Details, Ts>::container = std::map<long int, std::map<unsigned int, unsigned int> >; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:981:22:   required from 'static void _denc::container_base<C, Details, Ts>::encode(const container&, ceph::buffer::v15_2_0::list::contiguous_appender&, uint64_t) [with U = std::pair<long int, std::map<unsigned int, unsigned int> >; C = std::map; Details = _denc::maplike_details<std::map<long int, std::map<unsigned int, unsigned int> > >; Ts = {long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > >, std::less<long int>, std::allocator<std::pair<const long int, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> > > > >}; _denc::container_base<C, Details, Ts>::container = std::map<long int, std::map<unsigned int, unsigned int> >; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1556:17:   required from 'std::enable_if_t<(traits::supported && (! traits::featured)), void> ceph::encode(const T&, ceph::buffer::v15_2_0::list&, uint64_t) [with T = std::map<long int, std::map<unsigned int, unsigned int> >; traits = denc_traits<std::map<long int, std::map<unsigned int, unsigned int> >, void>; std::enable_if_t<(traits::supported && (! traits::featured)), void> = void; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/osd/osd_types.h:6172:23:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: warning: loop variable 'e' of type 'const T&' {aka 'const std::pair<unsigned int, unsigned int>&'} binds to a temporary constructed from type 'const std::pair<const unsigned int, unsigned int>' [-Wrange-loop-construct]
/builddir/build/BUILD/ceph-15.2.8/src/include/denc.h:1001:21: note: use non-reference type 'const T' {aka 'const std::pair<unsigned int, unsigned int>'} to make the copy explicit or 'const std::pair<const unsigned int, unsigned int>&' to prevent copying
[ 41%] Building CXX object src/librbd/CMakeFiles/rbd_internal.dir/Journal.cc.o
cd /builddir/build/BUILD/ceph-15.2.8/build/x86_64-redhat-linux-gnu/src/librbd && /usr/bin/g++ -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/builddir/build/BUILD/ceph-15.2.8/build/x86_64-redhat-linux-gnu/src/include -I/builddir/build/BUILD/ceph-15.2.8/src -isystem /builddir/build/BUILD/ceph-15.2.8/build/x86_64-redhat-linux-gnu/include -isystem /builddir/build/BUILD/ceph-15.2.8/src/xxHash -isystem /builddir/build/BUILD/ceph-15.2.8/src/rapidjson/include -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -rdynamic -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wpessimizing-move -Wredundant-move -Wstrict-null-sentinel -Woverloaded-virtual -fno-new-ttp-matching -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fdiagnostics-color=auto -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -O2 -g -DNDEBUG -fPIC -std=c++17 -o CMakeFiles/rbd_internal.dir/Journal.cc.o -c /builddir/build/BUILD/ceph-15.2.8/src/librbd/Journal.cc
In file included from /builddir/build/BUILD/ceph-15.2.8/src/common/dout.h:21,
                 from /builddir/build/BUILD/ceph-15.2.8/src/include/Context.h:19,
                 from /builddir/build/BUILD/ceph-15.2.8/src/librbd/Journal.h:8,
                 from /builddir/build/BUILD/ceph-15.2.8/src/librbd/Journal.cc:4:
/builddir/build/BUILD/ceph-15.2.8/src/include/interval_set.h: In instantiation of 'void interval_set<T, Map>::erase(T, T, std::function<bool(T, T)>) [with T = long unsigned int; Map = std::map<long unsigned int, long unsigned int>]':
/builddir/build/BUILD/ceph-15.2.8/src/include/interval_set.h:554:12:   required from 'void interval_set<T, Map>::subtract(const interval_set<T, Map>&) [with T = long unsigned int; Map = std::map<long unsigned int, long unsigned int>]'
/builddir/build/BUILD/ceph-15.2.8/src/librbd/Journal.cc:872:33:   required from 'void librbd::Journal<ImageCtxT>::commit_io_event_extent(uint64_t, uint64_t, uint64_t, int) [with ImageCtxT = librbd::ImageCtx; uint64_t = long unsigned int]'
/builddir/build/BUILD/ceph-15.2.8/src/librbd/Journal.cc:1795:24:   required from here
/builddir/build/BUILD/ceph-15.2.8/src/include/interval_set.h:525:23: warning: comparison of unsigned expression in '>= 0' is always true [-Wtype-limits]
  525 |     ceph_assert(_size >= 0);
/builddir/build/BUILD/ceph-15.2.8/src/include/ceph_assert.h:106:6: note: in definition of macro 'ceph_assert'
  106 |    ((expr) \
      |      ^~~~

According to Koschei, this is not relevant to Python 3.10:

https://koschei.fedoraproject.org/package/ceph



For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.10/fedora-rawhide-x86_64/01878512-ceph/

For all our attempts to build ceph with Python 3.10, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.10/package/ceph/

Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.10:
https://copr.fedorainfracloud.org/coprs/g/python/python3.10/

Let us know here if you have any questions.

Python 3.10 will be included in Fedora 35. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.10.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon.
We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 2 Miro Hrončok 2021-01-13 13:07:49 UTC
See also bz1915437 and bz1915400. Possible duplicate.

Comment 3 Kaleb KEITHLEY 2021-01-14 12:51:26 UTC
(In reply to Miro Hrončok from comment #1)
> I suspect:
> 
> https://koschei.fedoraproject.org/affected-by/gcc-c++?epoch1=0&version1=11.0.
> 0&release1=0.11.fc34&epoch2=0&version2=11.0.0&release2=0.12.
> fc34&collection=f34
> 
> But I'm not sure :(

Note: building also breaks with python3-9, so it's not related to python-3.10.

When I ran the build by hand I got a gcc internal error that doesn't appear in the koji build.log files of any of the scratch builds that I did.

In function ‘std::string rgw::lc::s3_expiration_header(DoutPrefixProvider*, const rgw_obj_key&, const RGWObjTags&, const real_time&, const std::map<std::__cxx11::basic_string<char>, ceph::buffer::v15_2_0::list>&)’:
Segmentation fault
 2123 | std::string s3_expiration_header(
      |             ^~~~~~~~~~~~~~~~~~~~
0x15ff5c9 diagnostic_impl(rich_location*, diagnostic_metadata const*, int, char const*, __va_list_tag (*) [1], diagnostic_t)
	???:0
0xfc93b7 internal_error(char const*, ...)
	???:0
0x937254 crash_signal(int)
	???:0


A segv but no core file according to coredumpctl. Why not, my ulimit -c is unlimited.

I'm not seeing how this is a ceph bug. ceph builds with gcc-11.0.0-0.11, but not gcc-11.0.0-0.12? I'd say that's almost certainly a bug in -0.12 and I suspect it's a dupe of the bzs in https://bugzilla.redhat.com/show_bug.cgi?id=1915803#c2.

I see there's a new build (-0.13). Will try a koji scratch build with that. Otherwise I'll give this a day and then close it as a dupe.

Comment 4 Kaleb KEITHLEY 2021-01-14 12:55:50 UTC
And I see that ceph builds are back to normal after -0.13 landed. I'm closing this as a dupe.

*** This bug has been marked as a duplicate of bug 1915400 ***