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