Project

General

Profile

Actions

Bug #59504

open

17.2.6: build fails with fmt 9.1.0

Added by Tomasz Kloczko 12 months ago. Updated 11 months ago.

Status:
Need More Info
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

fmt 9.1.0

cmake settings

-- Cache values
ALLOCATOR:STRING=
BABELTRACE_EXECUTABLE:FILEPATH=BABELTRACE_EXECUTABLE-NOTFOUND
CEPH_GRAFANA_DASHBOARDS_DIR:PATH=/etc/grafana/dashboards/ceph-dashboard
CEPH_MAN_DIR:STRING=share/man
CEPH_SYSTEMD_ENV_DIR:PATH=/etc/sysconfig
CEPH_TEST_TIMEOUT:STRING=3600
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr
CTAGS_EXECUTABLE:FILEPATH=/usr/bin/ctags
CTAG_EXCLUDES:BOOL=OFF
DASHBOARD_FRONTEND_LANGS:STRING=
DEBUG_GATHER:BOOL=OFF
DIAGNOSTICS_COLOR:STRING=auto
ENABLE_COVERAGE:BOOL=OFF
ENABLE_GIT_VERSION:BOOL=ON
ENABLE_SHARED:BOOL=ON
FUSE_LIBRARIES:FILEPATH=/usr/lib64/libfuse3.so
GMock_GMock_LIBRARY:FILEPATH=/usr/lib64/libgmock.so
GMock_INCLUDE_DIR:PATH=/usr/include
GMock_Main_LIBRARY:FILEPATH=/usr/lib64/libgmock_main.so
GPERF:FILEPATH=/usr/bin/gperf
GTest_DIR:PATH=/usr/lib64/cmake/GTest
ICU_INCLUDE_DIR:PATH=/usr/include
LIBXFS:FILEPATH=/usr/lib64/libhandle.so
LTTNG_GEN_TP:FILEPATH=/usr/bin/lttng-gen-tp
MAKE_EXECUTABLE:FILEPATH=/usr/bin/gmake
PG_DEBUG_REFS:BOOL=OFF
PROMTOOL_EXECUTABLE:FILEPATH=/usr/bin/promtool
RDMACM_INCLUDE_DIR:PATH=/usr/include
RT_LIBRARY:FILEPATH=/usr/lib64/librt.a
SPAWN_TEST_ADDRESS_SANITIZER:BOOL=ON
SPHINX_BUILD:FILEPATH=/usr/bin/sphinx-build
SQLite3_INCLUDE_DIR:PATH=/usr/include
SQLite3_LIBRARY:FILEPATH=/usr/lib64/libsqlite3.so
SYSTEMD_SYSTEM_UNIT_DIR:PATH=/usr/lib/systemd/system
Tcmalloc_INCLUDE_DIR:PATH=/usr/include
USE_SQLITE:BOOL=ON
VERBS_INCLUDE_DIR:PATH=/usr/include
WITH_ASAN:BOOL=OFF
WITH_ASAN_LEAK:BOOL=OFF
WITH_BABELTRACE:BOOL=ON
WITH_BLKIN:BOOL=OFF
WITH_BLUEFS:BOOL=OFF
WITH_BLUESTORE:BOOL=OFF
WITH_BROTLI:BOOL=OFF
WITH_CCACHE:BOOL=OFF
WITH_CEPHFS:BOOL=ON
WITH_CEPHFS_JAVA:BOOL=OFF
WITH_CEPHFS_SHELL:BOOL=ON
WITH_CEPHFS_TOP:BOOL=ON
WITH_DMCLOCK_TESTS:BOOL=OFF
WITH_DOKAN:BOOL=OFF
WITH_DPDK:BOOL=OFF
WITH_EC_ISA_PLUGIN:BOOL=TRUE
WITH_FIO:BOOL=OFF
WITH_FMT_HEADER_ONLY:BOOL=OFF
WITH_FUSE:BOOL=ON
WITH_GRAFANA:BOOL=ON
WITH_GSSAPI:BOOL=OFF
WITH_GTEST_PARALLEL:BOOL=OFF
WITH_JAEGER:BOOL=OFF
WITH_KRBD:BOOL=ON
WITH_KVS:BOOL=OFF
WITH_LIBCEPHFS:BOOL=ON
WITH_LIBCEPHSQLITE:BOOL=ON
WITH_LIBRADOSSTRIPER:BOOL=ON
WITH_LTTNG:BOOL=ON
WITH_LZ4:BOOL=ON
WITH_MANPAGE:BOOL=ON
WITH_MGR:BOOL=ON
WITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
WITH_MGR_ROOK_CLIENT:BOOL=ON
WITH_OCF:BOOL=ON
WITH_OPENLDAP:BOOL=ON
WITH_OSD_INSTRUMENT_FUNCTIONS:BOOL=OFF
WITH_PROFILER:BOOL=OFF
WITH_PYTHON3:STRING=3
WITH_QAT:BOOL=OFF
WITH_QATZIP:BOOL=OFF
WITH_RADOSGW:BOOL=ON
WITH_RADOSGW_AMQP_ENDPOINT:BOOL=ON
WITH_RADOSGW_BEAST_OPENSSL:BOOL=ON
WITH_RADOSGW_DBSTORE:BOOL=ON
WITH_RADOSGW_KAFKA_ENDPOINT:BOOL=ON
WITH_RADOSGW_LUA_PACKAGES:BOOL=ON
WITH_RADOSGW_SELECT_PARQUET:BOOL=ON
WITH_RBD:BOOL=ON
WITH_RBD_MIGRATION_FORMAT_QCOW_V1:BOOL=ON
WITH_RBD_RWL:BOOL=ON
WITH_RBD_SSD_CACHE:BOOL=ON
WITH_RDMA:BOOL=ON
WITH_REENTRANT_STRSIGNAL:BOOL=OFF
WITH_SEASTAR:BOOL=OFF
WITH_SELINUX:BOOL=OFF
WITH_SPDK:BOOL=OFF
WITH_STATIC_LIBSTDCXX:BOOL=OFF
WITH_SYSTEMD:BOOL=ON
WITH_SYSTEM_ARROW:BOOL=OFF
WITH_SYSTEM_BOOST:BOOL=ON
WITH_SYSTEM_GTEST:BOOL=ON
WITH_SYSTEM_NPM:BOOL=OFF
WITH_SYSTEM_PMDK:BOOL=OFF
WITH_SYSTEM_ROCKSDB:BOOL=ON
WITH_SYSTEM_UTF8PROC:BOOL=OFF
WITH_SYSTEM_ZSTD:BOOL=ON
WITH_TESTS:BOOL=ON
WITH_THREAD_SAFE_RES_QUERY:BOOL=OFF
WITH_TSAN:BOOL=OFF
WITH_UBSAN:BOOL=OFF
WITH_XFS:BOOL=ON
WITH_ZFS:BOOL=OFF
dmclock_TEST:BOOL=OFF
gtest_DIR:PATH=gtest_DIR-NOTFOUND
rabbitmq_INCLUDE_DIR:PATH=/usr/include
rabbitmq_LIBRARY:FILEPATH=/usr/lib64/librabbitmq.so
rdkafka_INCLUDE_DIR:PATH=/usr/include
rdkafka_LIBRARY:FILEPATH=/usr/lib64/librdkafka.so

and build fails with

[  2%] Building CXX object src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o
cd /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/src/common && /usr/bin/g++ -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT -DCEPH_INSTALL_DATADIR=\"/usr/share/ceph\" -DCEPH_INSTALL_FULL_PKGLIBDIR=\"/usr/lib64/ceph\" -DCMAKE_INSTALL_LIBDIR=\"/usr/lib64\" -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/src/include -I/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/include -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/xxHash -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/rapidjson/include -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -DNDEBUG -std=c++17 -fPIC   -U_FORTIFY_SOURCE -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -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 -fstack-protector-strong -fdiagnostics-color=auto -MD -MT src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o -MF CMakeFiles/common-common-objs.dir/Journald.cc.o.d -o CMakeFiles/common-common-objs.dir/Journald.cc.o -c /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/common/Journald.cc
In file included from /usr/include/fmt/format.h:48,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/common/Journald.cc:17:
/usr/include/fmt/core.h: In instantiation of ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_value(T&&) [with Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; T = const entity_name_t&]’:
/usr/include/fmt/core.h:1777:29:   required from ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = const entity_name_t&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]’
/usr/include/fmt/core.h:1901:77:   required from ‘constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {int&, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, entity_name_t, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
/usr/include/fmt/core.h:1918:31:   required from ‘constexpr fmt::v9::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<Args>::type>::type ...> fmt::v9::make_format_args(Args&& ...) [with Context = basic_format_context<appender, char>; Args = {int&, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}]’
/usr/include/fmt/core.h:3235:52:   required from ‘OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = std::back_insert_iterator<basic_memory_buffer<char> >; T = {int, long unsigned int, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, int, long unsigned int, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]’
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/common/Journald.cc:142:19:   required from here
/usr/include/fmt/core.h:1757:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
 1757 |       formattable,
      |       ^~~~~~~~~~~
/usr/include/fmt/core.h:1757:7: note: ‘formattable’ evaluates to false
make[2]: *** [src/common/CMakeFiles/common-common-objs.dir/build.make:1284: src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:4279: src/common/CMakeFiles/common-common-objs.dir/all] Error 2
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu'
make: *** [Makefile:149: all] Error 2
Actions #1

Updated by Tomasz Kloczko 12 months ago

I found that this issue can be fixed by add -DFMT_DEPRECATED_OSTREAM to CXXFLAGS.

So after run `CXXFLAGS=-DFMT_DEPRECATED_OSTREAM smake <params>` and strat compile I've hit another issue.

[ 16%] Building CXX object src/kv/CMakeFiles/kv.dir/KeyValueDB.cc.o
cd /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/src/kv && /usr/bin/g++ -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/src/include -I/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu/include -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/xxHash -isystem /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/rapidjson/include -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -DFMT_DEPRECATED_OSTREAM -DNDEBUG -std=c++17 -fPIC   -U_FORTIFY_SOURCE -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -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 -fstack-protector-strong -fdiagnostics-color=auto -MD -MT src/kv/CMakeFiles/kv.dir/KeyValueDB.cc.o -MF CMakeFiles/kv.dir/KeyValueDB.cc.o.d -o CMakeFiles/kv.dir/KeyValueDB.cc.o -c /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.cc
In file included from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/librados/ListObjectImpl.h:19,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/osd/osd_types.h:51,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/MemDB.h:22,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.cc:5:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/include/rados/librados.hpp:107:54: warning: ‘template<class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> struct std::iterator’ is deprecated [-Wdeprecated-declarations]
  107 |   class CEPH_RADOS_API NObjectIterator : public std::iterator <std::forward_iterator_tag, ListObject> {
      |                                                      ^~~~~~~~
In file included from /usr/include/c++/13/bits/stl_construct.h:61,
                 from /usr/include/c++/13/bits/stl_tempbuf.h:61,
                 from /usr/include/c++/13/memory:66,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/include/buffer.h:41,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.h:6,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.cc:4:
/usr/include/c++/13/bits/stl_iterator_base_types.h:127:34: note: declared here
  127 |     struct _GLIBCXX17_DEPRECATED iterator
      |                                  ^~~~~~~~
In file included from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:17,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:20,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/KeyValueDB.cc:6:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:40:34: error: ‘rocksdb::Cache::Handle’ has not been declared
   40 |                                  rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
      |                                  ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:40:67: error: ‘rocksdb::Cache::Priority’ has not been declared
   40 |                                  rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
      |                                                                   ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:41:27: error: invalid use of incomplete type ‘class rocksdb::Cache’
   41 |   virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) = 0;
      |                           ^~~~~~
In file included from /usr/include/rocksdb/table.h:25,
                 from /home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:18:
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘class rocksdb::Cache’
   24 | class Cache;  // defined in advanced_cache.h
      |       ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:42:20: error: ‘rocksdb::Cache::Handle’ has not been declared
   42 |   virtual bool Ref(rocksdb::Cache::Handle* handle) = 0;
      |                    ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:43:24: error: ‘rocksdb::Cache::Handle’ has not been declared
   43 |   virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) = 0;
      |                        ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:57:32: error: ‘rocksdb::Cache::Handle’ has not been declared
   57 |   virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const = 0;
      |                                ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:63:67: error: invalid use of incomplete type ‘class rocksdb::Cache’
   63 | class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache {
      |                                                                   ^~~~~~~~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘class rocksdb::Cache’
   24 | class Cache;  // defined in advanced_cache.h
      |       ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:71:34: error: ‘rocksdb::Cache::Handle’ has not been declared
   71 |                                  rocksdb::Cache::Handle** handle, Priority priority) override;
      |                                  ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:71:67: error: ‘Priority’ has not been declared
   71 |                                  rocksdb::Cache::Handle** handle, Priority priority) override;
      |                                                                   ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:72:27: error: invalid use of incomplete type ‘class rocksdb::Cache’
   72 |   virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
      |                           ^~~~~~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘class rocksdb::Cache’
   24 | class Cache;  // defined in advanced_cache.h
      |       ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:73:20: error: ‘rocksdb::Cache::Handle’ has not been declared
   73 |   virtual bool Ref(rocksdb::Cache::Handle* handle) override;
      |                    ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:74:24: error: ‘rocksdb::Cache::Handle’ has not been declared
   74 |   virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
      |                        ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:75:23: error: ‘Handle’ has not been declared
   75 |   virtual void* Value(Handle* handle) override = 0;
      |                       ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:83:27: error: ‘rocksdb::Cache::Handle’ has not been declared
   83 |   virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override;
      |                           ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:85:28: error: ‘Handle’ has not been declared
   85 |   virtual size_t GetCharge(Handle* handle) const = 0;
      |                            ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:87:32: error: ‘Handle’ has not been declared
   87 |   virtual DeleterFn GetDeleter(Handle* handle) const override;
      |                                ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:94:13: error: ‘ApplyToAllEntriesOptions’ does not name a type
   94 |       const ApplyToAllEntriesOptions& opts) override;
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:103:28: error: ‘Handle’ has not been declared
  103 |   virtual uint32_t GetHash(Handle* handle) const = 0;
      |                            ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:68:23: error: ‘virtual const char* rocksdb_cache::ShardedCache::Name() const’ marked ‘override’, but does not override
   68 |   virtual const char* Name() const override = 0;
      |                       ^~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:69:27: error: ‘virtual rocksdb::Status rocksdb_cache::ShardedCache::Insert(const rocksdb::Slice&, void*, size_t, rocksdb_cache::DeleterFn, int**, int)’ marked ‘override’, but does not override
   69 |   virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
      |                           ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:73:16: error: ‘virtual bool rocksdb_cache::ShardedCache::Ref(int*)’ marked ‘override’, but does not override
   73 |   virtual bool Ref(rocksdb::Cache::Handle* handle) override;
      |                ^~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:74:16: error: ‘virtual bool rocksdb_cache::ShardedCache::Release(int*, bool)’ marked ‘override’, but does not override
   74 |   virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
      |                ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:75:17: error: ‘virtual void* rocksdb_cache::ShardedCache::Value(int*)’ marked ‘override’, but does not override
   75 |   virtual void* Value(Handle* handle) override = 0;
      |                 ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:76:16: error: ‘virtual void rocksdb_cache::ShardedCache::Erase(const rocksdb::Slice&)’ marked ‘override’, but does not override
   76 |   virtual void Erase(const rocksdb::Slice& key) override;
      |                ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:77:20: error: ‘virtual uint64_t rocksdb_cache::ShardedCache::NewId()’ marked ‘override’, but does not override
   77 |   virtual uint64_t NewId() override;
      |                    ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:78:16: error: ‘virtual void rocksdb_cache::ShardedCache::SetCapacity(size_t)’ marked ‘override’, but does not override
   78 |   virtual void SetCapacity(size_t capacity) override;
      |                ^~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:79:16: error: ‘virtual void rocksdb_cache::ShardedCache::SetStrictCapacityLimit(bool)’ marked ‘override’, but does not override
   79 |   virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override;
      |                ^~~~~~~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:80:16: error: ‘virtual bool rocksdb_cache::ShardedCache::HasStrictCapacityLimit() const’ marked ‘override’, but does not override
   80 |   virtual bool HasStrictCapacityLimit() const override;
      |                ^~~~~~~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:81:18: error: ‘virtual size_t rocksdb_cache::ShardedCache::GetCapacity() const’ marked ‘override’, but does not override
   81 |   virtual size_t GetCapacity() const override;
      |                  ^~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:82:18: error: ‘virtual size_t rocksdb_cache::ShardedCache::GetUsage() const’ marked ‘override’, but does not override
   82 |   virtual size_t GetUsage() const override;
      |                  ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:83:18: error: ‘virtual size_t rocksdb_cache::ShardedCache::GetUsage(int*) const’ marked ‘override’, but does not override
   83 |   virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override;
      |                  ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:84:18: error: ‘virtual size_t rocksdb_cache::ShardedCache::GetPinnedUsage() const’ marked ‘override’, but does not override
   84 |   virtual size_t GetPinnedUsage() const override;
      |                  ^~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:87:21: error: ‘virtual void (* rocksdb_cache::ShardedCache::GetDeleter(int*) const)(const rocksdb::Slice&, void*)’ marked ‘override’, but does not override
   87 |   virtual DeleterFn GetDeleter(Handle* handle) const override;
      |                     ^~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:89:16: error: ‘virtual void rocksdb_cache::ShardedCache::DisownData()’ marked ‘override’, but does not override
   89 |   virtual void DisownData() override = 0;
      |                ^~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:91:16: error: ‘virtual void rocksdb_cache::ShardedCache::ApplyToAllEntries(const std::function<void(const rocksdb::Slice&, void*, long unsigned int, void (*)(const rocksdb::Slice&, void*))>&, const int&)’ marked ‘override’, but does not override
   91 |   virtual void ApplyToAllEntries(
      |                ^~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:99:16: error: ‘virtual void rocksdb_cache::ShardedCache::EraseUnRefEntries()’ marked ‘override’, but does not override
   99 |   virtual void EraseUnRefEntries() override;
      |                ^~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h:100:23: error: ‘virtual std::string rocksdb_cache::ShardedCache::GetPrintableOptions() const’ marked ‘override’, but does not override
  100 |   virtual std::string GetPrintableOptions() const override;
      |                       ^~~~~~~~~~~~~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:103:20: error: ‘rocksdb::Cache::Priority’ has not been declared
  103 |   void SetPriority(rocksdb::Cache::Priority priority) {
      |                    ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h: In member function ‘void rocksdb_cache::BinnedLRUHandle::SetPriority(int)’:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:104:37: error: ‘rocksdb::Cache::Priority’ has not been declared
  104 |     if (priority == rocksdb::Cache::Priority::HIGH) {
      |                                     ^~~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h: At global scope:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:195:25: error: ‘rocksdb::Cache::Handle’ has not been declared
  195 |                         rocksdb::Cache::Handle** handle,
      |                         ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:196:25: error: ‘rocksdb::Cache::Priority’ has not been declared
  196 |                         rocksdb::Cache::Priority priority) override;
      |                         ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:197:27: error: invalid use of incomplete type ‘class rocksdb::Cache’
  197 |   virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) override;
      |                           ^~~~~~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘class rocksdb::Cache’
   24 | class Cache;  // defined in advanced_cache.h
      |       ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:198:20: error: ‘rocksdb::Cache::Handle’ has not been declared
  198 |   virtual bool Ref(rocksdb::Cache::Handle* handle) override;
      |                    ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:199:24: error: ‘rocksdb::Cache::Handle’ has not been declared
  199 |   virtual bool Release(rocksdb::Cache::Handle* handle,
      |                        ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:221:32: error: ‘rocksdb::Cache::Handle’ has not been declared
  221 |   virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const override;
      |                                ^~~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:326:23: error: ‘Handle’ has not been declared
  326 |   virtual void* Value(Handle* handle) override;
      |                       ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:327:28: error: ‘Handle’ has not been declared
  327 |   virtual size_t GetCharge(Handle* handle) const override;
      |                            ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:328:28: error: ‘Handle’ has not been declared
  328 |   virtual uint32_t GetHash(Handle* handle) const override;
      |                            ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h:331:32: error: ‘Handle’ has not been declared
  331 |   virtual DeleterFn GetDeleter(Handle* handle) const override;
      |                                ^~~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h: In member function ‘virtual int64_t RocksDBStore::get_cache_usage() const’:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:487:53: error: invalid use of incomplete type ‘using std::__shared_ptr_access<rocksdb::Cache, __gnu_cxx::_S_atomic, false, false>::element_type = class rocksdb::Cache’ {aka ‘class rocksdb::Cache’}
  487 |     return static_cast<int64_t>(bbt_opts.block_cache->GetUsage());
      |                                                     ^~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘using std::__shared_ptr_access<rocksdb::Cache, __gnu_cxx::_S_atomic, false, false>::element_type = class rocksdb::Cache’ {aka ‘class rocksdb::Cache’}
   24 | class Cache;  // defined in advanced_cache.h
      |       ^~~~~
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h: In member function ‘virtual int64_t RocksDBStore::get_cache_usage(std::string) const’:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:493:57: error: invalid use of incomplete type ‘using std::__shared_ptr_access<rocksdb::Cache, __gnu_cxx::_S_atomic, false, false>::element_type = class rocksdb::Cache’ {aka ‘class rocksdb::Cache’}
  493 |       return static_cast<int64_t>(it->second.block_cache->GetUsage());
      |                                                         ^~
/usr/include/rocksdb/cache.h:24:7: note: forward declaration of ‘using std::__shared_ptr_access<rocksdb::Cache, __gnu_cxx::_S_atomic, false, false>::element_type = class rocksdb::Cache’ {aka ‘class rocksdb::Cache’}
   24 | class Cache;  // defined in advanced_cache.h
      |       ^~~~~
In file included from /usr/include/c++/13/memory:80:
/usr/include/c++/13/bits/shared_ptr.h: In instantiation of ‘std::shared_ptr<_Tp> std::dynamic_pointer_cast(const shared_ptr<_Tp>&) [with _Tp = PriorityCache::PriCache; _Up = rocksdb::Cache]’:
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/kv/RocksDBStore.h:506:62:   required from here
/usr/include/c++/13/bits/shared_ptr.h:721:23: error: cannot ‘dynamic_cast’ ‘(& __r)->std::shared_ptr<rocksdb::Cache>::<anonymous>.std::__shared_ptr<rocksdb::Cache, __gnu_cxx::_S_atomic>::get()’ (of type ‘using std::__shared_ptr<rocksdb::Cache, __gnu_cxx::_S_atomic>::element_type = std::remove_extent<rocksdb::Cache>::type*’ {aka ‘class rocksdb::Cache*’}) to type ‘using std::shared_ptr<PriorityCache::PriCache>::element_type = using std::__shared_ptr<PriorityCache::PriCache, __gnu_cxx::_S_atomic>::element_type = std::remove_extent<PriorityCache::PriCache>::type*’ {aka ‘struct PriorityCache::PriCache*’} (source is a pointer to incomplete type)
  721 |       if (auto* __p = dynamic_cast<typename _Sp::element_type*>(__r.get()))
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/kv/CMakeFiles/kv.dir/build.make:79: src/kv/CMakeFiles/kv.dir/KeyValueDB.cc.o] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:6828: src/kv/CMakeFiles/kv.dir/all] Error 2
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/x86_64-redhat-linux-gnu'
make: *** [Makefile:149: all] Error 2

I'm usimg rocksdb 8.0.0.

Actions #2

Updated by Adam Kupczyk 12 months ago

  • Project changed from bluestore to RADOS

Redirecting to general RADOS.

Actions #3

Updated by Radoslaw Zarzynski 12 months ago

  • Status changed from New to Need More Info

I recall there was a bunch of libfmt-related fixes in main. Perhaph we missed bacporting some of them. Could by any chance try to build main on your env?

Actions #4

Updated by Tomasz Kloczko 12 months ago

Radoslaw Zarzynski wrote:

I recall there was a bunch of libfmt-related fixes in main. Perhaph we missed bacporting some of them. Could by any chance try to build main on your env?

Just in case I'm using fmt 9.1.0.
I see in fmt +200 commits since last release. Are you talking about those commits?

Actions #5

Updated by Radoslaw Zarzynski 11 months ago

From the quincy's Journal.cc:142:

$ git show v17.2.6:src/common/Journald.cc
...
class LogEntryEncoder : public EntryEncoderBase {
 public:
  void encode(const LogEntry& le)
  {
    meta_buf.clear();
    fmt::format_to(std::back_inserter(meta_buf),
      R"(PRIORITY={:d}
TIMESTAMP={}
CEPH_NAME={}
CEPH_RANK={}
CEPH_SEQ={}
CEPH_CHANNEL={}
MESSAGE
)",
      clog_type_to_syslog_level(le.prio),
      le.stamp.to_nsec(),
      le.name.to_str(),
      le.rank,
      le.seq,
      le.channel);

The entity_name_t there is le.name but in we call to_str() on it. Weird.

The error is:

/usr/include/fmt/core.h:1777:29:   required from ‘constexpr fmt::v9::detail::value<Context> fmt::v9::detail::make_arg(T&&) [with bool IS_PACKED = true; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; type <anonymous> = fmt::v9::detail::type::custom_type; T = const entity_name_t&; typename std::enable_if<IS_PACKED, int>::type <anonymous> = 0]’
/usr/include/fmt/core.h:1901:77:   required from ‘constexpr fmt::v9::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {int&, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; Context = fmt::v9::basic_format_context<fmt::v9::appender, char>; Args = {int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, entity_name_t, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’
/usr/include/fmt/core.h:1918:31:   required from ‘constexpr fmt::v9::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<Args>::type>::type ...> fmt::v9::make_format_args(Args&& ...) [with Context = basic_format_context<appender, char>; Args = {int&, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}]’
/usr/include/fmt/core.h:3235:52:   required from ‘OutputIt fmt::v9::format_to(OutputIt, format_string<T ...>, T&& ...) [with OutputIt = std::back_insert_iterator<basic_memory_buffer<char> >; T = {int, long unsigned int, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; typename std::enable_if<detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> = 0; format_string<T ...> = basic_format_string<char, int, long unsigned int, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const entity_name_t&, const long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>]’
/home/tkloczko/rpmbuild/BUILD/ceph-17.2.6/src/common/Journald.cc:142:19:   required from here

Anyway, looks the following commit is missed:

commit 6e223a6802152fc689ecdbf38fb4a410123844c7
Author: Kefu Chai <kchai@redhat.com>
Date:   Sat Aug 27 10:27:01 2022 +0800

    common/Journald: include msg/msg_fmt.h

    so we can use the formatter defined for `entity_name_t`. in fmtlib v9,
    it is required to define a specialization for the formatted type even
    the type has an override of operator<<(). now that we already have a
    formatter for `entity_name_t`, let's just use it.

    this change should address the FTBFS when building with fmtlib v9.

    Signed-off-by: Kefu Chai <tchaikov@gmail.com>

Would you mind to cherry-pick this and give the build a try?

Actions

Also available in: Atom PDF