]> git.pld-linux.org Git - packages/ceph.git/blame - ceph-libfmt.patch
- updated to 17.2.5
[packages/ceph.git] / ceph-libfmt.patch
CommitLineData
c5b31b08
JB
1--- ceph-17.2.3/src/include/types_fmt.h.orig 2022-07-28 23:52:12.000000000 +0200
2+++ ceph-17.2.3/src/include/types_fmt.h 2022-09-07 18:17:23.995310743 +0200
3@@ -6,6 +6,8 @@
4 */
5
6 #include <fmt/format.h>
7+#include <fmt/ostream.h>
8+#include <boost/intrusive_ptr.hpp>
9
10 #include <string_view>
11
12@@ -26,3 +28,21 @@ struct fmt::formatter<std::map<A, B, Com
13 return fmt::format_to(ctx.out(), "}}");
14 }
15 };
16+
17+template <class A, class B>
18+struct fmt::formatter<std::pair<A, B>> : ostream_formatter {};
19+
20+template <class A, class Alloc>
21+struct fmt::formatter<std::vector<A, Alloc>> : ostream_formatter {};
22+
23+template <typename T>
24+struct fmt::formatter<std::optional<T>> : ostream_formatter {};
25+
26+template <class A, class Comp, class Alloc>
27+struct fmt::formatter<std::set<A, Comp, Alloc>> : ostream_formatter {};
28+
29+template <uint8_t S>
30+struct fmt::formatter<sha_digest_t<S>> : ostream_formatter {};
31+
32+template <typename T>
33+struct fmt::formatter<boost::intrusive_ptr<T>> : ostream_formatter {};
34--- ceph-17.2.3/src/common/Journald.cc.orig 2022-09-04 18:08:09.890385180 +0200
35+++ ceph-17.2.3/src/common/Journald.cc 2022-09-07 17:20:33.128007133 +0200
36@@ -21,6 +21,7 @@
37 #include "common/LogEntry.h"
38 #include "log/Entry.h"
39 #include "log/SubsystemMap.h"
40+#include "msg/msg_fmt.h"
41
42
43 namespace ceph::logging {
44--- ceph-17.2.3/src/common/hobject_fmt.h.orig 2022-07-28 23:52:12.000000000 +0200
45+++ ceph-17.2.3/src/common/hobject_fmt.h 2022-09-07 18:23:08.743232468 +0200
46@@ -50,3 +50,6 @@ template <> struct fmt::formatter<hobjec
47 ho.get_bitwise_key_u32(), v, ho.snap);
48 }
49 };
50+
51+template <>
52+struct fmt::formatter<ghobject_t> : ostream_formatter {};
53--- ceph-17.2.3/src/crimson/admin/admin_socket.cc.orig 2022-07-28 23:52:12.000000000 +0200
54+++ ceph-17.2.3/src/crimson/admin/admin_socket.cc 2022-09-08 17:39:11.969465247 +0200
55@@ -19,6 +19,7 @@
56 #include "messages/MCommandReply.h"
57 #include "crimson/common/log.h"
58 #include "crimson/net/Socket.h"
59+#include "include/types_fmt.h"
60
61 using namespace crimson::common;
62
63--- ceph-17.2.3/src/crimson/admin/osd_admin.cc.orig 2022-09-04 21:48:44.290691903 +0200
64+++ ceph-17.2.3/src/crimson/admin/osd_admin.cc 2022-09-08 21:32:52.391069817 +0200
65@@ -12,6 +12,7 @@
66 #include <seastar/core/scollectd_api.hh>
67
68 #include "common/config.h"
69+#include "common/hobject_fmt.h"
70 #include "crimson/admin/admin_socket.h"
71 #include "crimson/common/log.h"
72 #include "crimson/osd/exceptions.h"
c5b31b08
JB
73--- ceph-17.2.3/src/crimson/admin/pg_commands.cc.orig 2022-07-28 23:52:12.000000000 +0200
74+++ ceph-17.2.3/src/crimson/admin/pg_commands.cc 2022-09-14 20:59:47.803920736 +0200
75@@ -13,6 +13,7 @@
76 #include "crimson/admin/admin_socket.h"
77 #include "crimson/osd/osd.h"
78 #include "crimson/osd/pg.h"
79+#include "osd/osd_types_fmt.h"
80
81
82 using crimson::osd::OSD;
83--- ceph-17.2.3/src/crimson/common/gated.h.orig 2022-07-28 23:52:12.000000000 +0200
84+++ ceph-17.2.3/src/crimson/common/gated.h 2022-09-05 17:55:05.174809923 +0200
85@@ -28,11 +28,11 @@ class Gated {
86 ).handle_exception([what, &who] (std::exception_ptr eptr) {
87 if (*eptr.__cxa_exception_type() == typeid(system_shutdown_exception)) {
88 gated_logger().debug(
89- "{}, {} skipped, system shutdown", who, what);
90+ "{}, {} skipped, system shutdown", fmt::streamed(who), what);
91 return;
92 }
93 gated_logger().error(
94- "{} dispatch() {} caught exception: {}", who, what, eptr);
95+ "{} dispatch() {} caught exception: {}", fmt::streamed(who), what, eptr);
96 assert(*eptr.__cxa_exception_type()
97 == typeid(seastar::gate_closed_exception));
98 });
99--- ceph-17.2.3/src/crimson/common/logclient.cc.orig 2022-07-28 23:52:12.000000000 +0200
100+++ ceph-17.2.3/src/crimson/common/logclient.cc 2022-09-08 16:51:12.587841466 +0200
101@@ -1,5 +1,6 @@
102 #include "crimson/common/logclient.h"
103 #include "include/str_map.h"
104+#include "include/types_fmt.h"
105 #include "messages/MLog.h"
106 #include "messages/MLogAck.h"
107 #include "messages/MMonGetVersion.h"
108@@ -286,7 +287,7 @@ MessageURef LogClient::_get_mon_log_mess
109 ceph_assert(log_iter != log_queue.end());
110 out_log_queue.push_back(*log_iter);
111 last_log_sent = log_iter->seq;
112- logger().debug(" will send {}", *log_iter);
113+ logger().debug(" will send {}", fmt::streamed(*log_iter));
114 ++log_iter;
115 }
116
117@@ -332,7 +333,7 @@ const EntityName& LogClient::get_myname(
118
119 seastar::future<> LogClient::handle_log_ack(Ref<MLogAck> m)
120 {
121- logger().debug("handle_log_ack {}", *m);
122+ logger().debug("handle_log_ack {}", fmt::streamed(*m));
123
124 version_t last = m->last;
125
126@@ -341,7 +342,7 @@ seastar::future<> LogClient::handle_log_
127 const LogEntry &entry(*q);
128 if (entry.seq > last)
129 break;
130- logger().debug(" logged {}", entry);
131+ logger().debug(" logged {}", fmt::streamed(entry));
132 q = log_queue.erase(q);
133 }
134 return seastar::now();
135--- ceph-17.2.3/src/crimson/mgr/client.cc.orig 2022-07-28 23:52:12.000000000 +0200
136+++ ceph-17.2.3/src/crimson/mgr/client.cc 2022-09-05 06:26:48.430701643 +0200
137@@ -134,7 +134,7 @@ seastar::future<> Client::handle_mgr_map
138 seastar::future<> Client::handle_mgr_conf(crimson::net::ConnectionRef,
139 Ref<MMgrConfigure> m)
140 {
141- logger().info("{} {}", __func__, *m);
142+ logger().info("{} {}", __func__, fmt::streamed(*m));
143
144 auto report_period = std::chrono::seconds{m->stats_period};
145 if (report_period.count()) {
146--- ceph-17.2.3/src/crimson/mon/MonClient.cc.orig 2022-07-28 23:52:12.000000000 +0200
147+++ ceph-17.2.3/src/crimson/mon/MonClient.cc 2022-09-08 19:41:15.770921116 +0200
148@@ -14,6 +14,8 @@
149 #include "auth/RotatingKeyRing.h"
150
151 #include "common/hostname.h"
152+#include "include/types_fmt.h"
153+#include "msg/msg_fmt.h"
154
155 #include "crimson/auth/KeyRing.h"
156 #include "crimson/common/config_proxy.h"
157@@ -217,7 +219,7 @@ Connection::do_auth_single(Connection::r
158 break;
159 case request_t::general:
160 if (int ret = auth->build_request(m->auth_payload); ret) {
161- logger().error("missing/bad key for '{}'", local_conf()->name);
162+ logger().error("missing/bad key for '{}'", fmt::streamed(local_conf()->name));
163 throw std::system_error(make_error_code(
164 crimson::net::error::negotiation_failure));
165 }
166@@ -225,7 +225,7 @@ Connection::do_auth_single(Connection::r
167 default:
168 assert(0);
169 }
170- logger().info("sending {}", *m);
171+ logger().info("sending {}", fmt::streamed(*m));
172 return conn->send(std::move(m)).then([this] {
173 logger().info("waiting");
174 return auth_reply.get_shared_future();
175@@ -237,8 +237,8 @@ Connection::do_auth_single(Connection::r
176 }
177 logger().info(
178 "do_auth_single: mon {} => {} returns {}: {}",
179- conn->get_messenger()->get_myaddr(),
180- conn->get_peer_addr(), *m, m->result);
181+ conn->get_messenger()->get_myaddr(),
182+ conn->get_peer_addr(), fmt::streamed(*m), m->result);
183 auto p = m->result_bl.cbegin();
184 auto ret = auth->handle_response(m->result, p,
185 nullptr, nullptr);
186@@ -807,8 +807,8 @@ seastar::future<> Client::handle_auth_re
187 {
188 logger().info(
189 "handle_auth_reply mon {} => {} returns {}: {}",
190- conn->get_messenger()->get_myaddr(),
191- conn->get_peer_addr(), *m, m->result);
192+ conn->get_messenger()->get_myaddr(),
193+ conn->get_peer_addr(), fmt::streamed(*m), m->result);
194 auto found = std::find_if(pending_conns.begin(), pending_conns.end(),
195 [peer_addr = conn->get_peer_addr()](auto& mc) {
196 return mc->is_my_peer(peer_addr);
197--- ceph-17.2.3/src/crimson/net/Connection.h.orig 2022-07-28 23:52:12.000000000 +0200
198+++ ceph-17.2.3/src/crimson/net/Connection.h 2022-09-06 16:55:17.884653125 +0200
199@@ -173,3 +173,6 @@ inline std::ostream& operator<<(std::ost
200 }
201
202 } // namespace crimson::net
203+
204+template <>
205+struct fmt::formatter<crimson::net::Connection> : ostream_formatter {};
206--- ceph-17.2.3/src/crimson/net/SocketConnection.h.orig 2022-07-28 23:52:12.000000000 +0200
207+++ ceph-17.2.3/src/crimson/net/SocketConnection.h 2022-09-08 21:30:24.173383344 +0200
208@@ -104,3 +104,6 @@ class SocketConnection : public Connecti
209 };
210
211 } // namespace crimson::net
212+
213+template <>
214+struct fmt::formatter<crimson::net::SocketConnection> : ostream_formatter {};
215--- ceph-17.2.3/src/crimson/net/ProtocolV2.cc.orig 2022-07-28 23:52:12.000000000 +0200
216+++ ceph-17.2.3/src/crimson/net/ProtocolV2.cc 2022-09-09 19:40:17.957323611 +0200
217@@ -7,6 +7,7 @@
218 #include <fmt/format.h>
219 #include "include/msgr.h"
220 #include "include/random.h"
221+#include "msg/msg_fmt.h"
222
223 #include "crimson/auth/AuthClient.h"
224 #include "crimson/auth/AuthServer.h"
225@@ -604,7 +605,7 @@ seastar::future<> ProtocolV2::client_aut
226 return handle_auth_reply();
227 });
228 } catch (const crimson::auth::error& e) {
229- logger().error("{} get_initial_auth_request returned {}", conn, e);
230+ logger().error("{} get_initial_auth_request returned {}", conn, fmt::streamed(e));
231 abort_in_close(*this, true);
232 return seastar::now();
233 }
234--- ceph-17.2.3/src/crimson/net/Socket.cc.orig 2022-07-28 23:52:12.000000000 +0200
235+++ ceph-17.2.3/src/crimson/net/Socket.cc 2022-09-08 21:47:01.195369872 +0200
236@@ -5,6 +5,7 @@
237
238 #include <seastar/core/when_all.hh>
239
240+#include "msg/msg_fmt.h"
241 #include "crimson/common/log.h"
242 #include "Errors.h"
243
244--- ceph-17.2.3/src/crimson/net/SocketMessenger.cc.orig 2022-07-28 23:52:12.000000000 +0200
245+++ ceph-17.2.3/src/crimson/net/SocketMessenger.cc 2022-09-08 21:28:14.640010471 +0200
246@@ -18,11 +18,16 @@
247
248 #include <tuple>
249 #include <boost/functional/hash.hpp>
250+#include <fmt/os.h>
251
252 #include "auth/Auth.h"
253+#include "msg/msg_fmt.h"
254 #include "Errors.h"
255 #include "Socket.h"
256
257+template <>
258+struct fmt::formatter<crimson::net::SocketMessenger> : ostream_formatter {};
259+
260 namespace {
261 seastar::logger& logger() {
262 return crimson::get_logger(ceph_subsys_ms);
263--- ceph-17.2.3/src/crimson/os/cyanstore/cyan_store.cc.orig 2022-07-28 23:52:12.000000000 +0200
264+++ ceph-17.2.3/src/crimson/os/cyanstore/cyan_store.cc 2022-09-12 21:46:02.891292495 +0200
265@@ -7,8 +7,10 @@
266 #include <fmt/format.h>
267 #include <fmt/ostream.h>
268
269+#include "common/hobject_fmt.h"
270 #include "common/safe_io.h"
271 #include "os/Transaction.h"
272+#include "osd/osd_types_fmt.h"
273
274 #include "crimson/common/buffer_io.h"
275 #include "crimson/common/config_proxy.h"
276@@ -115,7 +117,7 @@ CyanStore::mkfs_ertr::future<> CyanStore
277 } else {
278 osd_fsid = new_osd_fsid;
279 }
280- return write_meta("fsid", fmt::format("{}", osd_fsid));
281+ return write_meta("fsid", fmt::format("{}", fmt::streamed(osd_fsid)));
282 } else if (r < 0) {
283 return crimson::stateful_ec{ singleton_ec<read_meta_errmsg>() };
284 } else {
285@@ -123,7 +125,7 @@ CyanStore::mkfs_ertr::future<> CyanStore
286 if (!osd_fsid.parse(fsid_str.c_str())) {
287 return crimson::stateful_ec{ singleton_ec<parse_fsid_errmsg>() };
288 } else if (osd_fsid != new_osd_fsid) {
289- logger().error("on-disk fsid {} != provided {}", osd_fsid, new_osd_fsid);
290+ logger().error("on-disk fsid {} != provided {}", fmt::streamed(osd_fsid), fmt::streamed(new_osd_fsid));
291 return crimson::stateful_ec{ singleton_ec<match_ofsid_errmsg>() };
292 } else {
293 return mkfs_ertr::now();
294--- ceph-17.2.3/src/crimson/os/seastore/cache.h.orig 2022-07-28 23:52:12.000000000 +0200
295+++ ceph-17.2.3/src/crimson/os/seastore/cache.h 2022-09-14 16:25:29.215651215 +0200
296@@ -8,6 +8,7 @@
297 #include "seastar/core/shared_future.hh"
298
299 #include "include/buffer.h"
300+#include "include/types_fmt.h"
301
302 #include "crimson/os/seastore/logging.h"
303 #include "crimson/os/seastore/seastore_types.h"
304@@ -330,7 +331,7 @@ public:
305 } else {
306 SUBDEBUGT(seastore_cache,
307 "Read extent at offset {} in cache: {}",
308- t, offset, *ref);
309+ t, offset, fmt::streamed(*ref));
310 touch_extent(*ref);
311 t.add_to_read_set(ref);
312 return get_extent_iertr::make_ready_future<TCachedExtentRef<T>>(
313--- ceph-17.2.3/src/crimson/os/seastore/cached_extent.h.orig 2022-07-28 23:52:12.000000000 +0200
314+++ ceph-17.2.3/src/crimson/os/seastore/cached_extent.h 2022-09-10 07:10:31.584611548 +0200
315@@ -837,3 +837,12 @@ using lextent_list_t = addr_extent_list_
316 laddr_t, TCachedExtentRef<T>>;
317
318 }
319+
320+template <>
321+struct fmt::formatter<crimson::os::seastore::CachedExtent> : ostream_formatter {};
322+
323+template <>
324+struct fmt::formatter<crimson::os::seastore::LogicalCachedExtent> : ostream_formatter {};
325+
326+template <>
327+struct fmt::formatter<crimson::os::seastore::LBAPin> : ostream_formatter {};
328--- ceph-17.2.3/src/crimson/os/seastore/object_data_handler.h.orig 2022-07-28 23:52:12.000000000 +0200
329+++ ceph-17.2.3/src/crimson/os/seastore/object_data_handler.h 2022-09-11 17:30:31.253984098 +0200
330@@ -119,3 +119,6 @@ private:
331 };
332
333 }
334+
335+template <>
336+struct fmt::formatter<crimson::os::seastore::ObjectDataBlock> : ostream_formatter {};
337--- ceph-17.2.3/src/crimson/os/seastore/onode.h.orig 2022-07-28 23:52:12.000000000 +0200
338+++ ceph-17.2.3/src/crimson/os/seastore/onode.h 2022-09-11 18:15:39.632135931 +0200
339@@ -81,3 +81,6 @@ public:
340 std::ostream& operator<<(std::ostream &out, const Onode &rhs);
341 using OnodeRef = boost::intrusive_ptr<Onode>;
342 }
343+
344+template <>
345+struct fmt::formatter<crimson::os::seastore::Onode> : ostream_formatter {};
346--- ceph-17.2.3/src/crimson/os/seastore/root_block.h.orig 2022-07-28 23:52:12.000000000 +0200
347+++ ceph-17.2.3/src/crimson/os/seastore/root_block.h 2022-09-09 21:38:11.463439115 +0200
348@@ -88,3 +88,6 @@ struct RootBlock : CachedExtent {
349 using RootBlockRef = RootBlock::Ref;
350
351 }
352+
353+template <>
354+struct fmt::formatter<crimson::os::seastore::RootBlock> : ostream_formatter {};
355--- ceph-17.2.3/src/crimson/os/seastore/seastore_types.h.orig 2022-07-28 23:52:12.000000000 +0200
356+++ ceph-17.2.3/src/crimson/os/seastore/seastore_types.h 2022-09-10 07:02:01.794683539 +0200
357@@ -8,6 +8,7 @@
358 #include <optional>
359 #include <iostream>
360 #include <vector>
361+#include <fmt/ostream.h>
362
363 #include "include/byteorder.h"
364 #include "include/denc.h"
365@@ -1589,3 +1590,30 @@ struct denc_traits<crimson::os::seastore
366 reinterpret_cast<char*>(&o));
367 }
368 };
369+
370+template <>
371+struct fmt::formatter<crimson::os::seastore::segment_id_t> : ostream_formatter {};
372+
373+template <>
374+struct fmt::formatter<crimson::os::seastore::paddr_t> : ostream_formatter {};
375+
376+template <>
377+struct fmt::formatter<crimson::os::seastore::device_type_t> : ostream_formatter {};
378+
379+template <>
380+struct fmt::formatter<crimson::os::seastore::journal_seq_t> : ostream_formatter {};
381+
382+template <>
383+struct fmt::formatter<crimson::os::seastore::delta_info_t> : ostream_formatter {};
384+
385+template <>
386+struct fmt::formatter<crimson::os::seastore::laddr_list_t> : ostream_formatter {};
387+
388+template <>
389+struct fmt::formatter<crimson::os::seastore::extent_types_t> : ostream_formatter {};
390+
391+template <>
392+struct fmt::formatter<crimson::os::seastore::extent_info_t> : ostream_formatter {};
393+
394+template <>
395+struct fmt::formatter<crimson::os::seastore::segment_header_t> : ostream_formatter {};
396--- ceph-17.2.3/src/crimson/os/seastore/segment_manager.h.orig 2022-07-28 23:52:12.000000000 +0200
397+++ ceph-17.2.3/src/crimson/os/seastore/segment_manager.h 2022-09-09 20:43:03.983800973 +0200
398@@ -261,3 +261,12 @@ WRITE_CLASS_DENC(
399 WRITE_CLASS_DENC(
400 crimson::os::seastore::block_sm_superblock_t
401 )
402+
403+template <>
404+struct fmt::formatter<crimson::os::seastore::block_sm_superblock_t> : ostream_formatter {};
405+
406+template <>
407+struct fmt::formatter<crimson::os::seastore::segment_manager_config_t> : ostream_formatter {};
408+
409+template <>
410+struct fmt::formatter<crimson::os::seastore::Segment::segment_state_t> : ostream_formatter {};
411--- ceph-17.2.3/src/crimson/os/seastore/transaction.h.orig 2022-07-28 23:52:12.000000000 +0200
412+++ ceph-17.2.3/src/crimson/os/seastore/transaction.h 2022-09-09 21:34:09.507446054 +0200
413@@ -4,6 +4,7 @@
414 #pragma once
415
416 #include <iostream>
417+#include <fmt/ostream.h>
418
419 #include <boost/intrusive/list.hpp>
420
421@@ -505,3 +506,6 @@ template <typename T>
422 using with_trans_ertr = typename T::base_ertr::template extend<crimson::ct_error::eagain>;
423
424 }
425+
426+template <>
427+struct fmt::formatter<crimson::os::seastore::Transaction::src_t> : ostream_formatter {};
428--- ceph-17.2.3/src/crimson/os/seastore/transaction_manager.h.orig 2022-07-28 23:52:12.000000000 +0200
429+++ ceph-17.2.3/src/crimson/os/seastore/transaction_manager.h 2022-09-14 16:25:42.966374227 +0200
430@@ -163,7 +163,7 @@ public:
431 lba_manager->add_pin(extent.get_pin());
432 }
433 ).si_then([FNAME, &t](auto ref) mutable -> ret {
434- SUBDEBUGT(seastore_tm, "got extent {}", t, *ref);
435+ SUBDEBUGT(seastore_tm, "got extent {}", t, fmt::streamed(*ref));
436 return pin_to_extent_ret<T>(
437 interruptible::ready_future_marker{},
438 std::move(ref));
439@@ -313,7 +313,7 @@ public:
440 ext->set_pin(std::move(ref));
441 stats.extents_allocated_total++;
442 stats.extents_allocated_bytes += len;
443- SUBDEBUGT(seastore_tm, "new extent: {}, laddr_hint: {}", t, *ext, laddr_hint);
444+ SUBDEBUGT(seastore_tm, "new extent: {}, laddr_hint: {}", t, fmt::streamed(*ext), laddr_hint);
445 return alloc_extent_iertr::make_ready_future<TCachedExtentRef<T>>(
446 std::move(ext));
447 });
448--- ceph-17.2.3/src/crimson/os/seastore/extent_reader.cc.orig 2022-07-28 23:52:12.000000000 +0200
449+++ ceph-17.2.3/src/crimson/os/seastore/extent_reader.cc 2022-09-09 21:47:09.444920952 +0200
450@@ -44,7 +44,7 @@ ExtentReader::read_segment_header(segmen
451 logger().debug(
452 "ExtentReader::read_segment_header: segment {} unable to decode "
453 "header, skipping -- {}",
454- segment, e);
455+ segment, fmt::streamed(e));
456 return crimson::ct_error::enodata::make();
434b7419 457 }
c5b31b08
JB
458 logger().debug(
459--- ceph-17.2.3/src/crimson/os/seastore/journal.cc.orig 2022-07-28 23:52:12.000000000 +0200
460+++ ceph-17.2.3/src/crimson/os/seastore/journal.cc 2022-09-09 21:45:01.061536954 +0200
461@@ -2,6 +2,7 @@
462 // vim: ts=8 sw=2 smarttab
463
464 #include <iostream>
465+#include <fmt/os.h>
466
467 #include <boost/iterator/counting_iterator.hpp>
468
469--- ceph-17.2.3/src/crimson/os/seastore/seastore.cc.orig 2022-07-28 23:52:12.000000000 +0200
470+++ ceph-17.2.3/src/crimson/os/seastore/seastore.cc 2022-09-12 21:36:15.057012562 +0200
471@@ -13,9 +13,11 @@
472 #include <seastar/core/fstream.hh>
473 #include <seastar/core/shared_mutex.hh>
474
475+#include "common/hobject_fmt.h"
476 #include "common/safe_io.h"
477 #include "include/stringify.h"
478 #include "os/Transaction.h"
479+#include "osd/osd_types_fmt.h"
480
481 #include "crimson/common/buffer_io.h"
482
483@@ -124,7 +126,7 @@ void SeaStore::register_metrics()
484
485 for (auto& [op_type, label] : labels_by_op_type) {
486 auto desc = fmt::format("latency of seastore operation (optype={})",
487- op_type);
488+ static_cast<uint8_t>(op_type));
489 metrics.add_group(
490 "seastore",
491 {
492--- ceph-17.2.3/src/crimson/os/seastore/seastore_types.cc.orig 2022-07-28 23:52:12.000000000 +0200
493+++ ceph-17.2.3/src/crimson/os/seastore/seastore_types.cc 2022-09-09 20:12:53.796095116 +0200
494@@ -12,6 +12,9 @@ seastar::logger& logger() {
495
496 }
497
498+template <>
499+struct fmt::formatter<ceph::buffer::error> : ostream_formatter {};
500+
501 namespace crimson::os::seastore {
502
503 std::ostream& operator<<(std::ostream& out, const seastore_meta_t& meta)
504--- ceph-17.2.3/src/crimson/os/seastore/collection_manager/collection_flat_node.h.orig 2022-07-28 23:52:12.000000000 +0200
505+++ ceph-17.2.3/src/crimson/os/seastore/collection_manager/collection_flat_node.h 2022-09-11 14:36:42.815251945 +0200
506@@ -182,3 +182,6 @@ struct CollectionNode
507 };
508 using CollectionNodeRef = CollectionNode::CollectionNodeRef;
509 }
510+
511+template <>
512+struct fmt::formatter<crimson::os::seastore::collection_manager::CollectionNode> : ostream_formatter {};
513--- ceph-17.2.3/src/crimson/os/seastore/collection_manager/collection_flat_node.cc.orig 2022-07-28 23:52:12.000000000 +0200
514+++ ceph-17.2.3/src/crimson/os/seastore/collection_manager/collection_flat_node.cc 2022-09-12 21:40:23.250020447 +0200
515@@ -3,6 +3,7 @@
516
517 #include "include/buffer.h"
518 #include "osd/osd_types.h"
519+#include "osd/osd_types_fmt.h"
520 #include "crimson/os/seastore/transaction_manager.h"
521 #include "crimson/os/seastore/collection_manager/collection_flat_node.h"
522
523--- ceph-17.2.3/src/crimson/os/seastore/lba_manager/btree/btree_range_pin.h.orig 2022-07-28 23:52:12.000000000 +0200
524+++ ceph-17.2.3/src/crimson/os/seastore/lba_manager/btree/btree_range_pin.h 2022-09-10 07:02:50.047200663 +0200
525@@ -4,6 +4,7 @@
526 #pragma once
527
528 #include <boost/intrusive/set.hpp>
529+#include <fmt/ostream.h>
530
531 #include "crimson/os/seastore/cached_extent.h"
532 #include "crimson/os/seastore/seastore_types.h"
533@@ -290,3 +291,6 @@ public:
534 };
535
536 }
537+
538+template <>
539+struct fmt::formatter<crimson::os::seastore::lba_manager::btree::btree_range_pin_t> : ostream_formatter {};
540--- ceph-17.2.3/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h.orig 2022-07-28 23:52:12.000000000 +0200
541+++ ceph-17.2.3/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h 2022-09-10 07:35:43.533763577 +0200
542@@ -563,3 +563,9 @@ struct LBALeafNode
543 using LBALeafNodeRef = TCachedExtentRef<LBALeafNode>;
544
545 }
546+
547+template <>
548+struct fmt::formatter<crimson::os::seastore::lba_manager::btree::LBAInternalNode> : ostream_formatter {};
549+
550+template <>
551+struct fmt::formatter<crimson::os::seastore::lba_manager::btree::LBALeafNode> : ostream_formatter {};
552--- ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node.h.orig 2022-07-28 23:52:12.000000000 +0200
553+++ ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node.h 2022-09-10 08:25:44.417337428 +0200
554@@ -114,3 +114,6 @@ omap_load_extent_iertr::future<OMapNodeR
555 omap_load_extent(omap_context_t oc, laddr_t laddr, depth_t depth);
556
557 }
558+
559+template <>
560+struct fmt::formatter<crimson::os::seastore::omap_manager::OMapNode> : ostream_formatter {};
561--- ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h.orig 2022-07-28 23:52:12.000000000 +0200
562+++ ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h 2022-09-10 13:55:41.723892064 +0200
563@@ -235,3 +235,15 @@ using OMapLeafNodeRef = OMapLeafNode::OM
564 std::ostream &operator<<(std::ostream &out, const omap_inner_key_t &rhs);
565 std::ostream &operator<<(std::ostream &out, const omap_leaf_key_t &rhs);
566 }
567+
568+template <>
569+struct fmt::formatter<crimson::os::seastore::omap_manager::OMapInnerNode> : ostream_formatter {};
570+
571+template <>
572+struct fmt::formatter<crimson::os::seastore::omap_manager::OMapLeafNode> : ostream_formatter {};
573+
574+template <>
575+struct fmt::formatter<boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapInnerNode>> : ostream_formatter {};
576+
577+template <>
578+struct fmt::formatter<boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapLeafNode>> : ostream_formatter {};
579--- ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/btree_omap_manager.cc.orig 2022-07-28 23:52:12.000000000 +0200
580+++ ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/btree_omap_manager.cc 2022-09-10 07:53:44.517113694 +0200
581@@ -130,7 +130,7 @@ BtreeOMapManager::omap_set_key(
582 const std::string &key,
583 const ceph::bufferlist &value)
584 {
585- logger().debug("{}: {} -> {}", __func__, key, value);
586+ logger().debug("{}: {} -> {}", __func__, key, fmt::streamed(value));
587 return get_omap_root(
588 get_omap_context(t, omap_root.hint),
589 omap_root
590--- ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc.orig 2022-07-28 23:52:12.000000000 +0200
591+++ ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc 2022-09-10 12:21:38.205877267 +0200
592@@ -136,7 +136,7 @@ OMapInnerNode::insert(
593 const std::string &key,
594 const ceph::bufferlist &value)
595 {
596- logger().debug("OMapInnerNode: {} {}->{}", __func__, key, value);
597+ logger().debug("OMapInnerNode: {} {}->{}", __func__, key, fmt::streamed(value));
598 auto child_pt = get_containing_child(key);
599 assert(child_pt != iter_end());
600 auto laddr = child_pt->get_val();
601@@ -432,7 +432,7 @@ OMapLeafNode::insert(
602 const std::string &key,
603 const ceph::bufferlist &value)
604 {
605- logger().debug("OMapLeafNode: {}, {} -> {}", __func__, key, value);
606+ logger().debug("OMapLeafNode: {}, {} -> {}", __func__, key, fmt::streamed(value));
607 bool overflow = extent_will_overflow(key.size(), value.length());
608 if (!overflow) {
609 if (!is_pending()) {
610--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_accessor.h.orig 2022-07-28 23:52:12.000000000 +0200
611+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_accessor.h 2022-09-10 21:53:11.326721372 +0200
612@@ -141,7 +141,7 @@ class DeltaRecorderT final: public Delta
613 SUBDEBUG(seastore_onode, "decoding SPLIT ...");
614 auto split_at = StagedIterator::decode(
615 mut.get_read(), mut.get_length(), delta);
616- SUBDEBUG(seastore_onode, "apply split_at={} ...", split_at);
617+ SUBDEBUG(seastore_onode, "apply split_at={} ...", fmt::streamed(split_at));
618 layout_t::split(mut, stage, split_at);
619 break;
620 }
621@@ -159,7 +159,7 @@ class DeltaRecorderT final: public Delta
622 SUBDEBUG(seastore_onode,
623 "apply split_at={}, {}, {}, insert_pos({}), insert_stage={}, "
624 "insert_size={}B ...",
625- split_at, key, value, insert_pos, insert_stage, insert_size);
626+ fmt::streamed(split_at), key, value, insert_pos, insert_stage, insert_size);
627 layout_t::template split_insert<KeyT::HOBJ>(
628 mut, stage, split_at, key, value, insert_pos, insert_stage, insert_size);
629 break;
630@@ -206,13 +206,13 @@ class DeltaRecorderT final: public Delta
631 default:
632 SUBERROR(seastore_onode,
633 "got unknown op {} when replay {}",
634- op, node);
635+ static_cast<uint8_t>(op), node);
636 ceph_abort("fatal error");
637 }
638 } catch (buffer::error& e) {
639 SUBERROR(seastore_onode,
640 "got decode error {} when replay {}",
641- e, node);
642+ fmt::streamed(e), node);
643 ceph_abort("fatal error");
644 }
645 }
646--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager.h.orig 2022-07-28 23:52:12.000000000 +0200
647+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager.h 2022-09-10 20:22:25.681931141 +0200
648@@ -99,3 +99,6 @@ inline std::ostream& operator<<(std::ost
649 }
650
651 }
652+
653+template <>
654+struct fmt::formatter<crimson::os::seastore::onode::NodeExtent> : ostream_formatter {};
655--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h.orig 2022-07-28 23:52:12.000000000 +0200
656+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h 2022-09-10 23:18:51.518511129 +0200
657@@ -716,7 +716,7 @@ class NodeLayoutT final : public Interna
658 SUBDEBUG(seastore_onode,
659 "-- located split_at({}), insert_pos({}), is_insert_left={}, "
660 "split_size={}B(target={}B, current={}B)",
661- split_at, insert_pos, is_insert_left,
662+ fmt::streamed(split_at), insert_pos, is_insert_left,
663 split_size, target_split_size, filled_size());
664 // split_size can be larger than target_split_size in strategy B
665 // assert(split_size <= target_split_size);
666--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/tree_utils.h.orig 2022-07-28 23:52:12.000000000 +0200
667+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/tree_utils.h 2022-09-14 16:25:35.992674217 +0200
668@@ -304,7 +304,7 @@ class TreeBuilder {
669 logger().debug("[{}] insert {} -> {}",
670 iter_rd - kvs.random_begin(),
671 key_hobj_t{p_kv->key},
672- p_kv->value);
673+ fmt::streamed(p_kv->value));
674 return tree->insert(
675 t, p_kv->key, {p_kv->value.get_payload_size()}
676 ).si_then([&t, this, p_kv](auto ret) {
677@@ -397,7 +397,7 @@ class TreeBuilder {
678 logger().debug("[{}] erase {} -> {}",
679 iter_rd - kvs.random_begin(),
680 key_hobj_t{p_kv->key},
681- p_kv->value);
682+ fmt::streamed(p_kv->value));
683 return tree->erase(t, p_kv->key
684 ).si_then([&t, this, p_kv] (auto size) {
685 ceph_assert(size == 1);
686@@ -497,7 +497,7 @@ class TreeBuilder {
687 eagain_ifuture<> get_stats(Transaction& t) {
688 return tree->get_stats_slow(t
689 ).si_then([](auto stats) {
690- logger().warn("{}", stats);
691+ logger().warn("{}", fmt::streamed(stats));
692 });
693 }
694
695--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/value.h.orig 2022-07-28 23:52:12.000000000 +0200
696+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/value.h 2022-09-10 20:44:01.346243614 +0200
697@@ -330,3 +330,9 @@ std::unique_ptr<ValueDeltaRecorder>
698 build_value_recorder_by_type(ceph::bufferlist& encoded, const value_magic_t& magic);
699
700 }
701+
702+template <>
703+struct fmt::formatter<crimson::os::seastore::onode::value_config_t> : ostream_formatter {};
704+
705+template <>
706+struct fmt::formatter<crimson::os::seastore::onode::value_header_t> : ostream_formatter {};
707--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc.orig 2022-07-28 23:52:12.000000000 +0200
708+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc 2022-09-11 13:59:47.892898649 +0200
709@@ -1,6 +1,7 @@
710 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
711 // vim: ts=8 sw=2 smarttab
712
713+#include "common/hobject_fmt.h"
714 #include "crimson/os/seastore/logging.h"
715
716 #include "crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.h"
717--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/dummy.h.orig 2022-07-28 23:52:12.000000000 +0200
718+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/dummy.h 2022-09-10 20:23:37.035656315 +0200
719@@ -190,3 +190,6 @@ class DummyNodeExtentManager final: publ
720 };
721
722 }
723+
724+template <>
725+struct fmt::formatter<crimson::os::seastore::onode::DummyNodeExtent> : ostream_formatter {};
726--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/seastore.h.orig 2022-07-28 23:52:12.000000000 +0200
727+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/seastore.h 2022-09-10 20:35:15.305445076 +0200
728@@ -217,3 +217,6 @@ class SeastoreNodeExtentManager final: p
729 };
730
731 }
732+
733+template <>
734+struct fmt::formatter<crimson::os::seastore::onode::SeastoreNodeExtent> : ostream_formatter {};
735--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/stages/key_layout.h.orig 2022-07-28 23:52:12.000000000 +0200
736+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/stages/key_layout.h 2022-09-10 18:15:40.701599795 +0200
737@@ -941,3 +941,9 @@ void ns_oid_view_t::test_append(const fu
738 }
739
740 }
741+
742+template <>
743+struct fmt::formatter<crimson::os::seastore::onode::key_hobj_t> : ostream_formatter {};
744+
745+template <>
746+struct fmt::formatter<crimson::os::seastore::onode::key_view_t> : ostream_formatter {};
747--- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage_types.h.orig 2022-07-28 23:52:12.000000000 +0200
748+++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage_types.h 2022-09-10 19:52:32.398311751 +0200
749@@ -462,3 +462,9 @@ struct node_stats_t {
750 };
751
752 }
753+
754+template <>
755+struct fmt::formatter<crimson::os::seastore::onode::MatchHistory> : ostream_formatter {};
756+
757+template <crimson::os::seastore::onode::match_stage_t STAGE>
758+struct fmt::formatter<crimson::os::seastore::onode::staged_position_t<STAGE>> : ostream_formatter {};
759--- ceph-17.2.3/src/crimson/os/seastore/random_block_manager/nvme_manager.cc.orig 2022-07-28 23:52:12.000000000 +0200
760+++ ceph-17.2.3/src/crimson/os/seastore/random_block_manager/nvme_manager.cc 2022-09-11 19:09:02.343128795 +0200
761@@ -154,7 +154,7 @@ NVMeManager::mkfs_ertr::future<> NVMeMan
762 super.blocks_per_segment = config.blocks_per_segment;
763 super.device_id = config.device_id;
764
765- logger().debug(" super {} ", super);
766+ logger().debug(" super {} ", fmt::streamed(super));
767 // write super block
768 return write_rbm_header().safe_then([this] {
769 return initialize_blk_alloc_area();
770@@ -227,7 +227,7 @@ NVMeManager::find_block_ret NVMeManager:
771 }
772 addr += super.block_size;
773 logger().debug("find_free_list: allocated: {} alloc_extent {}",
774- allocated, alloc_extent);
775+ allocated, fmt::streamed(alloc_extent));
776 if (((uint64_t)size)/super.block_size == allocated) {
777 return seastar::stop_iteration::yes;
778 } else if (addr >= super.start_data_area) {
779@@ -271,7 +271,7 @@ NVMeManager::allocate_ret NVMeManager::a
780 return find_free_block(t, size
781 ).safe_then([this, &t] (auto alloc_extent) mutable
782 -> allocate_ertr::future<paddr_t> {
783- logger().debug("after find_free_block: allocated {}", alloc_extent);
784+ logger().debug("after find_free_block: allocated {}", fmt::streamed(alloc_extent));
785 if (!alloc_extent.empty()) {
786 rbm_alloc_delta_t alloc_info;
787 for (auto p : alloc_extent) {
788@@ -626,7 +626,7 @@ NVMeManager::read_ertr::future<rbm_metad
789 return crimson::ct_error::input_output_error::make();
790 }
791 }
792- logger().debug(" got {} ", super);
793+ logger().debug(" got {} ", fmt::streamed(super));
794 return read_ertr::future<rbm_metadata_header_t>(
795 read_ertr::ready_future_marker{},
796 super_block
797--- ceph-17.2.3/src/crimson/os/seastore/segment_manager/ephemeral.cc.orig 2022-07-28 23:52:12.000000000 +0200
798+++ ceph-17.2.3/src/crimson/os/seastore/segment_manager/ephemeral.cc 2022-09-09 20:40:20.735269610 +0200
799@@ -96,7 +96,7 @@ EphemeralSegmentManager::init_ertr::futu
800 {
801 logger().debug(
802 "Initing ephemeral segment manager with config {}",
803- config);
804+ fmt::streamed(config));
805
806 meta = seastore_meta_t{};
807
808--- ceph-17.2.3/src/crimson/osd/backfill_state.cc.orig 2022-07-28 23:52:12.000000000 +0200
809+++ ceph-17.2.3/src/crimson/osd/backfill_state.cc 2022-09-11 20:11:11.288470838 +0200
810@@ -5,6 +5,7 @@
811 #include <boost/type_index.hpp>
812
813 #include "crimson/osd/backfill_state.h"
814+#include "osd/osd_types_fmt.h"
815
816 namespace {
817 seastar::logger& logger() {
818@@ -423,7 +424,7 @@ boost::statechart::result
819 BackfillState::ReplicasScanning::react(ReplicaScanned evt)
820 {
821 logger().debug("{}: got scan result from osd={}, result={}",
822- __func__, evt.from, evt.result);
823+ __func__, evt.from, fmt::streamed(evt.result));
824 // TODO: maybe we'll be able to move waiting_on_backfill from
825 // the machine to the state.
826 ceph_assert(peering_state().is_backfill_target(evt.from));
827--- ceph-17.2.3/src/crimson/osd/heartbeat.cc.orig 2022-07-28 23:52:12.000000000 +0200
828+++ ceph-17.2.3/src/crimson/osd/heartbeat.cc 2022-09-11 20:44:43.140556321 +0200
829@@ -4,9 +4,11 @@
830 #include "heartbeat.h"
831
832 #include <boost/range/join.hpp>
833+#include <fmt/os.h>
834
835 #include "messages/MOSDPing.h"
836 #include "messages/MOSDFailure.h"
837+#include "msg/msg_fmt.h"
838
839 #include "crimson/common/config_proxy.h"
840 #include "crimson/common/formatter.h"
841@@ -17,6 +19,9 @@
842
843 #include "osd/OSDMap.h"
844
845+template <>
846+struct fmt::formatter<Heartbeat::Connection> : ostream_formatter {};
847+
848 using std::set;
849 using std::string;
850 using crimson::common::local_conf;
851@@ -393,7 +398,7 @@ void Heartbeat::Connection::accepted(cri
852 if (!conn) {
853 if (accepted_conn->get_peer_addr() == listener.get_peer_addr(type)) {
854 logger().info("Heartbeat::Connection::accepted(): "
855- "{} racing resolved", *this);
856+ "{} racing resolved", fmt::streamed(*this));
857 conn = accepted_conn;
858 set_connected();
859 }
860@@ -410,7 +415,7 @@ void Heartbeat::Connection::replaced()
861 conn = msgr.connect(replaced_conn->get_peer_addr(),
862 replaced_conn->get_peer_name());
863 racing_detected = true;
864- logger().warn("Heartbeat::Connection::replaced(): {} racing", *this);
865+ logger().warn("Heartbeat::Connection::replaced(): {} racing", fmt::streamed(*this));
866 assert(conn != replaced_conn);
867 assert(conn->is_connected());
868 }
869--- ceph-17.2.3/src/crimson/osd/ops_executer.cc.orig 2022-07-28 23:52:12.000000000 +0200
870+++ ceph-17.2.3/src/crimson/osd/ops_executer.cc 2022-09-12 18:50:57.937349213 +0200
871@@ -18,6 +18,9 @@
872 #include "crimson/osd/exceptions.h"
873 #include "crimson/osd/pg.h"
874 #include "crimson/osd/watch.h"
875+#include "common/hobject_fmt.h"
876+#include "msg/msg_fmt.h"
877+#include "osd/osd_types_fmt.h"
878 #include "osd/ClassHandler.h"
879
880 namespace {
881--- ceph-17.2.3/src/crimson/osd/osd.cc.orig 2022-07-28 23:52:12.000000000 +0200
882+++ ceph-17.2.3/src/crimson/osd/osd.cc 2022-09-11 21:59:01.223608155 +0200
883@@ -10,6 +10,7 @@
884 #include <boost/smart_ptr/make_local_shared.hpp>
885 #include <fmt/format.h>
886 #include <fmt/ostream.h>
887+#include <fmt/os.h>
888 #include <seastar/core/timer.hh>
889
890 #include "common/pick_address.h"
891@@ -25,12 +26,14 @@
892 #include "messages/MOSDRepOpReply.h"
893 #include "messages/MOSDScrub2.h"
894 #include "messages/MPGStats.h"
895+#include "msg/msg_fmt.h"
896
897 #include "os/Transaction.h"
898 #include "osd/ClassHandler.h"
899 #include "osd/OSDCap.h"
900 #include "osd/PGPeeringEvent.h"
901 #include "osd/PeeringState.h"
902+#include "osd/osd_types_fmt.h"
903
904 #include "crimson/admin/osd_admin.h"
905 #include "crimson/admin/pg_commands.h"
906@@ -186,7 +189,7 @@ seastar::future<> OSD::mkfs(uuid_d osd_u
907 }).then([cluster_fsid, this] {
908 fmt::print("created object store {} for osd.{} fsid {}\n",
909 local_conf().get_val<std::string>("osd_data"),
910- whoami, cluster_fsid);
911+ whoami, fmt::streamed(cluster_fsid));
912 return seastar::now();
913 });
914 }
915@@ -200,7 +203,7 @@ seastar::future<> OSD::_write_superblock
916 return meta_coll->load_superblock().then([this](OSDSuperblock&& sb) {
917 if (sb.cluster_fsid != superblock.cluster_fsid) {
918 logger().error("provided cluster fsid {} != superblock's {}",
919- sb.cluster_fsid, superblock.cluster_fsid);
920+ fmt::streamed(sb.cluster_fsid), fmt::streamed(superblock.cluster_fsid));
921 throw std::invalid_argument("mismatched fsid");
922 }
923 if (sb.whoami != superblock.whoami) {
924@@ -214,8 +217,8 @@ seastar::future<> OSD::_write_superblock
925 logger().info(
926 "{} writing superblock cluster_fsid {} osd_fsid {}",
927 "_write_superblock",
928- superblock.cluster_fsid,
929- superblock.osd_fsid);
930+ fmt::streamed(superblock.cluster_fsid),
931+ fmt::streamed(superblock.osd_fsid));
932 return store.create_new_collection(coll_t::meta()).then([this] (auto ch) {
933 meta_coll = make_unique<OSDMeta>(ch, store);
934 ceph::os::Transaction t;
935@@ -495,13 +498,13 @@ seastar::future<> OSD::_add_me_to_crush(
936 };
937 return get_weight().then([this](auto weight) {
938 const crimson::crush::CrushLocation loc{make_unique<CephContext>().get()};
939- logger().info("{} crush location is {}", __func__, loc);
940+ logger().info("{} crush location is {}", __func__, fmt::streamed(loc));
941 string cmd = fmt::format(R"({{
942 "prefix": "osd crush create-or-move",
943 "id": {},
944 "weight": {:.4f},
945 "args": [{}]
946- }})", whoami, weight, loc);
947+ }})", whoami, weight, fmt::streamed(loc));
948 return monc->run_command(std::move(cmd), {});
949 }).then([](auto&& command_result) {
950 [[maybe_unused]] auto [code, message, out] = std::move(command_result);
951@@ -797,7 +800,7 @@ void OSD::handle_authentication(const En
952 {
953 // TODO: store the parsed cap and associate it with the connection
954 if (caps_info.allow_all) {
955- logger().debug("{} {} has all caps", __func__, name);
956+ logger().debug("{} {} has all caps", __func__, fmt::streamed(name));
957 return;
958 }
959 if (caps_info.caps.length() > 0) {
960@@ -806,14 +809,14 @@ void OSD::handle_authentication(const En
961 try {
962 decode(str, p);
963 } catch (ceph::buffer::error& e) {
964- logger().warn("{} {} failed to decode caps string", __func__, name);
965+ logger().warn("{} {} failed to decode caps string", __func__, fmt::streamed(name));
966 return;
967 }
968 OSDCap caps;
969 if (caps.parse(str)) {
970- logger().debug("{} {} has caps {}", __func__, name, str);
971+ logger().debug("{} {} has caps {}", __func__, fmt::streamed(name), str);
972 } else {
973- logger().warn("{} {} failed to parse caps {}", __func__, name, str);
974+ logger().warn("{} {} failed to parse caps {}", __func__, fmt::streamed(name), str);
975 }
976 }
977 }
978@@ -1051,7 +1054,7 @@ seastar::future<Ref<PG>> OSD::handle_pg_
979 seastar::future<> OSD::handle_osd_map(crimson::net::ConnectionRef conn,
980 Ref<MOSDMap> m)
981 {
982- logger().info("handle_osd_map {}", *m);
983+ logger().info("handle_osd_map {}", fmt::streamed(*m));
984 if (m->fsid != superblock.cluster_fsid) {
985 logger().warn("fsid mismatched");
986 return seastar::now();
987@@ -1141,7 +1144,7 @@ seastar::future<> OSD::committed_osd_map
988 if (osdmap->is_up(whoami)) {
989 const auto up_from = osdmap->get_up_from(whoami);
990 logger().info("osd.{}: map e {} marked me up: up_from {}, bind_epoch {}, state {}",
991- whoami, osdmap->get_epoch(), up_from, bind_epoch, state);
992+ whoami, osdmap->get_epoch(), up_from, bind_epoch, fmt::streamed(state));
993 if (bind_epoch < up_from &&
994 osdmap->get_addrs(whoami) == public_msgr->get_myaddrs() &&
995 state.is_booting()) {
996@@ -1184,7 +1187,7 @@ seastar::future<> OSD::committed_osd_map
997 return start_boot();
998 }
999 } else {
1000- logger().info("osd.{}: now {}", whoami, state);
1001+ logger().info("osd.{}: now {}", whoami, fmt::streamed(state));
1002 // XXX
1003 return seastar::now();
1004 }
1005@@ -1246,7 +1249,7 @@ seastar::future<> OSD::handle_rep_op_rep
1006 m->finish_decode();
1007 pg->second->handle_rep_op_reply(conn, *m);
1008 } else {
1009- logger().warn("stale reply: {}", *m);
1010+ logger().warn("stale reply: {}", fmt::streamed(*m));
1011 }
1012 return seastar::now();
1013 }
1014--- ceph-17.2.3/src/crimson/osd/osd_meta.cc.orig 2022-07-28 23:52:12.000000000 +0200
1015+++ ceph-17.2.3/src/crimson/osd/osd_meta.cc 2022-09-11 22:06:32.387184583 +0200
1016@@ -6,6 +6,7 @@
1017 #include <fmt/format.h>
1018 #include <fmt/ostream.h>
1019
1020+#include "common/hobject_fmt.h"
1021 #include "crimson/os/futurized_collection.h"
1022 #include "crimson/os/futurized_store.h"
1023 #include "os/Transaction.h"
1024--- ceph-17.2.3/src/crimson/osd/pg.cc.orig 2022-07-28 23:52:12.000000000 +0200
1025+++ ceph-17.2.3/src/crimson/osd/pg.cc 2022-09-12 06:26:38.859890170 +0200
1026@@ -11,15 +11,19 @@
1027 #include <boost/range/algorithm/copy.hpp>
1028 #include <boost/range/algorithm/max_element.hpp>
1029 #include <boost/range/numeric.hpp>
1030+#include <fmt/chrono.h>
1031 #include <fmt/format.h>
1032+#include <fmt/os.h>
1033 #include <fmt/ostream.h>
1034
1035+#include "common/hobject_fmt.h"
1036 #include "messages/MOSDOp.h"
1037 #include "messages/MOSDOpReply.h"
1038 #include "messages/MOSDRepOp.h"
1039 #include "messages/MOSDRepOpReply.h"
1040
1041 #include "osd/OSDMap.h"
1042+#include "osd/osd_types_fmt.h"
1043
1044 #include "os/Transaction.h"
1045
1046@@ -768,7 +772,7 @@ PG::do_osd_ops(
1047 reply->add_flags(CEPH_OSD_FLAG_ACK | CEPH_OSD_FLAG_ONDISK);
1048 logger().debug(
1049 "do_osd_ops: {} - object {} sending reply",
1050- *m,
1051+ fmt::streamed(*m),
1052 m->get_hobj());
1053 return do_osd_ops_iertr::make_ready_future<MURef<MOSDOpReply>>(
1054 std::move(reply));
1055@@ -1181,7 +1185,7 @@ seastar::future<> PG::stop()
1056 }
1057
1058 void PG::on_change(ceph::os::Transaction &t) {
1059- logger().debug("{}, {}", __func__, *this);
1060+ logger().debug("{}, {}", __func__, fmt::streamed(*this));
1061 for (auto& obc : obc_set_accessing) {
1062 obc.interrupt(::crimson::common::actingset_changed(is_primary()));
1063 }
1064--- ceph-17.2.3/src/crimson/osd/pg_backend.cc.orig 2022-07-28 23:52:12.000000000 +0200
1065+++ ceph-17.2.3/src/crimson/osd/pg_backend.cc 2022-09-12 19:43:42.529108520 +0200
1066@@ -16,6 +16,7 @@
1067 #include "os/Transaction.h"
1068 #include "common/Checksummer.h"
1069 #include "common/Clock.h"
1070+#include "common/hobject_fmt.h"
1071
1072 #include "crimson/common/exception.h"
1073 #include "crimson/os/futurized_collection.h"
1074--- ceph-17.2.3/src/crimson/osd/pg_interval_interrupt_condition.cc.orig 2022-07-28 23:52:12.000000000 +0200
1075+++ ceph-17.2.3/src/crimson/osd/pg_interval_interrupt_condition.cc 2022-09-14 16:25:56.740431797 +0200
1076@@ -20,14 +20,14 @@ bool IOInterruptCondition::new_interval_
1077 bool ret = e < pg->get_interval_start_epoch();
1078 if (ret)
1079 ::crimson::get_logger(ceph_subsys_osd).debug(
1080- "{} new interval, should interrupt, e{}", *pg, e);
1081+ "{} new interval, should interrupt, e{}", fmt::streamed(*pg), e);
1082 return ret;
1083 }
1084
1085 bool IOInterruptCondition::is_stopping() {
1086 if (pg->stopping)
1087 ::crimson::get_logger(ceph_subsys_osd).debug(
1088- "{} shutting down, should interrupt", *pg);
1089+ "{} shutting down, should interrupt", fmt::streamed(*pg));
1090 return pg->stopping;
1091 }
1092
1093--- ceph-17.2.3/src/crimson/osd/pg_map.cc.orig 2022-07-28 23:52:12.000000000 +0200
1094+++ ceph-17.2.3/src/crimson/osd/pg_map.cc 2022-09-14 16:26:00.380623198 +0200
1095@@ -5,6 +5,7 @@
1096
1097 #include "crimson/osd/pg.h"
1098 #include "common/Formatter.h"
1099+#include "osd/osd_types_fmt.h"
1100
1101 namespace {
1102 seastar::logger& logger() {
1103--- ceph-17.2.3/src/crimson/osd/pg_recovery.cc.orig 2022-07-28 23:52:12.000000000 +0200
1104+++ ceph-17.2.3/src/crimson/osd/pg_recovery.cc 2022-09-13 18:51:33.867800178 +0200
1105@@ -13,6 +13,7 @@
1106 #include "crimson/osd/pg_recovery.h"
1107
1108 #include "osd/osd_types.h"
1109+#include "osd/osd_types_fmt.h"
1110 #include "osd/PeeringState.h"
1111
1112 namespace {
1113@@ -109,8 +110,8 @@ size_t PGRecovery::start_primary_recover
1114
1115 logger().info("{} recovering {} in pg {}, missing {}", __func__,
1116 pg->get_recovery_backend()->total_recovering(),
1117- *static_cast<crimson::osd::PG*>(pg),
1118- missing);
1119+ fmt::streamed(*static_cast<crimson::osd::PG*>(pg)),
1120+ fmt::streamed(missing));
1121
1122 unsigned started = 0;
1123 int skipped = 0;
1124@@ -187,7 +188,7 @@ size_t PGRecovery::start_replica_recover
1125 logger().debug("{}: peer osd.{} missing {} objects", __func__,
1126 peer, pm.num_missing());
1127 logger().trace("{}: peer osd.{} missing {}", __func__,
1128- peer, pm.get_items());
1129+ peer, fmt::streamed(pm.get_items()));
1130
1131 // recover oldest first
1132 for (auto p = pm.get_rmissing().begin();
1133--- ceph-17.2.3/src/crimson/osd/recovery_backend.cc.orig 2022-07-28 23:52:12.000000000 +0200
1134+++ ceph-17.2.3/src/crimson/osd/recovery_backend.cc 2022-09-13 21:22:46.876223766 +0200
1135@@ -10,6 +10,7 @@
1136
1137 #include "messages/MOSDFastDispatchOp.h"
1138 #include "osd/osd_types.h"
1139+#include "osd/osd_types_fmt.h"
1140
1141 namespace {
1142 seastar::logger& logger() {
1143@@ -126,7 +127,7 @@ RecoveryBackend::handle_backfill(
1144 {
1145 logger().debug("{}", __func__);
1146 if (pg.old_peering_msg(m.map_epoch, m.query_epoch)) {
1147- logger().debug("{}: discarding {}", __func__, m);
1148+ logger().debug("{}: discarding {}", __func__, fmt::streamed(m));
1149 return seastar::now();
1150 }
1151 switch (m.op) {
1152@@ -147,10 +148,10 @@ RecoveryBackend::interruptible_future<>
1153 RecoveryBackend::handle_backfill_remove(
1154 MOSDPGBackfillRemove& m)
1155 {
1156- logger().debug("{} m.ls={}", __func__, m.ls);
1157+ logger().debug("{} m.ls={}", __func__, fmt::streamed(m.ls));
1158 assert(m.get_type() == MSG_OSD_PG_BACKFILL_REMOVE);
1159 if (pg.can_discard_replica_op(m)) {
1160- logger().debug("{}: discarding {}", __func__, m);
1161+ logger().debug("{}: discarding {}", __func__, fmt::streamed(m));
1162 return seastar::now();
1163 }
1164 ObjectStore::Transaction t;
1165@@ -285,7 +286,7 @@ RecoveryBackend::handle_scan(
1166 {
1167 logger().debug("{}", __func__);
1168 if (pg.old_peering_msg(m.map_epoch, m.query_epoch)) {
1169- logger().debug("{}: discarding {}", __func__, m);
1170+ logger().debug("{}: discarding {}", __func__, fmt::streamed(m));
1171 return seastar::now();
1172 }
1173 switch (m.op) {
1174--- ceph-17.2.3/src/crimson/osd/replicated_backend.cc.orig 2022-07-28 23:52:12.000000000 +0200
1175+++ ceph-17.2.3/src/crimson/osd/replicated_backend.cc 2022-09-12 19:49:54.678938412 +0200
1176@@ -10,6 +10,7 @@
1177 #include "crimson/os/futurized_store.h"
1178 #include "crimson/osd/shard_services.h"
1179 #include "osd/PeeringState.h"
1180+#include "osd/osd_types_fmt.h"
1181
1182 namespace {
1183 seastar::logger& logger() {
1184@@ -121,7 +122,7 @@ void ReplicatedBackend::got_rep_op_reply
1185 {
1186 auto found = pending_trans.find(reply.get_tid());
1187 if (found == pending_trans.end()) {
1188- logger().warn("{}: no matched pending rep op: {}", __func__, reply);
1189+ logger().warn("{}: no matched pending rep op: {}", __func__, fmt::streamed(reply));
1190 return;
1191 }
1192 auto& peers = found->second;
1193--- ceph-17.2.3/src/crimson/osd/replicated_recovery_backend.cc.orig 2022-07-28 23:52:12.000000000 +0200
1194+++ ceph-17.2.3/src/crimson/osd/replicated_recovery_backend.cc 2022-09-14 16:26:03.774134962 +0200
1195@@ -2,6 +2,7 @@
1196 // vim: ts=8 sw=2 smarttab expandtab
1197
1198 #include <fmt/format.h>
1199+#include <fmt/os.h>
1200 #include <fmt/ostream.h>
1201 #include <seastar/core/future.hh>
1202 #include <seastar/core/do_with.hh>
1203@@ -10,6 +11,8 @@
1204 #include "crimson/osd/pg_backend.h"
1205 #include "replicated_recovery_backend.h"
1206
1207+#include "common/hobject_fmt.h"
1208+#include "osd/osd_types_fmt.h"
1209 #include "msg/Message.h"
1210
1211 namespace {
1212@@ -18,6 +21,9 @@ namespace {
1213 }
1214 }
1215
1216+template <>
1217+struct fmt::formatter<MOSDPGPush> : ostream_formatter {};
1218+
1219 using std::less;
1220 using std::map;
1221 using std::string;
1222@@ -170,7 +176,7 @@ RecoveryBackend::interruptible_future<>
1223 ReplicatedRecoveryBackend::handle_recovery_delete(
1224 Ref<MOSDPGRecoveryDelete> m)
1225 {
1226- logger().debug("{}: {}", __func__, *m);
1227+ logger().debug("{}: {}", __func__, fmt::streamed(*m));
1228
1229 auto& p = m->objects.front(); //TODO: only one delete per message for now.
1230 return local_recover_delete(p.first, p.second, pg.get_osdmap_epoch())
1231@@ -465,7 +471,7 @@ ReplicatedRecoveryBackend::read_metadata
1232 for (auto&& [key, val] : attrs) {
1233 push_op->attrset.emplace(std::move(key), std::move(val));
1234 }
1235- logger().debug("read_metadata_for_push_op: {}", push_op->attrset[OI_ATTR]);
1236+ logger().debug("read_metadata_for_push_op: {}", fmt::streamed(push_op->attrset[OI_ATTR]));
1237 object_info_t oi;
1238 oi.decode_no_oid(push_op->attrset[OI_ATTR]);
1239 new_progress.first = false;
1240@@ -593,9 +599,9 @@ ReplicatedRecoveryBackend::get_shards_to
1241 RecoveryBackend::interruptible_future<>
1242 ReplicatedRecoveryBackend::handle_pull(Ref<MOSDPGPull> m)
1243 {
1244- logger().debug("{}: {}", __func__, *m);
1245+ logger().debug("{}: {}", __func__, fmt::streamed(*m));
1246 if (pg.can_discard_replica_op(*m)) {
1247- logger().debug("{}: discarding {}", __func__, *m);
1248+ logger().debug("{}: discarding {}", __func__, fmt::streamed(*m));
1249 return seastar::now();
1250 }
1251 return seastar::do_with(m->take_pulls(), [this, from=m->from](auto& pulls) {
1252@@ -643,7 +649,7 @@ ReplicatedRecoveryBackend::_handle_pull_
1253 ceph::os::Transaction* t)
1254 {
1255 logger().debug("handle_pull_response {} {} data.size() is {} data_included: {}",
1256- pop.recovery_info, pop.after_progress, pop.data.length(), pop.data_included);
1257+ fmt::streamed(pop.recovery_info), fmt::streamed(pop.after_progress), pop.data.length(), pop.data_included);
1258
1259 const hobject_t &hoid = pop.soid;
1260 auto& recovery_waiter = recovering.at(hoid);
1261@@ -674,7 +680,7 @@ ReplicatedRecoveryBackend::_handle_pull_
1262 const bool first = pi.recovery_progress.first;
1263 pi.recovery_progress = pop.after_progress;
1264 logger().debug("new recovery_info {}, new progress {}",
1265- pi.recovery_info, pi.recovery_progress);
1266+ fmt::streamed(pi.recovery_info), fmt::streamed(pi.recovery_progress));
1267 interval_set<uint64_t> data_zeros;
1268 {
1269 uint64_t offset = pop.before_progress.data_recovered_to;
1270@@ -888,7 +894,7 @@ RecoveryBackend::interruptible_future<>
1271 ReplicatedRecoveryBackend::handle_push_reply(
1272 Ref<MOSDPGPushReply> m)
1273 {
1274- logger().debug("{}: {}", __func__, *m);
1275+ logger().debug("{}: {}", __func__, fmt::streamed(*m));
1276 auto from = m->from;
1277 auto& push_reply = m->replies[0]; //TODO: only one reply per message
1278
1279--- ceph-17.2.3/src/crimson/osd/shard_services.cc.orig 2022-07-28 23:52:12.000000000 +0200
1280+++ ceph-17.2.3/src/crimson/osd/shard_services.cc 2022-09-12 18:10:09.584797181 +0200
1281@@ -8,6 +8,7 @@
1282 #include "messages/MOSDPGTemp.h"
1283
1284 #include "osd/osd_perf_counters.h"
1285+#include "osd/osd_types_fmt.h"
1286 #include "osd/PeeringState.h"
1287 #include "crimson/common/config_proxy.h"
1288 #include "crimson/mgr/client.h"
1289@@ -191,7 +192,7 @@ seastar::future<> ShardServices::send_pg
1290 {
1291 if (pg_temp_wanted.empty())
1292 return seastar::now();
1293- logger().debug("{}: {}", __func__, pg_temp_wanted);
1294+ logger().debug("{}: {}", __func__, fmt::streamed(pg_temp_wanted));
1295 MURef<MOSDPGTemp> ms[2] = {nullptr, nullptr};
1296 for (auto& [pgid, pg_temp] : pg_temp_wanted) {
1297 auto& m = ms[pg_temp.forced];
1298--- ceph-17.2.3/src/crimson/osd/watch.cc.orig 2022-07-28 23:52:12.000000000 +0200
1299+++ ceph-17.2.3/src/crimson/osd/watch.cc 2022-09-14 16:25:52.640216209 +0200
1300@@ -10,6 +10,7 @@
1301 #include "crimson/osd/osd_operations/internal_client_request.h"
1302
1303 #include "messages/MWatchNotify.h"
1304+#include "osd/osd_types_fmt.h"
1305
1306
1307 namespace {
1308@@ -257,7 +258,7 @@ seastar::future<> Notify::send_completio
1309 {
1310 logger().info("{} -- {} in progress watchers, timedout watchers {}",
1311 __func__, watchers.size(), timedout_watchers.size());
1312- logger().debug("{} sending notify replies: {}", __func__, notify_replies);
1313+ logger().debug("{} sending notify replies: {}", __func__, fmt::streamed(notify_replies));
1314
1315 ceph::bufferlist empty;
1316 auto reply = crimson::make_message<MWatchNotify>(
1317--- ceph-17.2.3/src/crimson/osd/osd_operations/client_request.h.orig 2022-07-28 23:52:12.000000000 +0200
1318+++ ceph-17.2.3/src/crimson/osd/osd_operations/client_request.h 2022-09-12 21:54:55.796154929 +0200
1319@@ -98,3 +98,6 @@ private:
1320 };
1321
1322 }
1323+
1324+template <>
1325+struct fmt::formatter<crimson::osd::ClientRequest> : ostream_formatter {};
1326--- ceph-17.2.3/src/crimson/osd/osd_operations/background_recovery.cc.orig 2022-07-28 23:52:12.000000000 +0200
1327+++ ceph-17.2.3/src/crimson/osd/osd_operations/background_recovery.cc 2022-09-13 17:40:57.542629721 +0200
1328@@ -49,7 +49,7 @@ void BackgroundRecovery::dump_detail(For
1329
1330 seastar::future<> BackgroundRecovery::start()
1331 {
1332- logger().debug("{}: start", *this);
1333+ logger().debug("{}: start", fmt::streamed(*this));
1334
1335 IRef ref = this;
1336 auto maybe_delay = seastar::now();
1337@@ -67,7 +67,7 @@ seastar::future<> BackgroundRecovery::st
1338 }, pg);
1339 }).handle_exception_type([ref, this](const std::system_error& err) {
1340 if (err.code() == std::make_error_code(std::errc::interrupted)) {
1341- logger().debug("{} recovery interruped: {}", *pg, err.what());
1342+ logger().debug("{} recovery interruped: {}", fmt::streamed(*pg), err.what());
1343 return seastar::now();
1344 }
1345 return seastar::make_exception_future<>(err);
1346@@ -78,7 +78,7 @@ seastar::future<> BackgroundRecovery::st
1347 UrgentRecovery::interruptible_future<bool>
1348 UrgentRecovery::do_recovery()
1349 {
1350- logger().debug("{}: {}", __func__, *this);
1351+ logger().debug("{}: {}", __func__, fmt::streamed(*this));
1352 if (!pg->has_reset_since(epoch_started)) {
1353 return with_blocking_future_interruptible<interruptor::condition>(
1354 pg->get_recovery_handler()->recover_missing(soid, need)
1355--- ceph-17.2.3/src/crimson/osd/osd_operations/client_request.cc.orig 2022-07-28 23:52:12.000000000 +0200
1356+++ ceph-17.2.3/src/crimson/osd/osd_operations/client_request.cc 2022-09-12 22:14:51.672228672 +0200
1357@@ -1,6 +1,7 @@
1358 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
1359 // vim: ts=8 sw=2 smarttab expandtab
1360
1361+#include <fmt/os.h>
1362 #include <seastar/core/future.hh>
1363
1364 #include "messages/MOSDOp.h"
1365--- ceph-17.2.3/src/crimson/osd/osd_operations/client_request_common.cc.orig 2022-07-28 23:52:12.000000000 +0200
1366+++ ceph-17.2.3/src/crimson/osd/osd_operations/client_request_common.cc 2022-09-12 22:19:24.919860123 +0200
1367@@ -1,6 +1,7 @@
1368 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
1369 // vim: ts=8 sw=2 smarttab expandtab
1370
1371+#include "common/hobject_fmt.h"
1372 #include "crimson/osd/osd_operations/client_request_common.h"
1373 #include "crimson/osd/pg.h"
1374
1375@@ -43,10 +44,10 @@ bool CommonClientRequest::should_abort_r
1376 std::rethrow_exception(eptr);
1377 } catch(::crimson::common::actingset_changed& e) {
1378 if (e.is_primary()) {
1379- logger().debug("{} {} operation restart, acting set changed", __func__, op);
1380+ logger().debug("{} {} operation restart, acting set changed", __func__, fmt::streamed(op));
1381 return false;
1382 } else {
1383- logger().debug("{} {} operation abort, up primary changed", __func__, op);
1384+ logger().debug("{} {} operation abort, up primary changed", __func__, fmt::streamed(op));
1385 return true;
1386 }
1387 }
1388@@ -54,7 +55,7 @@ bool CommonClientRequest::should_abort_r
1389 assert(*eptr.__cxa_exception_type() ==
1390 typeid(crimson::common::system_shutdown_exception));
1391 crimson::get_logger(ceph_subsys_osd).debug(
1392- "{} {} operation skipped, system shutdown", __func__, op);
1393+ "{} {} operation skipped, system shutdown", __func__, fmt::streamed(op));
1394 return true;
1395 }
1396 }
1397--- ceph-17.2.3/src/crimson/osd/osd_operations/compound_peering_request.cc.orig 2022-07-28 23:52:12.000000000 +0200
1398+++ ceph-17.2.3/src/crimson/osd/osd_operations/compound_peering_request.cc 2022-09-13 16:37:59.084922640 +0200
1399@@ -4,6 +4,7 @@
1400 #include <seastar/core/future.hh>
1401
1402 #include "osd/PeeringState.h"
1403+#include "osd/osd_types_fmt.h"
1404
1405 #include "messages/MOSDPGCreate2.h"
1406
1407@@ -44,7 +45,7 @@ public:
1408
1409 PeeringEvent::interruptible_future<>
1410 complete_rctx(Ref<crimson::osd::PG> pg) final {
1411- logger().debug("{}: submitting ctx transaction", *this);
1412+ logger().debug("{}: submitting ctx transaction", fmt::streamed(*this));
1413 state->ctx.accept_buffered_messages(ctx);
1414 state = {};
1415 if (!pg) {
1416@@ -73,14 +74,14 @@ std::vector<crimson::OperationRef> handl
1417 "{}: {} e{} @{} "
1418 "history {} pi {}",
1419 __func__, pgid, created, created_stamp,
1420- history, pi);
1421+ history, fmt::streamed(pi));
1422 if (!pi.empty() &&
1423 m->epoch < pi.get_bounds().second) {
1424 logger().error(
1425 "got pg_create on {} epoch {} "
1426 "unmatched past_intervals {} (history {})",
1427 pgid, m->epoch,
1428- pi, history);
1429+ fmt::streamed(pi), history);
1430 } else {
1431 auto op = osd.get_shard_services().start_operation<PeeringSubEvent>(
1432 state,
1433@@ -141,7 +142,7 @@ void CompoundPeeringRequest::dump_detail
1434
1435 seastar::future<> CompoundPeeringRequest::start()
1436 {
1437- logger().info("{}: starting", *this);
1438+ logger().info("{}: starting", fmt::streamed(*this));
1439 auto state = seastar::make_lw_shared<compound_state>();
1440 auto blocker = std::make_unique<SubOpBlocker>(
1441 [&] {
1442@@ -154,16 +155,16 @@ seastar::future<> CompoundPeeringRequest
1443 }());
1444
1445 IRef ref = this;
1446- logger().info("{}: about to fork future", *this);
1447+ logger().info("{}: about to fork future", fmt::streamed(*this));
1448 return crimson::common::handle_system_shutdown(
1449 [this, ref, blocker=std::move(blocker), state]() mutable {
1450 return with_blocking_future(
1451 blocker->make_blocking_future(state->promise.get_future())
1452 ).then([this, blocker=std::move(blocker)](auto &&ctx) {
1453- logger().info("{}: sub events complete", *this);
1454+ logger().info("{}: sub events complete", fmt::streamed(*this));
1455 return osd.get_shard_services().dispatch_context_messages(std::move(ctx));
1456 }).then([this, ref=std::move(ref)] {
1457- logger().info("{}: complete", *this);
1458+ logger().info("{}: complete", fmt::streamed(*this));
1459 });
1460 });
434b7419 1461 }
c5b31b08
JB
1462--- ceph-17.2.3/src/crimson/osd/osd_operations/internal_client_request.cc.orig 2022-07-28 23:52:12.000000000 +0200
1463+++ ceph-17.2.3/src/crimson/osd/osd_operations/internal_client_request.cc 2022-09-13 16:38:05.051901752 +0200
1464@@ -21,7 +21,7 @@ InternalClientRequest::InternalClientReq
1465
1466 InternalClientRequest::~InternalClientRequest()
1467 {
1468- logger().debug("{}: destroying", *this);
1469+ logger().debug("{}: destroying", fmt::streamed(*this));
1470 }
1471
1472 void InternalClientRequest::print(std::ostream &) const
1473@@ -41,7 +41,7 @@ seastar::future<> InternalClientRequest:
1474 {
1475 return crimson::common::handle_system_shutdown([this] {
1476 return seastar::repeat([this] {
1477- logger().debug("{}: in repeat", *this);
1478+ logger().debug("{}: in repeat", fmt::streamed(*this));
1479 return interruptor::with_interruption([this]() mutable {
1480 return with_blocking_future_interruptible<interruptor::condition>(
1481 handle.enter(pp().wait_for_active)
1482@@ -57,7 +57,7 @@ seastar::future<> InternalClientRequest:
1483 return with_blocking_future_interruptible<interruptor::condition>(
1484 handle.enter(pp().get_obc)
1485 ).then_interruptible([this] () -> PG::load_obc_iertr::future<> {
1486- logger().debug("{}: getting obc lock", *this);
1487+ logger().debug("{}: getting obc lock", fmt::streamed(*this));
1488 return seastar::do_with(create_osd_ops(),
1489 [this](auto& osd_ops) mutable {
1490 logger().debug("InternalClientRequest: got {} OSDOps to execute",
1491--- ceph-17.2.3/src/crimson/osd/osd_operations/peering_event.cc.orig 2022-07-28 23:52:12.000000000 +0200
1492+++ ceph-17.2.3/src/crimson/osd/osd_operations/peering_event.cc 2022-09-13 16:38:13.575681414 +0200
1493@@ -12,6 +12,12 @@
1494 #include "crimson/osd/osd_operations/peering_event.h"
1495 #include "crimson/osd/osd_connection_priv.h"
1496
1497+template <>
1498+struct fmt::formatter<crimson::osd::PeeringEvent> : ostream_formatter {};
1499+
1500+template <>
1501+struct fmt::formatter<crimson::osd::RemotePeeringEvent> : ostream_formatter {};
1502+
1503 namespace {
1504 seastar::logger& logger() {
1505 return crimson::get_logger(ceph_subsys_osd);
1506@@ -157,7 +163,7 @@ PeeringEvent::interruptible_future<> Rem
1507 if (pg) {
1508 return PeeringEvent::complete_rctx(pg);
1509 } else {
1510- logger().debug("{}: OSDState is {}", *this, osd.state);
1511+ logger().debug("{}: OSDState is {}", *this, fmt::streamed(osd.state));
1512 return osd.state.when_active().then([this] {
1513 assert(osd.state.is_active());
1514 return shard_services.dispatch_context_messages(std::move(ctx));
1515@@ -167,7 +173,7 @@ PeeringEvent::interruptible_future<> Rem
1516
1517 seastar::future<> RemotePeeringEvent::complete_rctx_no_pg()
1518 {
1519- logger().debug("{}: OSDState is {}", *this, osd.state);
1520+ logger().debug("{}: OSDState is {}", *this, fmt::streamed(osd.state));
1521 return osd.state.when_active().then([this] {
1522 assert(osd.state.is_active());
1523 return shard_services.dispatch_context_messages(std::move(ctx));
1524--- ceph-17.2.3/src/crimson/osd/osd_operations/pg_advance_map.cc.orig 2022-07-28 23:52:12.000000000 +0200
1525+++ ceph-17.2.3/src/crimson/osd/osd_operations/pg_advance_map.cc 2022-09-13 17:27:42.507671946 +0200
1526@@ -53,7 +53,7 @@ seastar::future<> PGAdvanceMap::start()
1527 {
1528 using cached_map_t = boost::local_shared_ptr<const OSDMap>;
1529
1530- logger().debug("{}: start", *this);
1531+ logger().debug("{}: start", fmt::streamed(*this));
1532
1533 IRef ref = this;
1534 return with_blocking_future(
1535@@ -77,7 +77,7 @@ seastar::future<> PGAdvanceMap::start()
1536 if (do_init) {
1537 osd.pg_map.pg_created(pg->get_pgid(), pg);
1538 osd.shard_services.inc_pg_num();
1539- logger().info("PGAdvanceMap::start new pg {}", *pg);
1540+ logger().info("PGAdvanceMap::start new pg {}", fmt::streamed(*pg));
1541 }
1542 return seastar::when_all_succeed(
1543 pg->get_need_up_thru() \
1544@@ -90,7 +90,7 @@ seastar::future<> PGAdvanceMap::start()
1545 return osd.shard_services.send_pg_temp();
1546 });
1547 }).then([this, ref=std::move(ref)] {
1548- logger().debug("{}: complete", *this);
1549+ logger().debug("{}: complete", fmt::streamed(*this));
434b7419 1550 });
c5b31b08
JB
1551 }
1552
1553--- ceph-17.2.3/src/crimson/osd/osd_operations/recovery_subrequest.cc.orig 2022-07-28 23:52:12.000000000 +0200
1554+++ ceph-17.2.3/src/crimson/osd/osd_operations/recovery_subrequest.cc 2022-09-13 17:58:35.838043438 +0200
1555@@ -12,7 +12,7 @@ namespace {
1556 namespace crimson::osd {
1557
1558 seastar::future<> RecoverySubRequest::start() {
1559- logger().debug("{}: start", *this);
1560+ logger().debug("{}: start", fmt::streamed(*this));
1561
1562 IRef opref = this;
1563 return with_blocking_future(
1564--- ceph-17.2.3/src/crimson/osd/osd_operations/replicated_request.cc.orig 2022-07-28 23:52:12.000000000 +0200
1565+++ ceph-17.2.3/src/crimson/osd/osd_operations/replicated_request.cc 2022-09-13 17:30:37.646841371 +0200
1566@@ -58,7 +58,7 @@ RepRequest::PGPipeline &RepRequest::pp(P
1567
1568 seastar::future<> RepRequest::start()
1569 {
1570- logger().debug("{} start", *this);
1571+ logger().debug("{} start", fmt::streamed(*this));
1572 IRef ref = this;
1573
1574 return with_blocking_future(handle.enter(cp().await_map))
1575--- ceph-17.2.3/src/crimson/tools/store_nbd/tm_driver.cc.orig 2022-07-28 23:52:12.000000000 +0200
1576+++ ceph-17.2.3/src/crimson/tools/store_nbd/tm_driver.cc 2022-09-14 16:25:47.783294166 +0200
1577@@ -62,7 +62,7 @@ TMDriver::read_extents_ret TMDriver::rea
1578 t, offset, length
1579 ).si_then([this, &t, &pins, &ret](auto _pins) {
1580 _pins.swap(pins);
1581- logger().debug("read_extents: mappings {}", pins);
1582+ logger().debug("read_extents: mappings {}", fmt::streamed(pins));
1583 return trans_intr::do_for_each(
1584 pins.begin(),
1585 pins.end(),
1586@@ -78,7 +78,7 @@ TMDriver::read_extents_ret TMDriver::rea
1587 ret.push_back(std::make_pair(ref->get_laddr(), ref));
1588 logger().debug(
1589 "read_extents: got extent {}",
1590- *ref);
1591+ fmt::streamed(*ref));
1592 return seastar::now();
1593 });
1594 }).si_then([&ret] {
4c3aa1f1
JB
1595--- ceph-17.2.5/src/mon/LogMonitor.cc.orig 2023-03-22 06:45:27.743273749 +0100
1596+++ ceph-17.2.5/src/mon/LogMonitor.cc 2023-03-22 06:25:06.412142157 +0100
434b7419
JB
1597@@ -415,7 +415,7 @@ void LogMonitor::log_external(const LogE
1598 }
1599
1600 if (fd >= 0) {
4c3aa1f1 1601- fmt::format_to(std::back_inserter(file_log_buffer), "{}\n", le);
434b7419
JB
1602+ fmt::format_to(std::back_inserter(file_log_buffer), "{}\n", fmt::streamed(le));
1603 int err = safe_write(fd, file_log_buffer.data(), file_log_buffer.size());
1604 file_log_buffer.clear();
1605 if (err < 0) {
c5b31b08
JB
1606--- ceph-17.2.3/src/msg/Message.h.orig 2022-07-28 23:52:12.000000000 +0200
1607+++ ceph-17.2.3/src/msg/Message.h 2022-09-09 06:30:47.541433908 +0200
1608@@ -559,4 +559,12 @@ MURef<T> make_message(Args&&... args) {
1609 return {new T(std::forward<Args>(args)...), TOPNSPC::common::UniquePtrDeleter{}};
1610 }
1611 }
1612+
1613+#ifdef WITH_SEASTAR
1614+# include <fmt/ostream.h>
1615+
1616+template <>
1617+struct fmt::formatter<Message> : ostream_formatter {};
1618+#endif // WITH_SEASTAR
1619+
1620 #endif
1621--- ceph-17.2.3/src/msg/msg_fmt.h.orig 2022-07-28 23:52:12.000000000 +0200
1622+++ ceph-17.2.3/src/msg/msg_fmt.h 2022-09-07 16:56:49.030752970 +0200
1623@@ -24,3 +24,15 @@ struct fmt::formatter<entity_name_t> {
1624 return fmt::format_to(ctx.out(), "{}.{}", addr.type_str(), addr.num());
1625 }
1626 };
1627+
1628+template <>
1629+struct fmt::formatter<sockaddr_storage> : ostream_formatter {};
1630+
1631+template <>
1632+struct fmt::formatter<sockaddr *> : ostream_formatter {};
1633+
1634+template <>
1635+struct fmt::formatter<entity_addr_t> : ostream_formatter {};
1636+
1637+template <>
1638+struct fmt::formatter<entity_addrvec_t> : ostream_formatter {};
4c3aa1f1
JB
1639--- ceph-17.2.5/src/osd/osd_types_fmt.h.orig 2023-03-22 06:45:27.893272937 +0100
1640+++ ceph-17.2.5/src/osd/osd_types_fmt.h 2023-03-22 06:26:17.049743254 +0100
1641@@ -115,3 +115,18 @@ struct fmt::formatter<pg_t> {
1642 return fmt::format_to(ctx.out(), "{}.{:x}", pg.pool(), pg.m_seed);
c5b31b08
JB
1643 }
1644 };
1645+
1646+template <>
1647+struct fmt::formatter<coll_t> : ostream_formatter {};
1648+
1649+template <>
1650+struct fmt::formatter<pg_history_t> : ostream_formatter {};
1651+
1652+template <>
c5b31b08
JB
1653+struct fmt::formatter<spg_t> : ostream_formatter {};
1654+
1655+template <>
1656+struct fmt::formatter<watch_info_t> : ostream_formatter {};
1657+
1658+template <typename T>
1659+struct fmt::formatter<interval_set<T>> : ostream_formatter {};
1660--- ceph-17.2.3/src/seastar/include/seastar/core/print.hh.orig 2021-12-19 23:02:10.000000000 +0100
1661+++ ceph-17.2.3/src/seastar/include/seastar/core/print.hh 2022-09-09 18:12:17.899077047 +0200
1662@@ -155,3 +155,6 @@ fmt_print(std::ostream& os, const char*
434b7419
JB
1663 }
1664
434b7419 1665 }
c5b31b08
JB
1666+
1667+template <typename Clock, typename Dur>
1668+struct fmt::formatter<std::chrono::time_point<Clock, Dur>> : ostream_formatter {};
1669--- ceph-17.2.3/src/seastar/include/seastar/core/shared_ptr.hh.orig 2021-12-19 23:02:10.000000000 +0100
1670+++ ceph-17.2.3/src/seastar/include/seastar/core/shared_ptr.hh 2022-09-08 18:29:43.378965666 +0200
1671@@ -26,6 +26,7 @@
1672 #include <type_traits>
1673 #include <functional>
1674 #include <ostream>
1675+#include <fmt/ostream.h>
1676 #include <seastar/util/is_smart_ptr.hh>
1677 #include <seastar/util/indirect.hh>
1678
1679@@ -839,6 +840,9 @@ using shared_ptr_value_hash = indirect_h
434b7419 1680
434b7419
JB
1681 }
1682
c5b31b08
JB
1683+template <typename T>
1684+struct fmt::formatter<seastar::shared_ptr<T>> : ostream_formatter {};
434b7419 1685+
c5b31b08
JB
1686 namespace std {
1687
1688 template <typename T>
1689--- ceph-17.2.3/src/seastar/include/seastar/net/inet_address.hh.orig 2021-12-19 23:02:10.000000000 +0100
1690+++ ceph-17.2.3/src/seastar/include/seastar/net/inet_address.hh 2022-09-08 06:29:04.805312816 +0200
1691@@ -26,6 +26,7 @@
1692 #include <netinet/in.h>
1693 #include <stdexcept>
1694 #include <vector>
1695+#include <fmt/ostream.h>
1696
1697 #include <seastar/core/future.hh>
1698 #include <seastar/core/sstring.hh>
1699@@ -126,3 +127,6 @@ struct hash<seastar::net::inet_address>
1700 size_t operator()(const seastar::net::inet_address&) const;
1701 };
1702 }
434b7419 1703+
c5b31b08
JB
1704+template <>
1705+struct fmt::formatter<seastar::net::inet_address> : ostream_formatter {};
1706--- ceph-17.2.3/src/seastar/include/seastar/net/socket_defs.hh.orig 2021-12-19 23:02:10.000000000 +0100
1707+++ ceph-17.2.3/src/seastar/include/seastar/net/socket_defs.hh 2022-09-08 06:35:44.041541450 +0200
1708@@ -28,6 +28,7 @@
1709 #include <seastar/net/byteorder.hh>
1710 #include <seastar/net/unix_address.hh>
1711 #include <cassert>
1712+#include <fmt/ostream.h>
1713
1714 namespace seastar {
1715
1716@@ -184,3 +185,6 @@ struct hash<seastar::transport> {
1717 };
1718
1719 }
434b7419 1720+
c5b31b08
JB
1721+template <>
1722+struct fmt::formatter<seastar::socket_address> : ostream_formatter {};
1723--- ceph-17.2.3/src/seastar/include/seastar/util/backtrace.hh.orig 2021-12-19 23:02:10.000000000 +0100
1724+++ ceph-17.2.3/src/seastar/include/seastar/util/backtrace.hh 2022-09-07 17:09:17.119598672 +0200
1725@@ -162,6 +162,9 @@ struct hash<seastar::tasktrace> {
1726
1727 }
434b7419 1728
c5b31b08
JB
1729+template <>
1730+struct fmt::formatter<seastar::tasktrace> : ostream_formatter {};
1731+
1732 namespace seastar {
434b7419 1733
c5b31b08
JB
1734 using saved_backtrace = tasktrace;
1735--- ceph-17.2.3/src/seastar/include/seastar/util/log.hh.orig 2021-12-19 23:02:10.000000000 +0100
1736+++ ceph-17.2.3/src/seastar/include/seastar/util/log.hh 2022-09-07 17:16:57.860168355 +0200
1737@@ -524,4 +524,13 @@ std::ostream& operator<<(std::ostream&,
1738 std::ostream& operator<<(std::ostream&, const std::system_error&);
1739 }
434b7419 1740
c5b31b08
JB
1741+template <>
1742+struct fmt::formatter<std::exception_ptr> : ostream_formatter {};
1743+
1744+template <>
1745+struct fmt::formatter<std::exception> : ostream_formatter {};
1746+
1747+template <>
1748+struct fmt::formatter<std::system_error> : ostream_formatter {};
1749+
1750 /// @}
434b7419
JB
1751--- ceph-17.2.3/src/seastar/src/core/io_queue.cc.orig 2021-12-19 23:02:10.000000000 +0100
1752+++ ceph-17.2.3/src/seastar/src/core/io_queue.cc 2022-09-04 19:41:17.627629354 +0200
1753@@ -207,7 +207,7 @@ public:
1754 , _fq_entry(_ioq.request_fq_ticket(dnl))
1755 , _desc(std::make_unique<io_desc_read_write>(_ioq, pc, _stream, _fq_entry.ticket()))
1756 {
1757- io_log.trace("dev {} : req {} queue len {} ticket {}", _ioq.dev_id(), fmt::ptr(&*_desc), _dnl.length(), _fq_entry.ticket());
1758+ io_log.trace("dev {} : req {} queue len {} ticket {}", _ioq.dev_id(), fmt::ptr(&*_desc), _dnl.length(), fmt::streamed(_fq_entry.ticket()));
1759 }
1760
1761 queued_io_request(queued_io_request&&) = delete;
c5b31b08
JB
1762--- ceph-17.2.3/src/seastar/src/core/memory.cc.orig 2021-12-19 23:02:10.000000000 +0100
1763+++ ceph-17.2.3/src/seastar/src/core/memory.cc 2022-09-04 19:34:50.387337178 +0200
1764@@ -1616,6 +1616,15 @@ std::ostream& operator<<(std::ostream& o
1765 return os;
434b7419 1766 }
434b7419 1767
c5b31b08
JB
1768+}
1769+}
1770+
1771+template <>
1772+struct fmt::formatter<seastar::memory::human_readable_value> : ostream_formatter {};
1773+
1774+namespace seastar {
1775+namespace memory {
1776+
1777 static human_readable_value to_human_readable_value(uint64_t value, uint64_t step, uint64_t precision, const std::array<char, 5>& suffixes) {
1778 if (!value) {
1779 return {0, suffixes[0]};
1780--- ceph-17.2.3/src/seastar/src/core/reactor.cc.orig 2021-12-19 23:02:10.000000000 +0100
1781+++ ceph-17.2.3/src/seastar/src/core/reactor.cc 2022-09-04 19:39:35.978957648 +0200
434b7419
JB
1782@@ -3487,7 +3487,7 @@ reactor_options::reactor_options(program
1783 " The diagnostics will be written to the seastar_memory logger, with error level."
1784 " Note that if the seastar_memory logger is set to debug or trace level, the diagnostics will be logged irrespective of this setting.")
1785 , reactor_backend(*this, "reactor-backend", backend_selector_candidates(), reactor_backend_selector::default_backend().name(),
1786- format("Internal reactor implementation ({})", reactor_backend_selector::available()))
1787+ format("Internal reactor implementation ({})", fmt::streamed(reactor_backend_selector::available())))
1788 , aio_fsync(*this, "aio-fsync", kernel_supports_aio_fsync(),
1789 "Use Linux aio for fsync() calls. This reduces latency; requires Linux 4.18 or later.")
1790 , max_networking_io_control_blocks(*this, "max-networking-io-control-blocks", 10000,
434b7419
JB
1791--- ceph-17.2.3/src/seastar/src/net/dns.cc.orig 2021-12-19 23:02:10.000000000 +0100
1792+++ ceph-17.2.3/src/seastar/src/net/dns.cc 2022-09-04 20:36:25.288504129 +0200
1793@@ -238,7 +238,7 @@ public:
1794 sstring name;
1795 };
1796
1797- dns_log.debug("Query name {} ({})", name, family);
1798+ dns_log.debug("Query name {} ({})", name, fmt::streamed(family));
1799
1800 if (!family) {
1801 auto res = inet_address::parse_numerical(name);
434b7419
JB
1802--- ceph-17.2.3/src/seastar/src/rpc/rpc.cc.orig 2021-12-19 23:02:10.000000000 +0100
1803+++ ceph-17.2.3/src/seastar/src/rpc/rpc.cc 2022-09-04 20:49:25.379426601 +0200
434b7419
JB
1804@@ -790,7 +790,7 @@ namespace rpc {
1805 f = smp::submit_to(_parent_id.shard(), [this, c = make_foreign(static_pointer_cast<rpc::connection>(shared_from_this()))] () mutable {
1806 auto sit = _servers.find(*_server._options.streaming_domain);
1807 if (sit == _servers.end()) {
1808- throw std::logic_error(format("Shard {:d} does not have server with streaming domain {:x}", this_shard_id(), *_server._options.streaming_domain).c_str());
1809+ throw std::logic_error(format("Shard {:d} does not have server with streaming domain {}", this_shard_id(), fmt::streamed(*_server._options.streaming_domain)).c_str());
1810 }
1811 auto s = sit->second;
1812 auto it = s->_conns.find(_parent_id);
1813@@ -1010,7 +1010,7 @@ future<> server::connection::send_unknow
1814 {
1815 if (_options.streaming_domain) {
1816 if (_servers.find(*_options.streaming_domain) != _servers.end()) {
1817- throw std::runtime_error(format("An RPC server with the streaming domain {} is already exist", *_options.streaming_domain));
1818+ throw std::runtime_error(format("An RPC server with the streaming domain {} is already exist", fmt::streamed(*_options.streaming_domain)));
1819 }
1820 _servers[*_options.streaming_domain] = this;
1821 }
c5b31b08
JB
1822--- ceph-17.2.3/src/test/crimson/seastore/onode_tree/test_value.h.orig 2022-07-28 23:52:12.000000000 +0200
1823+++ ceph-17.2.3/src/test/crimson/seastore/onode_tree/test_value.h 2022-09-11 08:56:20.792343731 +0200
1824@@ -138,12 +138,12 @@ class TestValue final : public Value {
434b7419 1825 }
c5b31b08
JB
1826 default:
1827 logger().error("OTree::TestValue::Replay: got unknown op {} when replay {:#x}+{:#x}",
1828- op, value_addr, payload_mut.get_length());
1829+ static_cast<uint8_t>(op), value_addr, payload_mut.get_length());
1830 ceph_abort();
434b7419 1831 }
c5b31b08
JB
1832 } catch (buffer::error& e) {
1833 logger().error("OTree::TestValue::Replay: got decode error {} when replay {:#x}+{:#x}",
1834- e, value_addr, payload_mut.get_length());
1835+ fmt::streamed(e), value_addr, payload_mut.get_length());
1836 ceph_abort();
1837 }
434b7419 1838 }
c5b31b08
JB
1839--- ceph-17.2.3/src/tools/neorados.cc.orig 2022-08-30 09:00:26.418417475 +0200
1840+++ ceph-17.2.3/src/tools/neorados.cc 2022-09-04 20:23:19.850824080 +0200
1841@@ -55,7 +55,7 @@ void printseq(const V& v, std::ostream&
1842 {
1843 std::for_each(v.cbegin(), v.cend(),
1844 [&m](const auto& e) {
1845- fmt::print(m, "{}\n", e);
1846+ fmt::print(m, "{}\n", fmt::streamed(e));
1847 });
434b7419
JB
1848 }
1849
c5b31b08
JB
1850@@ -321,7 +321,7 @@ int main(int argc, char* argv[])
1851 po::notify(vm);
434b7419 1852
c5b31b08
JB
1853 if (vm.count("help")) {
1854- fmt::print("{}", desc);
1855+ fmt::print("{}", fmt::streamed(desc));
1856 fmt::print("Commands:\n");
1857 for (const auto& cmd : commands) {
1858 fmt::print(" {} {}{}{}\n",
1859--- ceph-17.2.3/src/tools/crimson/perf_crimson_msgr.cc.orig 2022-07-28 23:52:12.000000000 +0200
1860+++ ceph-17.2.3/src/tools/crimson/perf_crimson_msgr.cc 2022-09-09 19:53:09.761115666 +0200
1861@@ -14,6 +14,7 @@
1862 #include <seastar/core/smp.hh>
434b7419 1863
c5b31b08
JB
1864 #include "common/ceph_time.h"
1865+#include "msg/msg_fmt.h"
1866 #include "messages/MOSDOp.h"
434b7419 1867
c5b31b08 1868 #include "crimson/auth/DummyAuth.h"
This page took 0.544241 seconds and 4 git commands to generate.