X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Flive.c;h=9503ba470b70cd496291ec612f304c45446661d5;hp=4ade082b026ef326cda5a7ae5921e9d5a158d1d5;hb=ea6bf30f3684cf71633cb9f2c70ea0bc22b664c4;hpb=71efa8ef5fdf66ce41199a4735cf88eff0b34174 diff --git a/src/bin/lttng-relayd/live.c b/src/bin/lttng-relayd/live.c index 4ade082b0..9503ba470 100644 --- a/src/bin/lttng-relayd/live.c +++ b/src/bin/lttng-relayd/live.c @@ -358,7 +358,7 @@ int make_viewer_streams(struct relay_session *session, } } else { if (!stream->closed || - !(((int64_t) (stream->prev_seq - stream->last_net_seq_num)) >= 0)) { + !(((int64_t) (stream->prev_data_seq - stream->last_net_seq_num)) >= 0)) { (*nb_total)++; } @@ -543,11 +543,6 @@ restart: revents = LTTNG_POLL_GETEV(&events, i); pollfd = LTTNG_POLL_GETFD(&events, i); - if (!revents) { - /* No activity for this FD (poll implementation). */ - continue; - } - /* Thread quit pipe has been closed. Killing thread. */ ret = check_thread_quit_pipe(pollfd, revents); if (ret) { @@ -835,6 +830,11 @@ int viewer_list_sessions(struct relay_connection *conn) health_code_update(); + if (session->connection_closed) { + /* Skip closed session */ + continue; + } + if (count >= buf_count) { struct lttng_viewer_session *newbuf; uint32_t new_buf_count = buf_count << 1; @@ -1039,12 +1039,12 @@ int viewer_attach_session(struct relay_connection *conn) session = session_get_by_id(be64toh(request.session_id)); if (!session) { DBG("Relay session %" PRIu64 " not found", - be64toh(request.session_id)); + (uint64_t) be64toh(request.session_id)); response.status = htobe32(LTTNG_VIEWER_ATTACH_UNK); goto send_reply; } DBG("Attach session ID %" PRIu64 " received", - be64toh(request.session_id)); + (uint64_t) be64toh(request.session_id)); if (session->live_timer == 0) { DBG("Not live session"); @@ -1089,7 +1089,7 @@ int viewer_attach_session(struct relay_connection *conn) if (closed) { send_streams = 0; response.streams_count = 0; - response.status = htobe32(LTTNG_VIEWER_NEW_STREAMS_HUP); + response.status = htobe32(LTTNG_VIEWER_ATTACH_UNK); goto send_reply; } @@ -1301,7 +1301,7 @@ int viewer_get_next_index(struct relay_connection *conn) vstream = viewer_stream_get_by_id(be64toh(request_index.stream_id)); if (!vstream) { DBG("Client requested index of unknown stream id %" PRIu64, - be64toh(request_index.stream_id)); + (uint64_t) be64toh(request_index.stream_id)); viewer_index.status = htobe32(LTTNG_VIEWER_INDEX_ERR); goto send_reply; } @@ -1415,7 +1415,7 @@ int viewer_get_next_index(struct relay_connection *conn) */ DBG("Sending viewer index for stream %" PRIu64 " offset %" PRIu64, rstream->stream_handle, - be64toh(packet_index.offset)); + (uint64_t) be64toh(packet_index.offset)); viewer_index.offset = packet_index.offset; viewer_index.packet_size = packet_index.packet_size; viewer_index.content_size = packet_index.content_size; @@ -1510,7 +1510,7 @@ int viewer_get_packet(struct relay_connection *conn) vstream = viewer_stream_get_by_id(be64toh(get_packet_info.stream_id)); if (!vstream) { DBG("Client requested packet of unknown stream id %" PRIu64, - be64toh(get_packet_info.stream_id)); + (uint64_t) be64toh(get_packet_info.stream_id)); reply_header.status = htobe32(LTTNG_VIEWER_GET_PACKET_ERR); goto send_reply_nolock; } else { @@ -1530,7 +1530,7 @@ int viewer_get_packet(struct relay_connection *conn) SEEK_SET); if (lseek_ret < 0) { PERROR("lseek fd %d to offset %" PRIu64, vstream->stream_fd->fd, - be64toh(get_packet_info.offset)); + (uint64_t) be64toh(get_packet_info.offset)); goto error; } read_len = lttng_read(vstream->stream_fd->fd, @@ -1539,7 +1539,7 @@ int viewer_get_packet(struct relay_connection *conn) if (read_len < packet_data_len) { PERROR("Relay reading trace file, fd: %d, offset: %" PRIu64, vstream->stream_fd->fd, - be64toh(get_packet_info.offset)); + (uint64_t) be64toh(get_packet_info.offset)); goto error; } reply_header.status = htobe32(LTTNG_VIEWER_GET_PACKET_OK); @@ -1573,7 +1573,7 @@ send_reply_nolock: } DBG("Sent %u bytes for stream %" PRIu64, reply_size, - be64toh(get_packet_info.stream_id)); + (uint64_t) be64toh(get_packet_info.stream_id)); end_free: free(reply); @@ -1625,7 +1625,7 @@ int viewer_get_metadata(struct relay_connection *conn) * find it. */ DBG("Client requested metadata of unknown stream id %" PRIu64, - be64toh(request.stream_id)); + (uint64_t) be64toh(request.stream_id)); reply.status = htobe32(LTTNG_VIEWER_METADATA_ERR); goto send_reply; } @@ -1711,7 +1711,7 @@ send_reply: } DBG("Sent %" PRIu64 " bytes of metadata for stream %" PRIu64, len, - be64toh(request.stream_id)); + (uint64_t) be64toh(request.stream_id)); DBG("Metadata sent"); @@ -1800,7 +1800,7 @@ int viewer_detach_session(struct relay_connection *conn) session = session_get_by_id(be64toh(request.session_id)); if (!session) { DBG("Relay session %" PRIu64 " not found", - be64toh(request.session_id)); + (uint64_t) be64toh(request.session_id)); response.status = htobe32(LTTNG_VIEWER_DETACH_SESSION_UNK); goto send_reply; } @@ -1995,11 +1995,6 @@ restart: health_code_update(); - if (!revents) { - /* No activity for this FD (poll implementation). */ - continue; - } - /* Thread quit pipe has been closed. Killing thread. */ ret = check_thread_quit_pipe(pollfd, revents); if (ret) {