From 699a0fbbc7bf5bf7ebb9ea8a7ba2a5281eb36fab Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 15 May 2021 19:20:38 +0300 Subject: [PATCH] Log to stderr instead of stdout in client --- src/cluster_client.cpp | 6 +++--- src/messenger.cpp | 32 ++++++++++++++++---------------- src/msgr_op.h | 8 ++++---- src/msgr_rdma.cpp | 16 ++++++++-------- src/msgr_receive.cpp | 8 ++++---- src/msgr_send.cpp | 4 ++-- src/msgr_stop.cpp | 4 ++-- 7 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/cluster_client.cpp b/src/cluster_client.cpp index 408e30a73..6bc2ff7ec 100644 --- a/src/cluster_client.cpp +++ b/src/cluster_client.cpp @@ -51,7 +51,7 @@ cluster_client_t::cluster_client_t(ring_loop_t *ringloop, timerfd_manager_t *tfd msgr.exec_op = [this](osd_op_t *op) { // Garbage in - printf("Incoming garbage from peer %d\n", op->peer_fd); + fprintf(stderr, "Incoming garbage from peer %d\n", op->peer_fd); msgr.stop_client(op->peer_fd); delete op; }; @@ -1072,8 +1072,8 @@ void cluster_client_t::handle_op_part(cluster_op_part_t *part) if (part->op.reply.hdr.retval != expected) { // Operation failed, retry - printf( - "%s operation failed on OSD %lu: retval=%ld (expected %d), dropping connection\n", + fprintf( + stderr, "%s operation failed on OSD %lu: retval=%ld (expected %d), dropping connection\n", osd_op_names[part->op.req.hdr.opcode], part->osd_num, part->op.reply.hdr.retval, expected ); if (part->op.reply.hdr.retval == -EPIPE) diff --git a/src/messenger.cpp b/src/messenger.cpp index 64862bbd2..d25bfe1a7 100644 --- a/src/messenger.cpp +++ b/src/messenger.cpp @@ -21,13 +21,13 @@ void osd_messenger_t::init() ); if (!rdma_context) { - printf("[OSD %lu] Couldn't initialize RDMA, proceeding with TCP only\n", osd_num); + fprintf(stderr, "[OSD %lu] Couldn't initialize RDMA, proceeding with TCP only\n", osd_num); } else { rdma_max_sge = rdma_max_sge < rdma_context->attrx.orig_attr.max_sge ? rdma_max_sge : rdma_context->attrx.orig_attr.max_sge; - printf("[OSD %lu] RDMA initialized successfully\n", osd_num); + fprintf(stderr, "[OSD %lu] RDMA initialized successfully\n", osd_num); fcntl(rdma_context->channel->fd, F_SETFL, fcntl(rdma_context->channel->fd, F_GETFL, 0) | O_NONBLOCK); tfd->set_fd_handler(rdma_context->channel->fd, false, [this](int notify_fd, int epoll_events) { @@ -55,7 +55,7 @@ void osd_messenger_t::init() if (!cl->ping_time_remaining) { // Ping timed out, stop the client - printf("Ping timed out for OSD %lu (client %d), disconnecting peer\n", cl->osd_num, cl->peer_fd); + fprintf(stderr, "Ping timed out for OSD %lu (client %d), disconnecting peer\n", cl->osd_num, cl->peer_fd); to_stop.push_back(cl->peer_fd); } } @@ -82,7 +82,7 @@ void osd_messenger_t::init() delete op; if (fail_fd >= 0) { - printf("Ping failed for OSD %lu (client %d), disconnecting peer\n", cl->osd_num, cl->peer_fd); + fprintf(stderr, "Ping failed for OSD %lu (client %d), disconnecting peer\n", cl->osd_num, cl->peer_fd); stop_client(fail_fd, true); } }; @@ -305,7 +305,7 @@ void osd_messenger_t::handle_peer_epoll(int peer_fd, int epoll_events) if (epoll_events & EPOLLRDHUP) { // Stop client - printf("[OSD %lu] client %d disconnected\n", this->osd_num, peer_fd); + fprintf(stderr, "[OSD %lu] client %d disconnected\n", this->osd_num, peer_fd); stop_client(peer_fd, true); } else if (epoll_events & EPOLLIN) @@ -330,7 +330,7 @@ void osd_messenger_t::on_connect_peer(osd_num_t peer_osd, int peer_fd) wp.connecting = false; if (peer_fd < 0) { - printf("Failed to connect to peer OSD %lu address %s port %d: %s\n", peer_osd, wp.cur_addr.c_str(), wp.cur_port, strerror(-peer_fd)); + fprintf(stderr, "Failed to connect to peer OSD %lu address %s port %d: %s\n", peer_osd, wp.cur_addr.c_str(), wp.cur_port, strerror(-peer_fd)); if (wp.address_changed) { wp.address_changed = false; @@ -357,7 +357,7 @@ void osd_messenger_t::on_connect_peer(osd_num_t peer_osd, int peer_fd) } if (log_level > 0) { - printf("[OSD %lu] Connected with peer OSD %lu (client %d)\n", osd_num, peer_osd, peer_fd); + fprintf(stderr, "[OSD %lu] Connected with peer OSD %lu (client %d)\n", osd_num, peer_osd, peer_fd); } wanted_peers.erase(peer_osd); repeer_pgs(peer_osd); @@ -403,7 +403,7 @@ void osd_messenger_t::check_peer_config(osd_client_t *cl) if (op->reply.hdr.retval < 0) { err = true; - printf("Failed to get config from OSD %lu (retval=%ld), disconnecting peer\n", cl->osd_num, op->reply.hdr.retval); + fprintf(stderr, "Failed to get config from OSD %lu (retval=%ld), disconnecting peer\n", cl->osd_num, op->reply.hdr.retval); } else { @@ -411,18 +411,18 @@ void osd_messenger_t::check_peer_config(osd_client_t *cl) if (json_err != "") { err = true; - printf("Failed to get config from OSD %lu: bad JSON: %s, disconnecting peer\n", cl->osd_num, json_err.c_str()); + fprintf(stderr, "Failed to get config from OSD %lu: bad JSON: %s, disconnecting peer\n", cl->osd_num, json_err.c_str()); } else if (config["osd_num"].uint64_value() != cl->osd_num) { err = true; - printf("Connected to OSD %lu instead of OSD %lu, peer state is outdated, disconnecting peer\n", config["osd_num"].uint64_value(), cl->osd_num); + fprintf(stderr, "Connected to OSD %lu instead of OSD %lu, peer state is outdated, disconnecting peer\n", config["osd_num"].uint64_value(), cl->osd_num); } else if (config["protocol_version"].uint64_value() != OSD_PROTOCOL_VERSION) { err = true; - printf( - "OSD %lu protocol version is %lu, but only version %u is supported.\n" + fprintf( + stderr, "OSD %lu protocol version is %lu, but only version %u is supported.\n" " If you need to upgrade from 0.5.x please request it via the issue tracker.\n", cl->osd_num, config["protocol_version"].uint64_value(), OSD_PROTOCOL_VERSION ); @@ -443,8 +443,8 @@ void osd_messenger_t::check_peer_config(osd_client_t *cl) if (!msgr_rdma_address_t::from_string(config["rdma_address"].string_value().c_str(), &addr) || cl->rdma_conn->connect(&addr) != 0) { - printf( - "Failed to connect to OSD %lu (address %s) using RDMA\n", + fprintf( + stderr, "Failed to connect to OSD %lu (address %s) using RDMA\n", cl->osd_num, config["rdma_address"].string_value().c_str() ); delete cl->rdma_conn; @@ -465,7 +465,7 @@ void osd_messenger_t::check_peer_config(osd_client_t *cl) } if (log_level > 0) { - printf("Connected to OSD %lu using RDMA\n", cl->osd_num); + fprintf(stderr, "Connected to OSD %lu using RDMA\n", cl->osd_num); } cl->peer_state = PEER_RDMA; tfd->set_fd_handler(cl->peer_fd, false, NULL); @@ -491,7 +491,7 @@ void osd_messenger_t::accept_connections(int listen_fd) { assert(peer_fd != 0); char peer_str[256]; - printf("[OSD %lu] new client %d: connection from %s port %d\n", this->osd_num, peer_fd, + fprintf(stderr, "[OSD %lu] new client %d: connection from %s port %d\n", this->osd_num, peer_fd, inet_ntop(AF_INET, &addr.sin_addr, peer_str, 256), ntohs(addr.sin_port)); fcntl(peer_fd, F_SETFL, fcntl(peer_fd, F_GETFL, 0) | O_NONBLOCK); int one = 1; diff --git a/src/msgr_op.h b/src/msgr_op.h index 3a75b1171..fb571901c 100644 --- a/src/msgr_op.h +++ b/src/msgr_op.h @@ -76,7 +76,7 @@ struct osd_op_buf_list_t buf = (iovec*)malloc(sizeof(iovec) * alloc); if (!buf) { - printf("Failed to allocate %lu bytes\n", sizeof(iovec) * alloc); + fprintf(stderr, "Failed to allocate %lu bytes\n", sizeof(iovec) * alloc); exit(1); } memcpy(buf, inline_buf, sizeof(iovec) * old); @@ -87,7 +87,7 @@ struct osd_op_buf_list_t buf = (iovec*)realloc(buf, sizeof(iovec) * alloc); if (!buf) { - printf("Failed to allocate %lu bytes\n", sizeof(iovec) * alloc); + fprintf(stderr, "Failed to allocate %lu bytes\n", sizeof(iovec) * alloc); exit(1); } } @@ -109,7 +109,7 @@ struct osd_op_buf_list_t buf = (iovec*)malloc(sizeof(iovec) * alloc); if (!buf) { - printf("Failed to allocate %lu bytes\n", sizeof(iovec) * alloc); + fprintf(stderr, "Failed to allocate %lu bytes\n", sizeof(iovec) * alloc); exit(1); } memcpy(buf, inline_buf, sizeof(iovec)*old); @@ -120,7 +120,7 @@ struct osd_op_buf_list_t buf = (iovec*)realloc(buf, sizeof(iovec) * alloc); if (!buf) { - printf("Failed to allocate %lu bytes\n", sizeof(iovec) * alloc); + fprintf(stderr, "Failed to allocate %lu bytes\n", sizeof(iovec) * alloc); exit(1); } } diff --git a/src/msgr_rdma.cpp b/src/msgr_rdma.cpp index e082bf32a..57276d98a 100644 --- a/src/msgr_rdma.cpp +++ b/src/msgr_rdma.cpp @@ -315,8 +315,8 @@ bool osd_messenger_t::connect_rdma(int peer_fd, std::string rdma_address, uint64 if (r != 0) { delete rdma_conn; - printf( - "Failed to connect RDMA queue pair to %s (client %d)\n", + fprintf( + stderr, "Failed to connect RDMA queue pair to %s (client %d)\n", addr.to_string().c_str(), peer_fd ); } @@ -346,7 +346,7 @@ static void try_send_rdma_wr(osd_client_t *cl, ibv_sge *sge, int op_sge) int err = ibv_post_send(cl->rdma_conn->qp, &wr, &bad_wr); if (err || bad_wr) { - printf("RDMA send failed: %s\n", strerror(err)); + fprintf(stderr, "RDMA send failed: %s\n", strerror(err)); exit(1); } cl->rdma_conn->cur_send++; @@ -408,7 +408,7 @@ static void try_recv_rdma_wr(osd_client_t *cl, ibv_sge *sge, int op_sge) int err = ibv_post_recv(cl->rdma_conn->qp, &wr, &bad_wr); if (err || bad_wr) { - printf("RDMA receive failed: %s\n", strerror(err)); + fprintf(stderr, "RDMA receive failed: %s\n", strerror(err)); exit(1); } cl->rdma_conn->cur_recv++; @@ -445,7 +445,7 @@ void osd_messenger_t::handle_rdma_events() } if (ibv_req_notify_cq(rdma_context->cq, 0) != 0) { - printf("Failed to request RDMA completion notification, exiting\n"); + fprintf(stderr, "Failed to request RDMA completion notification, exiting\n"); exit(1); } ibv_wc wc[RDMA_EVENTS_AT_ONCE]; @@ -465,12 +465,12 @@ void osd_messenger_t::handle_rdma_events() osd_client_t *cl = cl_it->second; if (wc[i].status != IBV_WC_SUCCESS) { - printf("RDMA work request failed for client %d", client_id); + fprintf(stderr, "RDMA work request failed for client %d", client_id); if (cl->osd_num) { - printf(" (OSD %lu)", cl->osd_num); + fprintf(stderr, " (OSD %lu)", cl->osd_num); } - printf(" with status: %s, stopping client\n", ibv_wc_status_str(wc[i].status)); + fprintf(stderr, " with status: %s, stopping client\n", ibv_wc_status_str(wc[i].status)); stop_client(client_id); continue; } diff --git a/src/msgr_receive.cpp b/src/msgr_receive.cpp index 873527b47..d90ace262 100644 --- a/src/msgr_receive.cpp +++ b/src/msgr_receive.cpp @@ -72,7 +72,7 @@ bool osd_messenger_t::handle_read(int result, osd_client_t *cl) // this is a client socket, so don't panic on error. just disconnect it if (result != 0) { - printf("Client %d socket read error: %d (%s). Disconnecting client\n", cl->peer_fd, -result, strerror(-result)); + fprintf(stderr, "Client %d socket read error: %d (%s). Disconnecting client\n", cl->peer_fd, -result, strerror(-result)); } stop_client(cl->peer_fd); return false; @@ -177,7 +177,7 @@ bool osd_messenger_t::handle_finished_read(osd_client_t *cl) handle_op_hdr(cl); else { - printf("Received garbage: magic=%lx id=%lu opcode=%lx from %d\n", cl->read_op->req.hdr.magic, cl->read_op->req.hdr.id, cl->read_op->req.hdr.opcode, cl->peer_fd); + fprintf(stderr, "Received garbage: magic=%lx id=%lu opcode=%lx from %d\n", cl->read_op->req.hdr.magic, cl->read_op->req.hdr.id, cl->read_op->req.hdr.opcode, cl->peer_fd); stop_client(cl->peer_fd); return false; } @@ -292,7 +292,7 @@ bool osd_messenger_t::handle_reply_hdr(osd_client_t *cl) if (req_it == cl->sent_ops.end()) { // Command out of sync. Drop connection - printf("Client %d command out of sync: id %lu\n", cl->peer_fd, cl->read_op->req.hdr.id); + fprintf(stderr, "Client %d command out of sync: id %lu\n", cl->peer_fd, cl->read_op->req.hdr.id); stop_client(cl->peer_fd); return false; } @@ -307,7 +307,7 @@ bool osd_messenger_t::handle_reply_hdr(osd_client_t *cl) if (op->reply.hdr.retval >= 0 && (op->reply.hdr.retval != expected_size || bmp_len > op->bitmap_len)) { // Check reply length to not overflow the buffer - printf("Client %d read reply of different length: expected %u+%u, got %ld+%u\n", + fprintf(stderr, "Client %d read reply of different length: expected %u+%u, got %ld+%u\n", cl->peer_fd, expected_size, op->bitmap_len, op->reply.hdr.retval, bmp_len); cl->sent_ops[op->req.hdr.id] = op; stop_client(cl->peer_fd); diff --git a/src/msgr_send.cpp b/src/msgr_send.cpp index 972ec0bd2..44ee75708 100644 --- a/src/msgr_send.cpp +++ b/src/msgr_send.cpp @@ -227,7 +227,7 @@ void osd_messenger_t::handle_send(int result, osd_client_t *cl) if (result < 0 && result != -EAGAIN) { // this is a client socket, so don't panic. just disconnect it - printf("Client %d socket write error: %d (%s). Disconnecting client\n", cl->peer_fd, -result, strerror(-result)); + fprintf(stderr, "Client %d socket write error: %d (%s). Disconnecting client\n", cl->peer_fd, -result, strerror(-result)); stop_client(cl->peer_fd); return; } @@ -274,7 +274,7 @@ void osd_messenger_t::handle_send(int result, osd_client_t *cl) // FIXME: Ignore pings during RDMA state transition if (log_level > 0) { - printf("Successfully connected with client %d using RDMA\n", cl->peer_fd); + fprintf(stderr, "Successfully connected with client %d using RDMA\n", cl->peer_fd); } cl->peer_state = PEER_RDMA; tfd->set_fd_handler(cl->peer_fd, false, NULL); diff --git a/src/msgr_stop.cpp b/src/msgr_stop.cpp index ae15a923c..cf8de6602 100644 --- a/src/msgr_stop.cpp +++ b/src/msgr_stop.cpp @@ -58,11 +58,11 @@ void osd_messenger_t::stop_client(int peer_fd, bool force) { if (cl->osd_num) { - printf("[OSD %lu] Stopping client %d (OSD peer %lu)\n", osd_num, peer_fd, cl->osd_num); + fprintf(stderr, "[OSD %lu] Stopping client %d (OSD peer %lu)\n", osd_num, peer_fd, cl->osd_num); } else { - printf("[OSD %lu] Stopping client %d (regular client)\n", osd_num, peer_fd); + fprintf(stderr, "[OSD %lu] Stopping client %d (regular client)\n", osd_num, peer_fd); } } // First set state to STOPPED so another stop_client() call doesn't try to free it again