using namespace ceph::net;
-SocketMessenger::SocketMessenger(const entity_name_t& myname)
- : Messenger{myname}
+SocketMessenger::SocketMessenger(const entity_name_t& myname,
+ const std::string& logic_name)
+ : Messenger{myname}, logic_name{logic_name}
{}
void SocketMessenger::bind(const entity_addr_t& addr)
std::set<SocketConnectionRef> accepting_conns;
using Throttle = ceph::thread::Throttle;
ceph::net::PolicySet<Throttle> policy_set;
+ // Distinguish messengers with meaningful names for debugging
+ const std::string logic_name;
seastar::future<> accept(seastar::connected_socket socket,
seastar::socket_address paddr);
public:
- SocketMessenger(const entity_name_t& myname);
+ SocketMessenger(const entity_name_t& myname,
+ const std::string& logic_name);
void bind(const entity_addr_t& addr) override;
void print(ostream& out) const override {
out << get_myname()
- << " " << get_myaddr();
+ << "(" << logic_name
+ << ") " << get_myaddr();
}
public:
struct Server {
ceph::thread::Throttle byte_throttler;
static constexpr int64_t server_num = 0;
- ceph::net::SocketMessenger msgr{entity_name_t::OSD(server_num)};
+ ceph::net::SocketMessenger msgr{entity_name_t::OSD(server_num), "server"};
struct ServerDispatcher : ceph::net::Dispatcher {
unsigned count = 0;
seastar::condition_variable on_reply;
struct Client {
ceph::thread::Throttle byte_throttler;
static constexpr int64_t client_num = 1;
- ceph::net::SocketMessenger msgr{entity_name_t::OSD(client_num)};
+ ceph::net::SocketMessenger msgr{entity_name_t::OSD(client_num), "client"};
struct ClientDispatcher : ceph::net::Dispatcher {
unsigned count = 0;
seastar::condition_variable on_reply;
entity_addr_t addr;
struct {
- ceph::net::SocketMessenger messenger{entity_name_t::OSD(1)};
+ ceph::net::SocketMessenger messenger{entity_name_t::OSD(1), "server1"};
struct ServerDispatcher : ceph::net::Dispatcher {
seastar::future<> ms_dispatch(ceph::net::ConnectionRef c,
MessageRef m) override {
struct {
unsigned rounds;
std::bernoulli_distribution keepalive_dist{};
- ceph::net::SocketMessenger messenger{entity_name_t::OSD(0)};
+ ceph::net::SocketMessenger messenger{entity_name_t::OSD(0), "client1"};
struct ClientDispatcher : ceph::net::Dispatcher {
seastar::promise<MessageRef> reply;
unsigned count = 0u;
entity_addr_t addr;
struct {
- ceph::net::SocketMessenger messenger{entity_name_t::OSD(1)};
+ ceph::net::SocketMessenger messenger{entity_name_t::OSD(1), "server2"};
class ServerDispatcher : public ceph::net::Dispatcher {
int count = 0;
seastar::promise<> on_second; // satisfied on second dispatch
} server;
struct {
- ceph::net::SocketMessenger messenger{entity_name_t::OSD(0)};
+ ceph::net::SocketMessenger messenger{entity_name_t::OSD(0), "client2"};
ceph::net::Dispatcher dispatcher;
} client;
};
conf->cluster = cluster;
return conf.parse_config_files(conf_file_list);
}).then([] {
- return seastar::do_with(ceph::net::SocketMessenger{entity_name_t::OSD(0)},
+ return seastar::do_with(ceph::net::SocketMessenger{entity_name_t::OSD(0), "monc"},
[](ceph::net::Messenger& msgr) {
auto& conf = ceph::common::local_conf();
if (conf->ms_crc_data) {