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
6 #include <fmt/format.h>
7 +#include <fmt/ostream.h>
8 +#include <boost/intrusive_ptr.hpp>
10 #include <string_view>
12 @@ -26,3 +28,21 @@ struct fmt::formatter<std::map<A, B, Com
13 return fmt::format_to(ctx.out(), "}}");
17 +template <class A, class B>
18 +struct fmt::formatter<std::pair<A, B>> : ostream_formatter {};
20 +template <class A, class Alloc>
21 +struct fmt::formatter<std::vector<A, Alloc>> : ostream_formatter {};
23 +template <typename T>
24 +struct fmt::formatter<std::optional<T>> : ostream_formatter {};
26 +template <class A, class Comp, class Alloc>
27 +struct fmt::formatter<std::set<A, Comp, Alloc>> : ostream_formatter {};
30 +struct fmt::formatter<sha_digest_t<S>> : ostream_formatter {};
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
37 #include "common/LogEntry.h"
38 #include "log/Entry.h"
39 #include "log/SubsystemMap.h"
40 +#include "msg/msg_fmt.h"
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);
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
56 #include "messages/MCommandReply.h"
57 #include "crimson/common/log.h"
58 #include "crimson/net/Socket.h"
59 +#include "include/types_fmt.h"
61 using namespace crimson::common;
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
66 #include <seastar/core/scollectd_api.hh>
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"
73 @@ -299,7 +300,7 @@ static ghobject_t test_ops_get_object_na
74 // the return type of `fmt::format` is `std::string`
75 using namespace fmt::literals;
76 throw std::invalid_argument{
77 - "Invalid pool '{}'"_format(*pool_arg)
78 + fmt::format("Invalid pool '{}'", *pool_arg)
82 --- ceph-17.2.3/src/crimson/admin/pg_commands.cc.orig 2022-07-28 23:52:12.000000000 +0200
83 +++ ceph-17.2.3/src/crimson/admin/pg_commands.cc 2022-09-14 20:59:47.803920736 +0200
85 #include "crimson/admin/admin_socket.h"
86 #include "crimson/osd/osd.h"
87 #include "crimson/osd/pg.h"
88 +#include "osd/osd_types_fmt.h"
91 using crimson::osd::OSD;
92 --- ceph-17.2.3/src/crimson/common/gated.h.orig 2022-07-28 23:52:12.000000000 +0200
93 +++ ceph-17.2.3/src/crimson/common/gated.h 2022-09-05 17:55:05.174809923 +0200
94 @@ -28,11 +28,11 @@ class Gated {
95 ).handle_exception([what, &who] (std::exception_ptr eptr) {
96 if (*eptr.__cxa_exception_type() == typeid(system_shutdown_exception)) {
98 - "{}, {} skipped, system shutdown", who, what);
99 + "{}, {} skipped, system shutdown", fmt::streamed(who), what);
102 gated_logger().error(
103 - "{} dispatch() {} caught exception: {}", who, what, eptr);
104 + "{} dispatch() {} caught exception: {}", fmt::streamed(who), what, eptr);
105 assert(*eptr.__cxa_exception_type()
106 == typeid(seastar::gate_closed_exception));
108 --- ceph-17.2.3/src/crimson/common/logclient.cc.orig 2022-07-28 23:52:12.000000000 +0200
109 +++ ceph-17.2.3/src/crimson/common/logclient.cc 2022-09-08 16:51:12.587841466 +0200
111 #include "crimson/common/logclient.h"
112 #include "include/str_map.h"
113 +#include "include/types_fmt.h"
114 #include "messages/MLog.h"
115 #include "messages/MLogAck.h"
116 #include "messages/MMonGetVersion.h"
117 @@ -286,7 +287,7 @@ MessageURef LogClient::_get_mon_log_mess
118 ceph_assert(log_iter != log_queue.end());
119 out_log_queue.push_back(*log_iter);
120 last_log_sent = log_iter->seq;
121 - logger().debug(" will send {}", *log_iter);
122 + logger().debug(" will send {}", fmt::streamed(*log_iter));
126 @@ -332,7 +333,7 @@ const EntityName& LogClient::get_myname(
128 seastar::future<> LogClient::handle_log_ack(Ref<MLogAck> m)
130 - logger().debug("handle_log_ack {}", *m);
131 + logger().debug("handle_log_ack {}", fmt::streamed(*m));
133 version_t last = m->last;
135 @@ -341,7 +342,7 @@ seastar::future<> LogClient::handle_log_
136 const LogEntry &entry(*q);
137 if (entry.seq > last)
139 - logger().debug(" logged {}", entry);
140 + logger().debug(" logged {}", fmt::streamed(entry));
141 q = log_queue.erase(q);
143 return seastar::now();
144 --- ceph-17.2.3/src/crimson/mgr/client.cc.orig 2022-07-28 23:52:12.000000000 +0200
145 +++ ceph-17.2.3/src/crimson/mgr/client.cc 2022-09-05 06:26:48.430701643 +0200
146 @@ -134,7 +134,7 @@ seastar::future<> Client::handle_mgr_map
147 seastar::future<> Client::handle_mgr_conf(crimson::net::ConnectionRef,
148 Ref<MMgrConfigure> m)
150 - logger().info("{} {}", __func__, *m);
151 + logger().info("{} {}", __func__, fmt::streamed(*m));
153 auto report_period = std::chrono::seconds{m->stats_period};
154 if (report_period.count()) {
155 --- ceph-17.2.3/src/crimson/mon/MonClient.cc.orig 2022-07-28 23:52:12.000000000 +0200
156 +++ ceph-17.2.3/src/crimson/mon/MonClient.cc 2022-09-08 19:41:15.770921116 +0200
158 #include "auth/RotatingKeyRing.h"
160 #include "common/hostname.h"
161 +#include "include/types_fmt.h"
162 +#include "msg/msg_fmt.h"
164 #include "crimson/auth/KeyRing.h"
165 #include "crimson/common/config_proxy.h"
166 @@ -217,7 +219,7 @@ Connection::do_auth_single(Connection::r
168 case request_t::general:
169 if (int ret = auth->build_request(m->auth_payload); ret) {
170 - logger().error("missing/bad key for '{}'", local_conf()->name);
171 + logger().error("missing/bad key for '{}'", fmt::streamed(local_conf()->name));
172 throw std::system_error(make_error_code(
173 crimson::net::error::negotiation_failure));
175 @@ -225,7 +225,7 @@ Connection::do_auth_single(Connection::r
179 - logger().info("sending {}", *m);
180 + logger().info("sending {}", fmt::streamed(*m));
181 return conn->send(std::move(m)).then([this] {
182 logger().info("waiting");
183 return auth_reply.get_shared_future();
184 @@ -237,8 +237,8 @@ Connection::do_auth_single(Connection::r
187 "do_auth_single: mon {} => {} returns {}: {}",
188 - conn->get_messenger()->get_myaddr(),
189 - conn->get_peer_addr(), *m, m->result);
190 + conn->get_messenger()->get_myaddr(),
191 + conn->get_peer_addr(), fmt::streamed(*m), m->result);
192 auto p = m->result_bl.cbegin();
193 auto ret = auth->handle_response(m->result, p,
195 @@ -807,8 +807,8 @@ seastar::future<> Client::handle_auth_re
198 "handle_auth_reply mon {} => {} returns {}: {}",
199 - conn->get_messenger()->get_myaddr(),
200 - conn->get_peer_addr(), *m, m->result);
201 + conn->get_messenger()->get_myaddr(),
202 + conn->get_peer_addr(), fmt::streamed(*m), m->result);
203 auto found = std::find_if(pending_conns.begin(), pending_conns.end(),
204 [peer_addr = conn->get_peer_addr()](auto& mc) {
205 return mc->is_my_peer(peer_addr);
206 --- ceph-17.2.3/src/crimson/net/Connection.h.orig 2022-07-28 23:52:12.000000000 +0200
207 +++ ceph-17.2.3/src/crimson/net/Connection.h 2022-09-06 16:55:17.884653125 +0200
208 @@ -173,3 +173,6 @@ inline std::ostream& operator<<(std::ost
211 } // namespace crimson::net
214 +struct fmt::formatter<crimson::net::Connection> : ostream_formatter {};
215 --- ceph-17.2.3/src/crimson/net/SocketConnection.h.orig 2022-07-28 23:52:12.000000000 +0200
216 +++ ceph-17.2.3/src/crimson/net/SocketConnection.h 2022-09-08 21:30:24.173383344 +0200
217 @@ -104,3 +104,6 @@ class SocketConnection : public Connecti
220 } // namespace crimson::net
223 +struct fmt::formatter<crimson::net::SocketConnection> : ostream_formatter {};
224 --- ceph-17.2.3/src/crimson/net/ProtocolV2.cc.orig 2022-07-28 23:52:12.000000000 +0200
225 +++ ceph-17.2.3/src/crimson/net/ProtocolV2.cc 2022-09-09 19:40:17.957323611 +0200
227 #include <fmt/format.h>
228 #include "include/msgr.h"
229 #include "include/random.h"
230 +#include "msg/msg_fmt.h"
232 #include "crimson/auth/AuthClient.h"
233 #include "crimson/auth/AuthServer.h"
234 @@ -604,7 +605,7 @@ seastar::future<> ProtocolV2::client_aut
235 return handle_auth_reply();
237 } catch (const crimson::auth::error& e) {
238 - logger().error("{} get_initial_auth_request returned {}", conn, e);
239 + logger().error("{} get_initial_auth_request returned {}", conn, fmt::streamed(e));
240 abort_in_close(*this, true);
241 return seastar::now();
243 --- ceph-17.2.3/src/crimson/net/Socket.cc.orig 2022-07-28 23:52:12.000000000 +0200
244 +++ ceph-17.2.3/src/crimson/net/Socket.cc 2022-09-08 21:47:01.195369872 +0200
247 #include <seastar/core/when_all.hh>
249 +#include "msg/msg_fmt.h"
250 #include "crimson/common/log.h"
253 --- ceph-17.2.3/src/crimson/net/SocketMessenger.cc.orig 2022-07-28 23:52:12.000000000 +0200
254 +++ ceph-17.2.3/src/crimson/net/SocketMessenger.cc 2022-09-08 21:28:14.640010471 +0200
258 #include <boost/functional/hash.hpp>
261 #include "auth/Auth.h"
262 +#include "msg/msg_fmt.h"
267 +struct fmt::formatter<crimson::net::SocketMessenger> : ostream_formatter {};
270 seastar::logger& logger() {
271 return crimson::get_logger(ceph_subsys_ms);
272 --- ceph-17.2.3/src/crimson/os/cyanstore/cyan_store.cc.orig 2022-07-28 23:52:12.000000000 +0200
273 +++ ceph-17.2.3/src/crimson/os/cyanstore/cyan_store.cc 2022-09-12 21:46:02.891292495 +0200
275 #include <fmt/format.h>
276 #include <fmt/ostream.h>
278 +#include "common/hobject_fmt.h"
279 #include "common/safe_io.h"
280 #include "os/Transaction.h"
281 +#include "osd/osd_types_fmt.h"
283 #include "crimson/common/buffer_io.h"
284 #include "crimson/common/config_proxy.h"
285 @@ -115,7 +117,7 @@ CyanStore::mkfs_ertr::future<> CyanStore
287 osd_fsid = new_osd_fsid;
289 - return write_meta("fsid", fmt::format("{}", osd_fsid));
290 + return write_meta("fsid", fmt::format("{}", fmt::streamed(osd_fsid)));
292 return crimson::stateful_ec{ singleton_ec<read_meta_errmsg>() };
294 @@ -123,7 +125,7 @@ CyanStore::mkfs_ertr::future<> CyanStore
295 if (!osd_fsid.parse(fsid_str.c_str())) {
296 return crimson::stateful_ec{ singleton_ec<parse_fsid_errmsg>() };
297 } else if (osd_fsid != new_osd_fsid) {
298 - logger().error("on-disk fsid {} != provided {}", osd_fsid, new_osd_fsid);
299 + logger().error("on-disk fsid {} != provided {}", fmt::streamed(osd_fsid), fmt::streamed(new_osd_fsid));
300 return crimson::stateful_ec{ singleton_ec<match_ofsid_errmsg>() };
302 return mkfs_ertr::now();
303 --- ceph-17.2.3/src/crimson/os/seastore/cache.h.orig 2022-07-28 23:52:12.000000000 +0200
304 +++ ceph-17.2.3/src/crimson/os/seastore/cache.h 2022-09-14 16:25:29.215651215 +0200
306 #include "seastar/core/shared_future.hh"
308 #include "include/buffer.h"
309 +#include "include/types_fmt.h"
311 #include "crimson/os/seastore/logging.h"
312 #include "crimson/os/seastore/seastore_types.h"
313 @@ -330,7 +331,7 @@ public:
315 SUBDEBUGT(seastore_cache,
316 "Read extent at offset {} in cache: {}",
318 + t, offset, fmt::streamed(*ref));
320 t.add_to_read_set(ref);
321 return get_extent_iertr::make_ready_future<TCachedExtentRef<T>>(
322 --- ceph-17.2.3/src/crimson/os/seastore/cached_extent.h.orig 2022-07-28 23:52:12.000000000 +0200
323 +++ ceph-17.2.3/src/crimson/os/seastore/cached_extent.h 2022-09-10 07:10:31.584611548 +0200
324 @@ -837,3 +837,12 @@ using lextent_list_t = addr_extent_list_
325 laddr_t, TCachedExtentRef<T>>;
330 +struct fmt::formatter<crimson::os::seastore::CachedExtent> : ostream_formatter {};
333 +struct fmt::formatter<crimson::os::seastore::LogicalCachedExtent> : ostream_formatter {};
336 +struct fmt::formatter<crimson::os::seastore::LBAPin> : ostream_formatter {};
337 --- ceph-17.2.3/src/crimson/os/seastore/object_data_handler.h.orig 2022-07-28 23:52:12.000000000 +0200
338 +++ ceph-17.2.3/src/crimson/os/seastore/object_data_handler.h 2022-09-11 17:30:31.253984098 +0200
339 @@ -119,3 +119,6 @@ private:
345 +struct fmt::formatter<crimson::os::seastore::ObjectDataBlock> : ostream_formatter {};
346 --- ceph-17.2.3/src/crimson/os/seastore/onode.h.orig 2022-07-28 23:52:12.000000000 +0200
347 +++ ceph-17.2.3/src/crimson/os/seastore/onode.h 2022-09-11 18:15:39.632135931 +0200
348 @@ -81,3 +81,6 @@ public:
349 std::ostream& operator<<(std::ostream &out, const Onode &rhs);
350 using OnodeRef = boost::intrusive_ptr<Onode>;
354 +struct fmt::formatter<crimson::os::seastore::Onode> : ostream_formatter {};
355 --- ceph-17.2.3/src/crimson/os/seastore/root_block.h.orig 2022-07-28 23:52:12.000000000 +0200
356 +++ ceph-17.2.3/src/crimson/os/seastore/root_block.h 2022-09-09 21:38:11.463439115 +0200
357 @@ -88,3 +88,6 @@ struct RootBlock : CachedExtent {
358 using RootBlockRef = RootBlock::Ref;
363 +struct fmt::formatter<crimson::os::seastore::RootBlock> : ostream_formatter {};
364 --- ceph-17.2.3/src/crimson/os/seastore/seastore_types.h.orig 2022-07-28 23:52:12.000000000 +0200
365 +++ ceph-17.2.3/src/crimson/os/seastore/seastore_types.h 2022-09-10 07:02:01.794683539 +0200
370 +#include <fmt/ostream.h>
372 #include "include/byteorder.h"
373 #include "include/denc.h"
374 @@ -1589,3 +1590,30 @@ struct denc_traits<crimson::os::seastore
375 reinterpret_cast<char*>(&o));
380 +struct fmt::formatter<crimson::os::seastore::segment_id_t> : ostream_formatter {};
383 +struct fmt::formatter<crimson::os::seastore::paddr_t> : ostream_formatter {};
386 +struct fmt::formatter<crimson::os::seastore::device_type_t> : ostream_formatter {};
389 +struct fmt::formatter<crimson::os::seastore::journal_seq_t> : ostream_formatter {};
392 +struct fmt::formatter<crimson::os::seastore::delta_info_t> : ostream_formatter {};
395 +struct fmt::formatter<crimson::os::seastore::laddr_list_t> : ostream_formatter {};
398 +struct fmt::formatter<crimson::os::seastore::extent_types_t> : ostream_formatter {};
401 +struct fmt::formatter<crimson::os::seastore::extent_info_t> : ostream_formatter {};
404 +struct fmt::formatter<crimson::os::seastore::segment_header_t> : ostream_formatter {};
405 --- ceph-17.2.3/src/crimson/os/seastore/segment_manager.h.orig 2022-07-28 23:52:12.000000000 +0200
406 +++ ceph-17.2.3/src/crimson/os/seastore/segment_manager.h 2022-09-09 20:43:03.983800973 +0200
407 @@ -261,3 +261,12 @@ WRITE_CLASS_DENC(
409 crimson::os::seastore::block_sm_superblock_t
413 +struct fmt::formatter<crimson::os::seastore::block_sm_superblock_t> : ostream_formatter {};
416 +struct fmt::formatter<crimson::os::seastore::segment_manager_config_t> : ostream_formatter {};
419 +struct fmt::formatter<crimson::os::seastore::Segment::segment_state_t> : ostream_formatter {};
420 --- ceph-17.2.3/src/crimson/os/seastore/transaction.h.orig 2022-07-28 23:52:12.000000000 +0200
421 +++ ceph-17.2.3/src/crimson/os/seastore/transaction.h 2022-09-09 21:34:09.507446054 +0200
426 +#include <fmt/ostream.h>
428 #include <boost/intrusive/list.hpp>
430 @@ -505,3 +506,6 @@ template <typename T>
431 using with_trans_ertr = typename T::base_ertr::template extend<crimson::ct_error::eagain>;
436 +struct fmt::formatter<crimson::os::seastore::Transaction::src_t> : ostream_formatter {};
437 --- ceph-17.2.3/src/crimson/os/seastore/transaction_manager.h.orig 2022-07-28 23:52:12.000000000 +0200
438 +++ ceph-17.2.3/src/crimson/os/seastore/transaction_manager.h 2022-09-14 16:25:42.966374227 +0200
439 @@ -163,7 +163,7 @@ public:
440 lba_manager->add_pin(extent.get_pin());
442 ).si_then([FNAME, &t](auto ref) mutable -> ret {
443 - SUBDEBUGT(seastore_tm, "got extent {}", t, *ref);
444 + SUBDEBUGT(seastore_tm, "got extent {}", t, fmt::streamed(*ref));
445 return pin_to_extent_ret<T>(
446 interruptible::ready_future_marker{},
448 @@ -313,7 +313,7 @@ public:
449 ext->set_pin(std::move(ref));
450 stats.extents_allocated_total++;
451 stats.extents_allocated_bytes += len;
452 - SUBDEBUGT(seastore_tm, "new extent: {}, laddr_hint: {}", t, *ext, laddr_hint);
453 + SUBDEBUGT(seastore_tm, "new extent: {}, laddr_hint: {}", t, fmt::streamed(*ext), laddr_hint);
454 return alloc_extent_iertr::make_ready_future<TCachedExtentRef<T>>(
457 --- ceph-17.2.3/src/crimson/os/seastore/extent_reader.cc.orig 2022-07-28 23:52:12.000000000 +0200
458 +++ ceph-17.2.3/src/crimson/os/seastore/extent_reader.cc 2022-09-09 21:47:09.444920952 +0200
459 @@ -44,7 +44,7 @@ ExtentReader::read_segment_header(segmen
461 "ExtentReader::read_segment_header: segment {} unable to decode "
462 "header, skipping -- {}",
464 + segment, fmt::streamed(e));
465 return crimson::ct_error::enodata::make();
468 --- ceph-17.2.3/src/crimson/os/seastore/journal.cc.orig 2022-07-28 23:52:12.000000000 +0200
469 +++ ceph-17.2.3/src/crimson/os/seastore/journal.cc 2022-09-09 21:45:01.061536954 +0200
471 // vim: ts=8 sw=2 smarttab
476 #include <boost/iterator/counting_iterator.hpp>
478 --- ceph-17.2.3/src/crimson/os/seastore/seastore.cc.orig 2022-07-28 23:52:12.000000000 +0200
479 +++ ceph-17.2.3/src/crimson/os/seastore/seastore.cc 2022-09-12 21:36:15.057012562 +0200
481 #include <seastar/core/fstream.hh>
482 #include <seastar/core/shared_mutex.hh>
484 +#include "common/hobject_fmt.h"
485 #include "common/safe_io.h"
486 #include "include/stringify.h"
487 #include "os/Transaction.h"
488 +#include "osd/osd_types_fmt.h"
490 #include "crimson/common/buffer_io.h"
492 @@ -124,7 +126,7 @@ void SeaStore::register_metrics()
494 for (auto& [op_type, label] : labels_by_op_type) {
495 auto desc = fmt::format("latency of seastore operation (optype={})",
497 + static_cast<uint8_t>(op_type));
501 --- ceph-17.2.3/src/crimson/os/seastore/seastore_types.cc.orig 2022-07-28 23:52:12.000000000 +0200
502 +++ ceph-17.2.3/src/crimson/os/seastore/seastore_types.cc 2022-09-09 20:12:53.796095116 +0200
503 @@ -12,6 +12,9 @@ seastar::logger& logger() {
508 +struct fmt::formatter<ceph::buffer::error> : ostream_formatter {};
510 namespace crimson::os::seastore {
512 std::ostream& operator<<(std::ostream& out, const seastore_meta_t& meta)
513 --- ceph-17.2.3/src/crimson/os/seastore/collection_manager/collection_flat_node.h.orig 2022-07-28 23:52:12.000000000 +0200
514 +++ ceph-17.2.3/src/crimson/os/seastore/collection_manager/collection_flat_node.h 2022-09-11 14:36:42.815251945 +0200
515 @@ -182,3 +182,6 @@ struct CollectionNode
517 using CollectionNodeRef = CollectionNode::CollectionNodeRef;
521 +struct fmt::formatter<crimson::os::seastore::collection_manager::CollectionNode> : ostream_formatter {};
522 --- ceph-17.2.3/src/crimson/os/seastore/collection_manager/collection_flat_node.cc.orig 2022-07-28 23:52:12.000000000 +0200
523 +++ ceph-17.2.3/src/crimson/os/seastore/collection_manager/collection_flat_node.cc 2022-09-12 21:40:23.250020447 +0200
526 #include "include/buffer.h"
527 #include "osd/osd_types.h"
528 +#include "osd/osd_types_fmt.h"
529 #include "crimson/os/seastore/transaction_manager.h"
530 #include "crimson/os/seastore/collection_manager/collection_flat_node.h"
532 --- ceph-17.2.3/src/crimson/os/seastore/lba_manager/btree/btree_range_pin.h.orig 2022-07-28 23:52:12.000000000 +0200
533 +++ ceph-17.2.3/src/crimson/os/seastore/lba_manager/btree/btree_range_pin.h 2022-09-10 07:02:50.047200663 +0200
537 #include <boost/intrusive/set.hpp>
538 +#include <fmt/ostream.h>
540 #include "crimson/os/seastore/cached_extent.h"
541 #include "crimson/os/seastore/seastore_types.h"
542 @@ -290,3 +291,6 @@ public:
548 +struct fmt::formatter<crimson::os::seastore::lba_manager::btree::btree_range_pin_t> : ostream_formatter {};
549 --- ceph-17.2.3/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h.orig 2022-07-28 23:52:12.000000000 +0200
550 +++ ceph-17.2.3/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h 2022-09-10 07:35:43.533763577 +0200
551 @@ -563,3 +563,9 @@ struct LBALeafNode
552 using LBALeafNodeRef = TCachedExtentRef<LBALeafNode>;
557 +struct fmt::formatter<crimson::os::seastore::lba_manager::btree::LBAInternalNode> : ostream_formatter {};
560 +struct fmt::formatter<crimson::os::seastore::lba_manager::btree::LBALeafNode> : ostream_formatter {};
561 --- ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node.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.h 2022-09-10 08:25:44.417337428 +0200
563 @@ -114,3 +114,6 @@ omap_load_extent_iertr::future<OMapNodeR
564 omap_load_extent(omap_context_t oc, laddr_t laddr, depth_t depth);
569 +struct fmt::formatter<crimson::os::seastore::omap_manager::OMapNode> : ostream_formatter {};
570 --- 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
571 +++ ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h 2022-09-10 13:55:41.723892064 +0200
572 @@ -235,3 +235,15 @@ using OMapLeafNodeRef = OMapLeafNode::OM
573 std::ostream &operator<<(std::ostream &out, const omap_inner_key_t &rhs);
574 std::ostream &operator<<(std::ostream &out, const omap_leaf_key_t &rhs);
578 +struct fmt::formatter<crimson::os::seastore::omap_manager::OMapInnerNode> : ostream_formatter {};
581 +struct fmt::formatter<crimson::os::seastore::omap_manager::OMapLeafNode> : ostream_formatter {};
584 +struct fmt::formatter<boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapInnerNode>> : ostream_formatter {};
587 +struct fmt::formatter<boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapLeafNode>> : ostream_formatter {};
588 --- ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/btree_omap_manager.cc.orig 2022-07-28 23:52:12.000000000 +0200
589 +++ ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/btree_omap_manager.cc 2022-09-10 07:53:44.517113694 +0200
590 @@ -130,7 +130,7 @@ BtreeOMapManager::omap_set_key(
591 const std::string &key,
592 const ceph::bufferlist &value)
594 - logger().debug("{}: {} -> {}", __func__, key, value);
595 + logger().debug("{}: {} -> {}", __func__, key, fmt::streamed(value));
596 return get_omap_root(
597 get_omap_context(t, omap_root.hint),
599 --- 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
600 +++ ceph-17.2.3/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc 2022-09-10 12:21:38.205877267 +0200
601 @@ -136,7 +136,7 @@ OMapInnerNode::insert(
602 const std::string &key,
603 const ceph::bufferlist &value)
605 - logger().debug("OMapInnerNode: {} {}->{}", __func__, key, value);
606 + logger().debug("OMapInnerNode: {} {}->{}", __func__, key, fmt::streamed(value));
607 auto child_pt = get_containing_child(key);
608 assert(child_pt != iter_end());
609 auto laddr = child_pt->get_val();
610 @@ -432,7 +432,7 @@ OMapLeafNode::insert(
611 const std::string &key,
612 const ceph::bufferlist &value)
614 - logger().debug("OMapLeafNode: {}, {} -> {}", __func__, key, value);
615 + logger().debug("OMapLeafNode: {}, {} -> {}", __func__, key, fmt::streamed(value));
616 bool overflow = extent_will_overflow(key.size(), value.length());
619 --- 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
620 +++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_accessor.h 2022-09-10 21:53:11.326721372 +0200
621 @@ -141,7 +141,7 @@ class DeltaRecorderT final: public Delta
622 SUBDEBUG(seastore_onode, "decoding SPLIT ...");
623 auto split_at = StagedIterator::decode(
624 mut.get_read(), mut.get_length(), delta);
625 - SUBDEBUG(seastore_onode, "apply split_at={} ...", split_at);
626 + SUBDEBUG(seastore_onode, "apply split_at={} ...", fmt::streamed(split_at));
627 layout_t::split(mut, stage, split_at);
630 @@ -159,7 +159,7 @@ class DeltaRecorderT final: public Delta
631 SUBDEBUG(seastore_onode,
632 "apply split_at={}, {}, {}, insert_pos({}), insert_stage={}, "
633 "insert_size={}B ...",
634 - split_at, key, value, insert_pos, insert_stage, insert_size);
635 + fmt::streamed(split_at), key, value, insert_pos, insert_stage, insert_size);
636 layout_t::template split_insert<KeyT::HOBJ>(
637 mut, stage, split_at, key, value, insert_pos, insert_stage, insert_size);
639 @@ -206,13 +206,13 @@ class DeltaRecorderT final: public Delta
641 SUBERROR(seastore_onode,
642 "got unknown op {} when replay {}",
644 + static_cast<uint8_t>(op), node);
645 ceph_abort("fatal error");
647 } catch (buffer::error& e) {
648 SUBERROR(seastore_onode,
649 "got decode error {} when replay {}",
651 + fmt::streamed(e), node);
652 ceph_abort("fatal error");
655 --- 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
656 +++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager.h 2022-09-10 20:22:25.681931141 +0200
657 @@ -99,3 +99,6 @@ inline std::ostream& operator<<(std::ost
663 +struct fmt::formatter<crimson::os::seastore::onode::NodeExtent> : ostream_formatter {};
664 --- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h.orig 2022-07-28 23:52:12.000000000 +0200
665 +++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h 2022-09-10 23:18:51.518511129 +0200
666 @@ -716,7 +716,7 @@ class NodeLayoutT final : public Interna
667 SUBDEBUG(seastore_onode,
668 "-- located split_at({}), insert_pos({}), is_insert_left={}, "
669 "split_size={}B(target={}B, current={}B)",
670 - split_at, insert_pos, is_insert_left,
671 + fmt::streamed(split_at), insert_pos, is_insert_left,
672 split_size, target_split_size, filled_size());
673 // split_size can be larger than target_split_size in strategy B
674 // assert(split_size <= target_split_size);
675 --- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/tree_utils.h.orig 2022-07-28 23:52:12.000000000 +0200
676 +++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/tree_utils.h 2022-09-14 16:25:35.992674217 +0200
677 @@ -304,7 +304,7 @@ class TreeBuilder {
678 logger().debug("[{}] insert {} -> {}",
679 iter_rd - kvs.random_begin(),
680 key_hobj_t{p_kv->key},
682 + fmt::streamed(p_kv->value));
684 t, p_kv->key, {p_kv->value.get_payload_size()}
685 ).si_then([&t, this, p_kv](auto ret) {
686 @@ -397,7 +397,7 @@ class TreeBuilder {
687 logger().debug("[{}] erase {} -> {}",
688 iter_rd - kvs.random_begin(),
689 key_hobj_t{p_kv->key},
691 + fmt::streamed(p_kv->value));
692 return tree->erase(t, p_kv->key
693 ).si_then([&t, this, p_kv] (auto size) {
694 ceph_assert(size == 1);
695 @@ -497,7 +497,7 @@ class TreeBuilder {
696 eagain_ifuture<> get_stats(Transaction& t) {
697 return tree->get_stats_slow(t
698 ).si_then([](auto stats) {
699 - logger().warn("{}", stats);
700 + logger().warn("{}", fmt::streamed(stats));
704 --- ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/value.h.orig 2022-07-28 23:52:12.000000000 +0200
705 +++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/value.h 2022-09-10 20:44:01.346243614 +0200
706 @@ -330,3 +330,9 @@ std::unique_ptr<ValueDeltaRecorder>
707 build_value_recorder_by_type(ceph::bufferlist& encoded, const value_magic_t& magic);
712 +struct fmt::formatter<crimson::os::seastore::onode::value_config_t> : ostream_formatter {};
715 +struct fmt::formatter<crimson::os::seastore::onode::value_header_t> : ostream_formatter {};
716 --- 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
717 +++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.cc 2022-09-11 13:59:47.892898649 +0200
719 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
720 // vim: ts=8 sw=2 smarttab
722 +#include "common/hobject_fmt.h"
723 #include "crimson/os/seastore/logging.h"
725 #include "crimson/os/seastore/onode_manager/staged-fltree/fltree_onode_manager.h"
726 --- 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
727 +++ 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
728 @@ -190,3 +190,6 @@ class DummyNodeExtentManager final: publ
734 +struct fmt::formatter<crimson::os::seastore::onode::DummyNodeExtent> : ostream_formatter {};
735 --- 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
736 +++ 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
737 @@ -217,3 +217,6 @@ class SeastoreNodeExtentManager final: p
743 +struct fmt::formatter<crimson::os::seastore::onode::SeastoreNodeExtent> : ostream_formatter {};
744 --- 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
745 +++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/stages/key_layout.h 2022-09-10 18:15:40.701599795 +0200
746 @@ -941,3 +941,9 @@ void ns_oid_view_t::test_append(const fu
752 +struct fmt::formatter<crimson::os::seastore::onode::key_hobj_t> : ostream_formatter {};
755 +struct fmt::formatter<crimson::os::seastore::onode::key_view_t> : ostream_formatter {};
756 --- 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
757 +++ ceph-17.2.3/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage_types.h 2022-09-10 19:52:32.398311751 +0200
758 @@ -462,3 +462,9 @@ struct node_stats_t {
764 +struct fmt::formatter<crimson::os::seastore::onode::MatchHistory> : ostream_formatter {};
766 +template <crimson::os::seastore::onode::match_stage_t STAGE>
767 +struct fmt::formatter<crimson::os::seastore::onode::staged_position_t<STAGE>> : ostream_formatter {};
768 --- ceph-17.2.3/src/crimson/os/seastore/random_block_manager/nvme_manager.cc.orig 2022-07-28 23:52:12.000000000 +0200
769 +++ ceph-17.2.3/src/crimson/os/seastore/random_block_manager/nvme_manager.cc 2022-09-11 19:09:02.343128795 +0200
770 @@ -154,7 +154,7 @@ NVMeManager::mkfs_ertr::future<> NVMeMan
771 super.blocks_per_segment = config.blocks_per_segment;
772 super.device_id = config.device_id;
774 - logger().debug(" super {} ", super);
775 + logger().debug(" super {} ", fmt::streamed(super));
777 return write_rbm_header().safe_then([this] {
778 return initialize_blk_alloc_area();
779 @@ -227,7 +227,7 @@ NVMeManager::find_block_ret NVMeManager:
781 addr += super.block_size;
782 logger().debug("find_free_list: allocated: {} alloc_extent {}",
783 - allocated, alloc_extent);
784 + allocated, fmt::streamed(alloc_extent));
785 if (((uint64_t)size)/super.block_size == allocated) {
786 return seastar::stop_iteration::yes;
787 } else if (addr >= super.start_data_area) {
788 @@ -271,7 +271,7 @@ NVMeManager::allocate_ret NVMeManager::a
789 return find_free_block(t, size
790 ).safe_then([this, &t] (auto alloc_extent) mutable
791 -> allocate_ertr::future<paddr_t> {
792 - logger().debug("after find_free_block: allocated {}", alloc_extent);
793 + logger().debug("after find_free_block: allocated {}", fmt::streamed(alloc_extent));
794 if (!alloc_extent.empty()) {
795 rbm_alloc_delta_t alloc_info;
796 for (auto p : alloc_extent) {
797 @@ -626,7 +626,7 @@ NVMeManager::read_ertr::future<rbm_metad
798 return crimson::ct_error::input_output_error::make();
801 - logger().debug(" got {} ", super);
802 + logger().debug(" got {} ", fmt::streamed(super));
803 return read_ertr::future<rbm_metadata_header_t>(
804 read_ertr::ready_future_marker{},
806 --- ceph-17.2.3/src/crimson/os/seastore/segment_manager/ephemeral.cc.orig 2022-07-28 23:52:12.000000000 +0200
807 +++ ceph-17.2.3/src/crimson/os/seastore/segment_manager/ephemeral.cc 2022-09-09 20:40:20.735269610 +0200
808 @@ -96,7 +96,7 @@ EphemeralSegmentManager::init_ertr::futu
811 "Initing ephemeral segment manager with config {}",
813 + fmt::streamed(config));
815 meta = seastore_meta_t{};
817 --- ceph-17.2.3/src/crimson/osd/backfill_state.cc.orig 2022-07-28 23:52:12.000000000 +0200
818 +++ ceph-17.2.3/src/crimson/osd/backfill_state.cc 2022-09-11 20:11:11.288470838 +0200
820 #include <boost/type_index.hpp>
822 #include "crimson/osd/backfill_state.h"
823 +#include "osd/osd_types_fmt.h"
826 seastar::logger& logger() {
827 @@ -423,7 +424,7 @@ boost::statechart::result
828 BackfillState::ReplicasScanning::react(ReplicaScanned evt)
830 logger().debug("{}: got scan result from osd={}, result={}",
831 - __func__, evt.from, evt.result);
832 + __func__, evt.from, fmt::streamed(evt.result));
833 // TODO: maybe we'll be able to move waiting_on_backfill from
834 // the machine to the state.
835 ceph_assert(peering_state().is_backfill_target(evt.from));
836 --- ceph-17.2.3/src/crimson/osd/heartbeat.cc.orig 2022-07-28 23:52:12.000000000 +0200
837 +++ ceph-17.2.3/src/crimson/osd/heartbeat.cc 2022-09-11 20:44:43.140556321 +0200
839 #include "heartbeat.h"
841 #include <boost/range/join.hpp>
844 #include "messages/MOSDPing.h"
845 #include "messages/MOSDFailure.h"
846 +#include "msg/msg_fmt.h"
848 #include "crimson/common/config_proxy.h"
849 #include "crimson/common/formatter.h"
852 #include "osd/OSDMap.h"
855 +struct fmt::formatter<Heartbeat::Connection> : ostream_formatter {};
859 using crimson::common::local_conf;
860 @@ -393,7 +398,7 @@ void Heartbeat::Connection::accepted(cri
862 if (accepted_conn->get_peer_addr() == listener.get_peer_addr(type)) {
863 logger().info("Heartbeat::Connection::accepted(): "
864 - "{} racing resolved", *this);
865 + "{} racing resolved", fmt::streamed(*this));
866 conn = accepted_conn;
869 @@ -410,7 +415,7 @@ void Heartbeat::Connection::replaced()
870 conn = msgr.connect(replaced_conn->get_peer_addr(),
871 replaced_conn->get_peer_name());
872 racing_detected = true;
873 - logger().warn("Heartbeat::Connection::replaced(): {} racing", *this);
874 + logger().warn("Heartbeat::Connection::replaced(): {} racing", fmt::streamed(*this));
875 assert(conn != replaced_conn);
876 assert(conn->is_connected());
878 --- ceph-17.2.3/src/crimson/osd/ops_executer.cc.orig 2022-07-28 23:52:12.000000000 +0200
879 +++ ceph-17.2.3/src/crimson/osd/ops_executer.cc 2022-09-12 18:50:57.937349213 +0200
881 #include "crimson/osd/exceptions.h"
882 #include "crimson/osd/pg.h"
883 #include "crimson/osd/watch.h"
884 +#include "common/hobject_fmt.h"
885 +#include "msg/msg_fmt.h"
886 +#include "osd/osd_types_fmt.h"
887 #include "osd/ClassHandler.h"
890 --- ceph-17.2.3/src/crimson/osd/osd.cc.orig 2022-07-28 23:52:12.000000000 +0200
891 +++ ceph-17.2.3/src/crimson/osd/osd.cc 2022-09-11 21:59:01.223608155 +0200
893 #include <boost/smart_ptr/make_local_shared.hpp>
894 #include <fmt/format.h>
895 #include <fmt/ostream.h>
897 #include <seastar/core/timer.hh>
899 #include "common/pick_address.h"
901 #include "messages/MOSDRepOpReply.h"
902 #include "messages/MOSDScrub2.h"
903 #include "messages/MPGStats.h"
904 +#include "msg/msg_fmt.h"
906 #include "os/Transaction.h"
907 #include "osd/ClassHandler.h"
908 #include "osd/OSDCap.h"
909 #include "osd/PGPeeringEvent.h"
910 #include "osd/PeeringState.h"
911 +#include "osd/osd_types_fmt.h"
913 #include "crimson/admin/osd_admin.h"
914 #include "crimson/admin/pg_commands.h"
915 @@ -186,7 +189,7 @@ seastar::future<> OSD::mkfs(uuid_d osd_u
916 }).then([cluster_fsid, this] {
917 fmt::print("created object store {} for osd.{} fsid {}\n",
918 local_conf().get_val<std::string>("osd_data"),
919 - whoami, cluster_fsid);
920 + whoami, fmt::streamed(cluster_fsid));
921 return seastar::now();
924 @@ -200,7 +203,7 @@ seastar::future<> OSD::_write_superblock
925 return meta_coll->load_superblock().then([this](OSDSuperblock&& sb) {
926 if (sb.cluster_fsid != superblock.cluster_fsid) {
927 logger().error("provided cluster fsid {} != superblock's {}",
928 - sb.cluster_fsid, superblock.cluster_fsid);
929 + fmt::streamed(sb.cluster_fsid), fmt::streamed(superblock.cluster_fsid));
930 throw std::invalid_argument("mismatched fsid");
932 if (sb.whoami != superblock.whoami) {
933 @@ -214,8 +217,8 @@ seastar::future<> OSD::_write_superblock
935 "{} writing superblock cluster_fsid {} osd_fsid {}",
937 - superblock.cluster_fsid,
938 - superblock.osd_fsid);
939 + fmt::streamed(superblock.cluster_fsid),
940 + fmt::streamed(superblock.osd_fsid));
941 return store.create_new_collection(coll_t::meta()).then([this] (auto ch) {
942 meta_coll = make_unique<OSDMeta>(ch, store);
943 ceph::os::Transaction t;
944 @@ -495,13 +498,13 @@ seastar::future<> OSD::_add_me_to_crush(
946 return get_weight().then([this](auto weight) {
947 const crimson::crush::CrushLocation loc{make_unique<CephContext>().get()};
948 - logger().info("{} crush location is {}", __func__, loc);
949 + logger().info("{} crush location is {}", __func__, fmt::streamed(loc));
950 string cmd = fmt::format(R"({{
951 "prefix": "osd crush create-or-move",
955 - }})", whoami, weight, loc);
956 + }})", whoami, weight, fmt::streamed(loc));
957 return monc->run_command(std::move(cmd), {});
958 }).then([](auto&& command_result) {
959 [[maybe_unused]] auto [code, message, out] = std::move(command_result);
960 @@ -797,7 +800,7 @@ void OSD::handle_authentication(const En
962 // TODO: store the parsed cap and associate it with the connection
963 if (caps_info.allow_all) {
964 - logger().debug("{} {} has all caps", __func__, name);
965 + logger().debug("{} {} has all caps", __func__, fmt::streamed(name));
968 if (caps_info.caps.length() > 0) {
969 @@ -806,14 +809,14 @@ void OSD::handle_authentication(const En
972 } catch (ceph::buffer::error& e) {
973 - logger().warn("{} {} failed to decode caps string", __func__, name);
974 + logger().warn("{} {} failed to decode caps string", __func__, fmt::streamed(name));
978 if (caps.parse(str)) {
979 - logger().debug("{} {} has caps {}", __func__, name, str);
980 + logger().debug("{} {} has caps {}", __func__, fmt::streamed(name), str);
982 - logger().warn("{} {} failed to parse caps {}", __func__, name, str);
983 + logger().warn("{} {} failed to parse caps {}", __func__, fmt::streamed(name), str);
987 @@ -1051,7 +1054,7 @@ seastar::future<Ref<PG>> OSD::handle_pg_
988 seastar::future<> OSD::handle_osd_map(crimson::net::ConnectionRef conn,
991 - logger().info("handle_osd_map {}", *m);
992 + logger().info("handle_osd_map {}", fmt::streamed(*m));
993 if (m->fsid != superblock.cluster_fsid) {
994 logger().warn("fsid mismatched");
995 return seastar::now();
996 @@ -1141,7 +1144,7 @@ seastar::future<> OSD::committed_osd_map
997 if (osdmap->is_up(whoami)) {
998 const auto up_from = osdmap->get_up_from(whoami);
999 logger().info("osd.{}: map e {} marked me up: up_from {}, bind_epoch {}, state {}",
1000 - whoami, osdmap->get_epoch(), up_from, bind_epoch, state);
1001 + whoami, osdmap->get_epoch(), up_from, bind_epoch, fmt::streamed(state));
1002 if (bind_epoch < up_from &&
1003 osdmap->get_addrs(whoami) == public_msgr->get_myaddrs() &&
1004 state.is_booting()) {
1005 @@ -1184,7 +1187,7 @@ seastar::future<> OSD::committed_osd_map
1006 return start_boot();
1009 - logger().info("osd.{}: now {}", whoami, state);
1010 + logger().info("osd.{}: now {}", whoami, fmt::streamed(state));
1012 return seastar::now();
1014 @@ -1246,7 +1249,7 @@ seastar::future<> OSD::handle_rep_op_rep
1016 pg->second->handle_rep_op_reply(conn, *m);
1018 - logger().warn("stale reply: {}", *m);
1019 + logger().warn("stale reply: {}", fmt::streamed(*m));
1021 return seastar::now();
1023 --- ceph-17.2.3/src/crimson/osd/osd_meta.cc.orig 2022-07-28 23:52:12.000000000 +0200
1024 +++ ceph-17.2.3/src/crimson/osd/osd_meta.cc 2022-09-11 22:06:32.387184583 +0200
1026 #include <fmt/format.h>
1027 #include <fmt/ostream.h>
1029 +#include "common/hobject_fmt.h"
1030 #include "crimson/os/futurized_collection.h"
1031 #include "crimson/os/futurized_store.h"
1032 #include "os/Transaction.h"
1033 --- ceph-17.2.3/src/crimson/osd/pg.cc.orig 2022-07-28 23:52:12.000000000 +0200
1034 +++ ceph-17.2.3/src/crimson/osd/pg.cc 2022-09-12 06:26:38.859890170 +0200
1036 #include <boost/range/algorithm/copy.hpp>
1037 #include <boost/range/algorithm/max_element.hpp>
1038 #include <boost/range/numeric.hpp>
1039 +#include <fmt/chrono.h>
1040 #include <fmt/format.h>
1041 +#include <fmt/os.h>
1042 #include <fmt/ostream.h>
1044 +#include "common/hobject_fmt.h"
1045 #include "messages/MOSDOp.h"
1046 #include "messages/MOSDOpReply.h"
1047 #include "messages/MOSDRepOp.h"
1048 #include "messages/MOSDRepOpReply.h"
1050 #include "osd/OSDMap.h"
1051 +#include "osd/osd_types_fmt.h"
1053 #include "os/Transaction.h"
1055 @@ -768,7 +772,7 @@ PG::do_osd_ops(
1056 reply->add_flags(CEPH_OSD_FLAG_ACK | CEPH_OSD_FLAG_ONDISK);
1058 "do_osd_ops: {} - object {} sending reply",
1060 + fmt::streamed(*m),
1062 return do_osd_ops_iertr::make_ready_future<MURef<MOSDOpReply>>(
1064 @@ -1181,7 +1185,7 @@ seastar::future<> PG::stop()
1067 void PG::on_change(ceph::os::Transaction &t) {
1068 - logger().debug("{}, {}", __func__, *this);
1069 + logger().debug("{}, {}", __func__, fmt::streamed(*this));
1070 for (auto& obc : obc_set_accessing) {
1071 obc.interrupt(::crimson::common::actingset_changed(is_primary()));
1073 --- ceph-17.2.3/src/crimson/osd/pg_backend.cc.orig 2022-07-28 23:52:12.000000000 +0200
1074 +++ ceph-17.2.3/src/crimson/osd/pg_backend.cc 2022-09-12 19:43:42.529108520 +0200
1076 #include "os/Transaction.h"
1077 #include "common/Checksummer.h"
1078 #include "common/Clock.h"
1079 +#include "common/hobject_fmt.h"
1081 #include "crimson/common/exception.h"
1082 #include "crimson/os/futurized_collection.h"
1083 --- ceph-17.2.3/src/crimson/osd/pg_interval_interrupt_condition.cc.orig 2022-07-28 23:52:12.000000000 +0200
1084 +++ ceph-17.2.3/src/crimson/osd/pg_interval_interrupt_condition.cc 2022-09-14 16:25:56.740431797 +0200
1085 @@ -20,14 +20,14 @@ bool IOInterruptCondition::new_interval_
1086 bool ret = e < pg->get_interval_start_epoch();
1088 ::crimson::get_logger(ceph_subsys_osd).debug(
1089 - "{} new interval, should interrupt, e{}", *pg, e);
1090 + "{} new interval, should interrupt, e{}", fmt::streamed(*pg), e);
1094 bool IOInterruptCondition::is_stopping() {
1096 ::crimson::get_logger(ceph_subsys_osd).debug(
1097 - "{} shutting down, should interrupt", *pg);
1098 + "{} shutting down, should interrupt", fmt::streamed(*pg));
1099 return pg->stopping;
1102 --- ceph-17.2.3/src/crimson/osd/pg_map.cc.orig 2022-07-28 23:52:12.000000000 +0200
1103 +++ ceph-17.2.3/src/crimson/osd/pg_map.cc 2022-09-14 16:26:00.380623198 +0200
1106 #include "crimson/osd/pg.h"
1107 #include "common/Formatter.h"
1108 +#include "osd/osd_types_fmt.h"
1111 seastar::logger& logger() {
1112 --- ceph-17.2.3/src/crimson/osd/pg_recovery.cc.orig 2022-07-28 23:52:12.000000000 +0200
1113 +++ ceph-17.2.3/src/crimson/osd/pg_recovery.cc 2022-09-13 18:51:33.867800178 +0200
1115 #include "crimson/osd/pg_recovery.h"
1117 #include "osd/osd_types.h"
1118 +#include "osd/osd_types_fmt.h"
1119 #include "osd/PeeringState.h"
1122 @@ -109,8 +110,8 @@ size_t PGRecovery::start_primary_recover
1124 logger().info("{} recovering {} in pg {}, missing {}", __func__,
1125 pg->get_recovery_backend()->total_recovering(),
1126 - *static_cast<crimson::osd::PG*>(pg),
1128 + fmt::streamed(*static_cast<crimson::osd::PG*>(pg)),
1129 + fmt::streamed(missing));
1131 unsigned started = 0;
1133 @@ -187,7 +188,7 @@ size_t PGRecovery::start_replica_recover
1134 logger().debug("{}: peer osd.{} missing {} objects", __func__,
1135 peer, pm.num_missing());
1136 logger().trace("{}: peer osd.{} missing {}", __func__,
1137 - peer, pm.get_items());
1138 + peer, fmt::streamed(pm.get_items()));
1140 // recover oldest first
1141 for (auto p = pm.get_rmissing().begin();
1142 --- ceph-17.2.3/src/crimson/osd/recovery_backend.cc.orig 2022-07-28 23:52:12.000000000 +0200
1143 +++ ceph-17.2.3/src/crimson/osd/recovery_backend.cc 2022-09-13 21:22:46.876223766 +0200
1146 #include "messages/MOSDFastDispatchOp.h"
1147 #include "osd/osd_types.h"
1148 +#include "osd/osd_types_fmt.h"
1151 seastar::logger& logger() {
1152 @@ -126,7 +127,7 @@ RecoveryBackend::handle_backfill(
1154 logger().debug("{}", __func__);
1155 if (pg.old_peering_msg(m.map_epoch, m.query_epoch)) {
1156 - logger().debug("{}: discarding {}", __func__, m);
1157 + logger().debug("{}: discarding {}", __func__, fmt::streamed(m));
1158 return seastar::now();
1161 @@ -147,10 +148,10 @@ RecoveryBackend::interruptible_future<>
1162 RecoveryBackend::handle_backfill_remove(
1163 MOSDPGBackfillRemove& m)
1165 - logger().debug("{} m.ls={}", __func__, m.ls);
1166 + logger().debug("{} m.ls={}", __func__, fmt::streamed(m.ls));
1167 assert(m.get_type() == MSG_OSD_PG_BACKFILL_REMOVE);
1168 if (pg.can_discard_replica_op(m)) {
1169 - logger().debug("{}: discarding {}", __func__, m);
1170 + logger().debug("{}: discarding {}", __func__, fmt::streamed(m));
1171 return seastar::now();
1173 ObjectStore::Transaction t;
1174 @@ -285,7 +286,7 @@ RecoveryBackend::handle_scan(
1176 logger().debug("{}", __func__);
1177 if (pg.old_peering_msg(m.map_epoch, m.query_epoch)) {
1178 - logger().debug("{}: discarding {}", __func__, m);
1179 + logger().debug("{}: discarding {}", __func__, fmt::streamed(m));
1180 return seastar::now();
1183 --- ceph-17.2.3/src/crimson/osd/replicated_backend.cc.orig 2022-07-28 23:52:12.000000000 +0200
1184 +++ ceph-17.2.3/src/crimson/osd/replicated_backend.cc 2022-09-12 19:49:54.678938412 +0200
1186 #include "crimson/os/futurized_store.h"
1187 #include "crimson/osd/shard_services.h"
1188 #include "osd/PeeringState.h"
1189 +#include "osd/osd_types_fmt.h"
1192 seastar::logger& logger() {
1193 @@ -121,7 +122,7 @@ void ReplicatedBackend::got_rep_op_reply
1195 auto found = pending_trans.find(reply.get_tid());
1196 if (found == pending_trans.end()) {
1197 - logger().warn("{}: no matched pending rep op: {}", __func__, reply);
1198 + logger().warn("{}: no matched pending rep op: {}", __func__, fmt::streamed(reply));
1201 auto& peers = found->second;
1202 --- ceph-17.2.3/src/crimson/osd/replicated_recovery_backend.cc.orig 2022-07-28 23:52:12.000000000 +0200
1203 +++ ceph-17.2.3/src/crimson/osd/replicated_recovery_backend.cc 2022-09-14 16:26:03.774134962 +0200
1205 // vim: ts=8 sw=2 smarttab expandtab
1207 #include <fmt/format.h>
1208 +#include <fmt/os.h>
1209 #include <fmt/ostream.h>
1210 #include <seastar/core/future.hh>
1211 #include <seastar/core/do_with.hh>
1213 #include "crimson/osd/pg_backend.h"
1214 #include "replicated_recovery_backend.h"
1216 +#include "common/hobject_fmt.h"
1217 +#include "osd/osd_types_fmt.h"
1218 #include "msg/Message.h"
1221 @@ -18,6 +21,9 @@ namespace {
1226 +struct fmt::formatter<MOSDPGPush> : ostream_formatter {};
1231 @@ -170,7 +176,7 @@ RecoveryBackend::interruptible_future<>
1232 ReplicatedRecoveryBackend::handle_recovery_delete(
1233 Ref<MOSDPGRecoveryDelete> m)
1235 - logger().debug("{}: {}", __func__, *m);
1236 + logger().debug("{}: {}", __func__, fmt::streamed(*m));
1238 auto& p = m->objects.front(); //TODO: only one delete per message for now.
1239 return local_recover_delete(p.first, p.second, pg.get_osdmap_epoch())
1240 @@ -465,7 +471,7 @@ ReplicatedRecoveryBackend::read_metadata
1241 for (auto&& [key, val] : attrs) {
1242 push_op->attrset.emplace(std::move(key), std::move(val));
1244 - logger().debug("read_metadata_for_push_op: {}", push_op->attrset[OI_ATTR]);
1245 + logger().debug("read_metadata_for_push_op: {}", fmt::streamed(push_op->attrset[OI_ATTR]));
1247 oi.decode_no_oid(push_op->attrset[OI_ATTR]);
1248 new_progress.first = false;
1249 @@ -593,9 +599,9 @@ ReplicatedRecoveryBackend::get_shards_to
1250 RecoveryBackend::interruptible_future<>
1251 ReplicatedRecoveryBackend::handle_pull(Ref<MOSDPGPull> m)
1253 - logger().debug("{}: {}", __func__, *m);
1254 + logger().debug("{}: {}", __func__, fmt::streamed(*m));
1255 if (pg.can_discard_replica_op(*m)) {
1256 - logger().debug("{}: discarding {}", __func__, *m);
1257 + logger().debug("{}: discarding {}", __func__, fmt::streamed(*m));
1258 return seastar::now();
1260 return seastar::do_with(m->take_pulls(), [this, from=m->from](auto& pulls) {
1261 @@ -643,7 +649,7 @@ ReplicatedRecoveryBackend::_handle_pull_
1262 ceph::os::Transaction* t)
1264 logger().debug("handle_pull_response {} {} data.size() is {} data_included: {}",
1265 - pop.recovery_info, pop.after_progress, pop.data.length(), pop.data_included);
1266 + fmt::streamed(pop.recovery_info), fmt::streamed(pop.after_progress), pop.data.length(), pop.data_included);
1268 const hobject_t &hoid = pop.soid;
1269 auto& recovery_waiter = recovering.at(hoid);
1270 @@ -674,7 +680,7 @@ ReplicatedRecoveryBackend::_handle_pull_
1271 const bool first = pi.recovery_progress.first;
1272 pi.recovery_progress = pop.after_progress;
1273 logger().debug("new recovery_info {}, new progress {}",
1274 - pi.recovery_info, pi.recovery_progress);
1275 + fmt::streamed(pi.recovery_info), fmt::streamed(pi.recovery_progress));
1276 interval_set<uint64_t> data_zeros;
1278 uint64_t offset = pop.before_progress.data_recovered_to;
1279 @@ -888,7 +894,7 @@ RecoveryBackend::interruptible_future<>
1280 ReplicatedRecoveryBackend::handle_push_reply(
1281 Ref<MOSDPGPushReply> m)
1283 - logger().debug("{}: {}", __func__, *m);
1284 + logger().debug("{}: {}", __func__, fmt::streamed(*m));
1285 auto from = m->from;
1286 auto& push_reply = m->replies[0]; //TODO: only one reply per message
1288 --- ceph-17.2.3/src/crimson/osd/shard_services.cc.orig 2022-07-28 23:52:12.000000000 +0200
1289 +++ ceph-17.2.3/src/crimson/osd/shard_services.cc 2022-09-12 18:10:09.584797181 +0200
1291 #include "messages/MOSDPGTemp.h"
1293 #include "osd/osd_perf_counters.h"
1294 +#include "osd/osd_types_fmt.h"
1295 #include "osd/PeeringState.h"
1296 #include "crimson/common/config_proxy.h"
1297 #include "crimson/mgr/client.h"
1298 @@ -191,7 +192,7 @@ seastar::future<> ShardServices::send_pg
1300 if (pg_temp_wanted.empty())
1301 return seastar::now();
1302 - logger().debug("{}: {}", __func__, pg_temp_wanted);
1303 + logger().debug("{}: {}", __func__, fmt::streamed(pg_temp_wanted));
1304 MURef<MOSDPGTemp> ms[2] = {nullptr, nullptr};
1305 for (auto& [pgid, pg_temp] : pg_temp_wanted) {
1306 auto& m = ms[pg_temp.forced];
1307 --- ceph-17.2.3/src/crimson/osd/watch.cc.orig 2022-07-28 23:52:12.000000000 +0200
1308 +++ ceph-17.2.3/src/crimson/osd/watch.cc 2022-09-14 16:25:52.640216209 +0200
1310 #include "crimson/osd/osd_operations/internal_client_request.h"
1312 #include "messages/MWatchNotify.h"
1313 +#include "osd/osd_types_fmt.h"
1317 @@ -257,7 +258,7 @@ seastar::future<> Notify::send_completio
1319 logger().info("{} -- {} in progress watchers, timedout watchers {}",
1320 __func__, watchers.size(), timedout_watchers.size());
1321 - logger().debug("{} sending notify replies: {}", __func__, notify_replies);
1322 + logger().debug("{} sending notify replies: {}", __func__, fmt::streamed(notify_replies));
1324 ceph::bufferlist empty;
1325 auto reply = crimson::make_message<MWatchNotify>(
1326 --- ceph-17.2.3/src/crimson/osd/osd_operations/client_request.h.orig 2022-07-28 23:52:12.000000000 +0200
1327 +++ ceph-17.2.3/src/crimson/osd/osd_operations/client_request.h 2022-09-12 21:54:55.796154929 +0200
1328 @@ -98,3 +98,6 @@ private:
1334 +struct fmt::formatter<crimson::osd::ClientRequest> : ostream_formatter {};
1335 --- ceph-17.2.3/src/crimson/osd/osd_operations/background_recovery.cc.orig 2022-07-28 23:52:12.000000000 +0200
1336 +++ ceph-17.2.3/src/crimson/osd/osd_operations/background_recovery.cc 2022-09-13 17:40:57.542629721 +0200
1337 @@ -49,7 +49,7 @@ void BackgroundRecovery::dump_detail(For
1339 seastar::future<> BackgroundRecovery::start()
1341 - logger().debug("{}: start", *this);
1342 + logger().debug("{}: start", fmt::streamed(*this));
1345 auto maybe_delay = seastar::now();
1346 @@ -67,7 +67,7 @@ seastar::future<> BackgroundRecovery::st
1348 }).handle_exception_type([ref, this](const std::system_error& err) {
1349 if (err.code() == std::make_error_code(std::errc::interrupted)) {
1350 - logger().debug("{} recovery interruped: {}", *pg, err.what());
1351 + logger().debug("{} recovery interruped: {}", fmt::streamed(*pg), err.what());
1352 return seastar::now();
1354 return seastar::make_exception_future<>(err);
1355 @@ -78,7 +78,7 @@ seastar::future<> BackgroundRecovery::st
1356 UrgentRecovery::interruptible_future<bool>
1357 UrgentRecovery::do_recovery()
1359 - logger().debug("{}: {}", __func__, *this);
1360 + logger().debug("{}: {}", __func__, fmt::streamed(*this));
1361 if (!pg->has_reset_since(epoch_started)) {
1362 return with_blocking_future_interruptible<interruptor::condition>(
1363 pg->get_recovery_handler()->recover_missing(soid, need)
1364 --- ceph-17.2.3/src/crimson/osd/osd_operations/client_request.cc.orig 2022-07-28 23:52:12.000000000 +0200
1365 +++ ceph-17.2.3/src/crimson/osd/osd_operations/client_request.cc 2022-09-12 22:14:51.672228672 +0200
1367 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
1368 // vim: ts=8 sw=2 smarttab expandtab
1370 +#include <fmt/os.h>
1371 #include <seastar/core/future.hh>
1373 #include "messages/MOSDOp.h"
1374 --- ceph-17.2.3/src/crimson/osd/osd_operations/client_request_common.cc.orig 2022-07-28 23:52:12.000000000 +0200
1375 +++ ceph-17.2.3/src/crimson/osd/osd_operations/client_request_common.cc 2022-09-12 22:19:24.919860123 +0200
1377 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
1378 // vim: ts=8 sw=2 smarttab expandtab
1380 +#include "common/hobject_fmt.h"
1381 #include "crimson/osd/osd_operations/client_request_common.h"
1382 #include "crimson/osd/pg.h"
1384 @@ -43,10 +44,10 @@ bool CommonClientRequest::should_abort_r
1385 std::rethrow_exception(eptr);
1386 } catch(::crimson::common::actingset_changed& e) {
1387 if (e.is_primary()) {
1388 - logger().debug("{} {} operation restart, acting set changed", __func__, op);
1389 + logger().debug("{} {} operation restart, acting set changed", __func__, fmt::streamed(op));
1392 - logger().debug("{} {} operation abort, up primary changed", __func__, op);
1393 + logger().debug("{} {} operation abort, up primary changed", __func__, fmt::streamed(op));
1397 @@ -54,7 +55,7 @@ bool CommonClientRequest::should_abort_r
1398 assert(*eptr.__cxa_exception_type() ==
1399 typeid(crimson::common::system_shutdown_exception));
1400 crimson::get_logger(ceph_subsys_osd).debug(
1401 - "{} {} operation skipped, system shutdown", __func__, op);
1402 + "{} {} operation skipped, system shutdown", __func__, fmt::streamed(op));
1406 --- ceph-17.2.3/src/crimson/osd/osd_operations/compound_peering_request.cc.orig 2022-07-28 23:52:12.000000000 +0200
1407 +++ ceph-17.2.3/src/crimson/osd/osd_operations/compound_peering_request.cc 2022-09-13 16:37:59.084922640 +0200
1409 #include <seastar/core/future.hh>
1411 #include "osd/PeeringState.h"
1412 +#include "osd/osd_types_fmt.h"
1414 #include "messages/MOSDPGCreate2.h"
1416 @@ -44,7 +45,7 @@ public:
1418 PeeringEvent::interruptible_future<>
1419 complete_rctx(Ref<crimson::osd::PG> pg) final {
1420 - logger().debug("{}: submitting ctx transaction", *this);
1421 + logger().debug("{}: submitting ctx transaction", fmt::streamed(*this));
1422 state->ctx.accept_buffered_messages(ctx);
1425 @@ -73,14 +74,14 @@ std::vector<crimson::OperationRef> handl
1428 __func__, pgid, created, created_stamp,
1430 + history, fmt::streamed(pi));
1432 m->epoch < pi.get_bounds().second) {
1434 "got pg_create on {} epoch {} "
1435 "unmatched past_intervals {} (history {})",
1438 + fmt::streamed(pi), history);
1440 auto op = osd.get_shard_services().start_operation<PeeringSubEvent>(
1442 @@ -141,7 +142,7 @@ void CompoundPeeringRequest::dump_detail
1444 seastar::future<> CompoundPeeringRequest::start()
1446 - logger().info("{}: starting", *this);
1447 + logger().info("{}: starting", fmt::streamed(*this));
1448 auto state = seastar::make_lw_shared<compound_state>();
1449 auto blocker = std::make_unique<SubOpBlocker>(
1451 @@ -154,16 +155,16 @@ seastar::future<> CompoundPeeringRequest
1455 - logger().info("{}: about to fork future", *this);
1456 + logger().info("{}: about to fork future", fmt::streamed(*this));
1457 return crimson::common::handle_system_shutdown(
1458 [this, ref, blocker=std::move(blocker), state]() mutable {
1459 return with_blocking_future(
1460 blocker->make_blocking_future(state->promise.get_future())
1461 ).then([this, blocker=std::move(blocker)](auto &&ctx) {
1462 - logger().info("{}: sub events complete", *this);
1463 + logger().info("{}: sub events complete", fmt::streamed(*this));
1464 return osd.get_shard_services().dispatch_context_messages(std::move(ctx));
1465 }).then([this, ref=std::move(ref)] {
1466 - logger().info("{}: complete", *this);
1467 + logger().info("{}: complete", fmt::streamed(*this));
1471 --- ceph-17.2.3/src/crimson/osd/osd_operations/internal_client_request.cc.orig 2022-07-28 23:52:12.000000000 +0200
1472 +++ ceph-17.2.3/src/crimson/osd/osd_operations/internal_client_request.cc 2022-09-13 16:38:05.051901752 +0200
1473 @@ -21,7 +21,7 @@ InternalClientRequest::InternalClientReq
1475 InternalClientRequest::~InternalClientRequest()
1477 - logger().debug("{}: destroying", *this);
1478 + logger().debug("{}: destroying", fmt::streamed(*this));
1481 void InternalClientRequest::print(std::ostream &) const
1482 @@ -41,7 +41,7 @@ seastar::future<> InternalClientRequest:
1484 return crimson::common::handle_system_shutdown([this] {
1485 return seastar::repeat([this] {
1486 - logger().debug("{}: in repeat", *this);
1487 + logger().debug("{}: in repeat", fmt::streamed(*this));
1488 return interruptor::with_interruption([this]() mutable {
1489 return with_blocking_future_interruptible<interruptor::condition>(
1490 handle.enter(pp().wait_for_active)
1491 @@ -57,7 +57,7 @@ seastar::future<> InternalClientRequest:
1492 return with_blocking_future_interruptible<interruptor::condition>(
1493 handle.enter(pp().get_obc)
1494 ).then_interruptible([this] () -> PG::load_obc_iertr::future<> {
1495 - logger().debug("{}: getting obc lock", *this);
1496 + logger().debug("{}: getting obc lock", fmt::streamed(*this));
1497 return seastar::do_with(create_osd_ops(),
1498 [this](auto& osd_ops) mutable {
1499 logger().debug("InternalClientRequest: got {} OSDOps to execute",
1500 --- ceph-17.2.3/src/crimson/osd/osd_operations/peering_event.cc.orig 2022-07-28 23:52:12.000000000 +0200
1501 +++ ceph-17.2.3/src/crimson/osd/osd_operations/peering_event.cc 2022-09-13 16:38:13.575681414 +0200
1503 #include "crimson/osd/osd_operations/peering_event.h"
1504 #include "crimson/osd/osd_connection_priv.h"
1507 +struct fmt::formatter<crimson::osd::PeeringEvent> : ostream_formatter {};
1510 +struct fmt::formatter<crimson::osd::RemotePeeringEvent> : ostream_formatter {};
1513 seastar::logger& logger() {
1514 return crimson::get_logger(ceph_subsys_osd);
1515 @@ -157,7 +163,7 @@ PeeringEvent::interruptible_future<> Rem
1517 return PeeringEvent::complete_rctx(pg);
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 @@ -167,7 +173,7 @@ PeeringEvent::interruptible_future<> Rem
1526 seastar::future<> RemotePeeringEvent::complete_rctx_no_pg()
1528 - logger().debug("{}: OSDState is {}", *this, osd.state);
1529 + logger().debug("{}: OSDState is {}", *this, fmt::streamed(osd.state));
1530 return osd.state.when_active().then([this] {
1531 assert(osd.state.is_active());
1532 return shard_services.dispatch_context_messages(std::move(ctx));
1533 --- ceph-17.2.3/src/crimson/osd/osd_operations/pg_advance_map.cc.orig 2022-07-28 23:52:12.000000000 +0200
1534 +++ ceph-17.2.3/src/crimson/osd/osd_operations/pg_advance_map.cc 2022-09-13 17:27:42.507671946 +0200
1535 @@ -53,7 +53,7 @@ seastar::future<> PGAdvanceMap::start()
1537 using cached_map_t = boost::local_shared_ptr<const OSDMap>;
1539 - logger().debug("{}: start", *this);
1540 + logger().debug("{}: start", fmt::streamed(*this));
1543 return with_blocking_future(
1544 @@ -77,7 +77,7 @@ seastar::future<> PGAdvanceMap::start()
1546 osd.pg_map.pg_created(pg->get_pgid(), pg);
1547 osd.shard_services.inc_pg_num();
1548 - logger().info("PGAdvanceMap::start new pg {}", *pg);
1549 + logger().info("PGAdvanceMap::start new pg {}", fmt::streamed(*pg));
1551 return seastar::when_all_succeed(
1552 pg->get_need_up_thru() \
1553 @@ -90,7 +90,7 @@ seastar::future<> PGAdvanceMap::start()
1554 return osd.shard_services.send_pg_temp();
1556 }).then([this, ref=std::move(ref)] {
1557 - logger().debug("{}: complete", *this);
1558 + logger().debug("{}: complete", fmt::streamed(*this));
1562 --- ceph-17.2.3/src/crimson/osd/osd_operations/recovery_subrequest.cc.orig 2022-07-28 23:52:12.000000000 +0200
1563 +++ ceph-17.2.3/src/crimson/osd/osd_operations/recovery_subrequest.cc 2022-09-13 17:58:35.838043438 +0200
1564 @@ -12,7 +12,7 @@ namespace {
1565 namespace crimson::osd {
1567 seastar::future<> RecoverySubRequest::start() {
1568 - logger().debug("{}: start", *this);
1569 + logger().debug("{}: start", fmt::streamed(*this));
1572 return with_blocking_future(
1573 --- ceph-17.2.3/src/crimson/osd/osd_operations/replicated_request.cc.orig 2022-07-28 23:52:12.000000000 +0200
1574 +++ ceph-17.2.3/src/crimson/osd/osd_operations/replicated_request.cc 2022-09-13 17:30:37.646841371 +0200
1575 @@ -58,7 +58,7 @@ RepRequest::PGPipeline &RepRequest::pp(P
1577 seastar::future<> RepRequest::start()
1579 - logger().debug("{} start", *this);
1580 + logger().debug("{} start", fmt::streamed(*this));
1583 return with_blocking_future(handle.enter(cp().await_map))
1584 --- ceph-17.2.3/src/crimson/tools/store_nbd/tm_driver.cc.orig 2022-07-28 23:52:12.000000000 +0200
1585 +++ ceph-17.2.3/src/crimson/tools/store_nbd/tm_driver.cc 2022-09-14 16:25:47.783294166 +0200
1586 @@ -62,7 +62,7 @@ TMDriver::read_extents_ret TMDriver::rea
1588 ).si_then([this, &t, &pins, &ret](auto _pins) {
1590 - logger().debug("read_extents: mappings {}", pins);
1591 + logger().debug("read_extents: mappings {}", fmt::streamed(pins));
1592 return trans_intr::do_for_each(
1595 @@ -78,7 +78,7 @@ TMDriver::read_extents_ret TMDriver::rea
1596 ret.push_back(std::make_pair(ref->get_laddr(), ref));
1598 "read_extents: got extent {}",
1600 + fmt::streamed(*ref));
1601 return seastar::now();
1604 --- ceph-17.2.3/src/mon/LogMonitor.cc.orig 2022-07-28 23:52:12.000000000 +0200
1605 +++ ceph-17.2.3/src/mon/LogMonitor.cc 2022-09-04 17:59:19.765987645 +0200
1606 @@ -415,7 +415,7 @@ void LogMonitor::log_external(const LogE
1610 - fmt::format_to(file_log_buffer, "{}\n", le);
1611 + fmt::format_to(std::back_inserter(file_log_buffer), "{}\n", fmt::streamed(le));
1612 int err = safe_write(fd, file_log_buffer.data(), file_log_buffer.size());
1613 file_log_buffer.clear();
1615 --- ceph-17.2.3/src/msg/Message.h.orig 2022-07-28 23:52:12.000000000 +0200
1616 +++ ceph-17.2.3/src/msg/Message.h 2022-09-09 06:30:47.541433908 +0200
1617 @@ -559,4 +559,12 @@ MURef<T> make_message(Args&&... args) {
1618 return {new T(std::forward<Args>(args)...), TOPNSPC::common::UniquePtrDeleter{}};
1622 +#ifdef WITH_SEASTAR
1623 +# include <fmt/ostream.h>
1626 +struct fmt::formatter<Message> : ostream_formatter {};
1627 +#endif // WITH_SEASTAR
1630 --- ceph-17.2.3/src/msg/msg_fmt.h.orig 2022-07-28 23:52:12.000000000 +0200
1631 +++ ceph-17.2.3/src/msg/msg_fmt.h 2022-09-07 16:56:49.030752970 +0200
1632 @@ -24,3 +24,15 @@ struct fmt::formatter<entity_name_t> {
1633 return fmt::format_to(ctx.out(), "{}.{}", addr.type_str(), addr.num());
1638 +struct fmt::formatter<sockaddr_storage> : ostream_formatter {};
1641 +struct fmt::formatter<sockaddr *> : ostream_formatter {};
1644 +struct fmt::formatter<entity_addr_t> : ostream_formatter {};
1647 +struct fmt::formatter<entity_addrvec_t> : ostream_formatter {};
1648 --- ceph-17.2.3/src/osd/osd_types_fmt.h.orig 2022-07-28 23:52:12.000000000 +0200
1649 +++ ceph-17.2.3/src/osd/osd_types_fmt.h 2022-09-14 16:25:21.495245277 +0200
1650 @@ -104,3 +104,21 @@ struct fmt::formatter<object_info_t> {
1651 return fmt::format_to(ctx.out(), ")");
1656 +struct fmt::formatter<coll_t> : ostream_formatter {};
1659 +struct fmt::formatter<pg_history_t> : ostream_formatter {};
1662 +struct fmt::formatter<pg_t> : ostream_formatter {};
1665 +struct fmt::formatter<spg_t> : ostream_formatter {};
1668 +struct fmt::formatter<watch_info_t> : ostream_formatter {};
1670 +template <typename T>
1671 +struct fmt::formatter<interval_set<T>> : ostream_formatter {};
1672 --- ceph-17.2.3/src/seastar/include/seastar/core/print.hh.orig 2021-12-19 23:02:10.000000000 +0100
1673 +++ ceph-17.2.3/src/seastar/include/seastar/core/print.hh 2022-09-09 18:12:17.899077047 +0200
1674 @@ -155,3 +155,6 @@ fmt_print(std::ostream& os, const char*
1679 +template <typename Clock, typename Dur>
1680 +struct fmt::formatter<std::chrono::time_point<Clock, Dur>> : ostream_formatter {};
1681 --- ceph-17.2.3/src/seastar/include/seastar/core/shared_ptr.hh.orig 2021-12-19 23:02:10.000000000 +0100
1682 +++ ceph-17.2.3/src/seastar/include/seastar/core/shared_ptr.hh 2022-09-08 18:29:43.378965666 +0200
1684 #include <type_traits>
1685 #include <functional>
1687 +#include <fmt/ostream.h>
1688 #include <seastar/util/is_smart_ptr.hh>
1689 #include <seastar/util/indirect.hh>
1691 @@ -839,6 +840,9 @@ using shared_ptr_value_hash = indirect_h
1695 +template <typename T>
1696 +struct fmt::formatter<seastar::shared_ptr<T>> : ostream_formatter {};
1700 template <typename T>
1701 --- ceph-17.2.3/src/seastar/include/seastar/net/inet_address.hh.orig 2021-12-19 23:02:10.000000000 +0100
1702 +++ ceph-17.2.3/src/seastar/include/seastar/net/inet_address.hh 2022-09-08 06:29:04.805312816 +0200
1704 #include <netinet/in.h>
1705 #include <stdexcept>
1707 +#include <fmt/ostream.h>
1709 #include <seastar/core/future.hh>
1710 #include <seastar/core/sstring.hh>
1711 @@ -126,3 +127,6 @@ struct hash<seastar::net::inet_address>
1712 size_t operator()(const seastar::net::inet_address&) const;
1717 +struct fmt::formatter<seastar::net::inet_address> : ostream_formatter {};
1718 --- ceph-17.2.3/src/seastar/include/seastar/net/socket_defs.hh.orig 2021-12-19 23:02:10.000000000 +0100
1719 +++ ceph-17.2.3/src/seastar/include/seastar/net/socket_defs.hh 2022-09-08 06:35:44.041541450 +0200
1721 #include <seastar/net/byteorder.hh>
1722 #include <seastar/net/unix_address.hh>
1724 +#include <fmt/ostream.h>
1728 @@ -184,3 +185,6 @@ struct hash<seastar::transport> {
1734 +struct fmt::formatter<seastar::socket_address> : ostream_formatter {};
1735 --- ceph-17.2.3/src/seastar/include/seastar/util/backtrace.hh.orig 2021-12-19 23:02:10.000000000 +0100
1736 +++ ceph-17.2.3/src/seastar/include/seastar/util/backtrace.hh 2022-09-07 17:09:17.119598672 +0200
1737 @@ -162,6 +162,9 @@ struct hash<seastar::tasktrace> {
1742 +struct fmt::formatter<seastar::tasktrace> : ostream_formatter {};
1746 using saved_backtrace = tasktrace;
1747 --- ceph-17.2.3/src/seastar/include/seastar/util/log.hh.orig 2021-12-19 23:02:10.000000000 +0100
1748 +++ ceph-17.2.3/src/seastar/include/seastar/util/log.hh 2022-09-07 17:16:57.860168355 +0200
1749 @@ -524,4 +524,13 @@ std::ostream& operator<<(std::ostream&,
1750 std::ostream& operator<<(std::ostream&, const std::system_error&);
1754 +struct fmt::formatter<std::exception_ptr> : ostream_formatter {};
1757 +struct fmt::formatter<std::exception> : ostream_formatter {};
1760 +struct fmt::formatter<std::system_error> : ostream_formatter {};
1763 --- ceph-17.2.3/src/seastar/src/core/io_queue.cc.orig 2021-12-19 23:02:10.000000000 +0100
1764 +++ ceph-17.2.3/src/seastar/src/core/io_queue.cc 2022-09-04 19:41:17.627629354 +0200
1765 @@ -207,7 +207,7 @@ public:
1766 , _fq_entry(_ioq.request_fq_ticket(dnl))
1767 , _desc(std::make_unique<io_desc_read_write>(_ioq, pc, _stream, _fq_entry.ticket()))
1769 - io_log.trace("dev {} : req {} queue len {} ticket {}", _ioq.dev_id(), fmt::ptr(&*_desc), _dnl.length(), _fq_entry.ticket());
1770 + io_log.trace("dev {} : req {} queue len {} ticket {}", _ioq.dev_id(), fmt::ptr(&*_desc), _dnl.length(), fmt::streamed(_fq_entry.ticket()));
1773 queued_io_request(queued_io_request&&) = delete;
1774 --- ceph-17.2.3/src/seastar/src/core/memory.cc.orig 2021-12-19 23:02:10.000000000 +0100
1775 +++ ceph-17.2.3/src/seastar/src/core/memory.cc 2022-09-04 19:34:50.387337178 +0200
1776 @@ -1616,6 +1616,15 @@ std::ostream& operator<<(std::ostream& o
1784 +struct fmt::formatter<seastar::memory::human_readable_value> : ostream_formatter {};
1786 +namespace seastar {
1789 static human_readable_value to_human_readable_value(uint64_t value, uint64_t step, uint64_t precision, const std::array<char, 5>& suffixes) {
1791 return {0, suffixes[0]};
1792 --- ceph-17.2.3/src/seastar/src/core/reactor.cc.orig 2021-12-19 23:02:10.000000000 +0100
1793 +++ ceph-17.2.3/src/seastar/src/core/reactor.cc 2022-09-04 19:39:35.978957648 +0200
1794 @@ -3487,7 +3487,7 @@ reactor_options::reactor_options(program
1795 " The diagnostics will be written to the seastar_memory logger, with error level."
1796 " Note that if the seastar_memory logger is set to debug or trace level, the diagnostics will be logged irrespective of this setting.")
1797 , reactor_backend(*this, "reactor-backend", backend_selector_candidates(), reactor_backend_selector::default_backend().name(),
1798 - format("Internal reactor implementation ({})", reactor_backend_selector::available()))
1799 + format("Internal reactor implementation ({})", fmt::streamed(reactor_backend_selector::available())))
1800 , aio_fsync(*this, "aio-fsync", kernel_supports_aio_fsync(),
1801 "Use Linux aio for fsync() calls. This reduces latency; requires Linux 4.18 or later.")
1802 , max_networking_io_control_blocks(*this, "max-networking-io-control-blocks", 10000,
1803 --- ceph-17.2.3/src/seastar/src/net/dns.cc.orig 2021-12-19 23:02:10.000000000 +0100
1804 +++ ceph-17.2.3/src/seastar/src/net/dns.cc 2022-09-04 20:36:25.288504129 +0200
1805 @@ -238,7 +238,7 @@ public:
1809 - dns_log.debug("Query name {} ({})", name, family);
1810 + dns_log.debug("Query name {} ({})", name, fmt::streamed(family));
1813 auto res = inet_address::parse_numerical(name);
1814 --- ceph-17.2.3/src/seastar/src/rpc/rpc.cc.orig 2021-12-19 23:02:10.000000000 +0100
1815 +++ ceph-17.2.3/src/seastar/src/rpc/rpc.cc 2022-09-04 20:49:25.379426601 +0200
1816 @@ -790,7 +790,7 @@ namespace rpc {
1817 f = smp::submit_to(_parent_id.shard(), [this, c = make_foreign(static_pointer_cast<rpc::connection>(shared_from_this()))] () mutable {
1818 auto sit = _servers.find(*_server._options.streaming_domain);
1819 if (sit == _servers.end()) {
1820 - throw std::logic_error(format("Shard {:d} does not have server with streaming domain {:x}", this_shard_id(), *_server._options.streaming_domain).c_str());
1821 + 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());
1823 auto s = sit->second;
1824 auto it = s->_conns.find(_parent_id);
1825 @@ -1010,7 +1010,7 @@ future<> server::connection::send_unknow
1827 if (_options.streaming_domain) {
1828 if (_servers.find(*_options.streaming_domain) != _servers.end()) {
1829 - throw std::runtime_error(format("An RPC server with the streaming domain {} is already exist", *_options.streaming_domain));
1830 + throw std::runtime_error(format("An RPC server with the streaming domain {} is already exist", fmt::streamed(*_options.streaming_domain)));
1832 _servers[*_options.streaming_domain] = this;
1834 --- ceph-17.2.3/src/test/crimson/seastore/onode_tree/test_value.h.orig 2022-07-28 23:52:12.000000000 +0200
1835 +++ ceph-17.2.3/src/test/crimson/seastore/onode_tree/test_value.h 2022-09-11 08:56:20.792343731 +0200
1836 @@ -138,12 +138,12 @@ class TestValue final : public Value {
1839 logger().error("OTree::TestValue::Replay: got unknown op {} when replay {:#x}+{:#x}",
1840 - op, value_addr, payload_mut.get_length());
1841 + static_cast<uint8_t>(op), value_addr, payload_mut.get_length());
1844 } catch (buffer::error& e) {
1845 logger().error("OTree::TestValue::Replay: got decode error {} when replay {:#x}+{:#x}",
1846 - e, value_addr, payload_mut.get_length());
1847 + fmt::streamed(e), value_addr, payload_mut.get_length());
1851 --- ceph-17.2.3/src/tools/neorados.cc.orig 2022-08-30 09:00:26.418417475 +0200
1852 +++ ceph-17.2.3/src/tools/neorados.cc 2022-09-04 20:23:19.850824080 +0200
1853 @@ -55,7 +55,7 @@ void printseq(const V& v, std::ostream&
1855 std::for_each(v.cbegin(), v.cend(),
1856 [&m](const auto& e) {
1857 - fmt::print(m, "{}\n", e);
1858 + fmt::print(m, "{}\n", fmt::streamed(e));
1862 @@ -321,7 +321,7 @@ int main(int argc, char* argv[])
1865 if (vm.count("help")) {
1866 - fmt::print("{}", desc);
1867 + fmt::print("{}", fmt::streamed(desc));
1868 fmt::print("Commands:\n");
1869 for (const auto& cmd : commands) {
1870 fmt::print(" {} {}{}{}\n",
1871 --- ceph-17.2.3/src/tools/crimson/perf_crimson_msgr.cc.orig 2022-07-28 23:52:12.000000000 +0200
1872 +++ ceph-17.2.3/src/tools/crimson/perf_crimson_msgr.cc 2022-09-09 19:53:09.761115666 +0200
1874 #include <seastar/core/smp.hh>
1876 #include "common/ceph_time.h"
1877 +#include "msg/msg_fmt.h"
1878 #include "messages/MOSDOp.h"
1880 #include "crimson/auth/DummyAuth.h"