projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: don't expose empty streams
[lttng-tools.git]
/
src
/
bin
/
lttng-relayd
/
main.c
diff --git
a/src/bin/lttng-relayd/main.c
b/src/bin/lttng-relayd/main.c
index 057ac4046c01e67ae05fa938db49e89c9c913718..adb044f1d3ebd4b6b6d58a035c6e4d9eece706b9 100644
(file)
--- a/
src/bin/lttng-relayd/main.c
+++ b/
src/bin/lttng-relayd/main.c
@@
-2146,6
+2146,7
@@
static int relay_process_data(struct relay_connection *conn)
uint64_t net_seq_num;
uint32_t data_size;
struct relay_session *session;
uint64_t net_seq_num;
uint32_t data_size;
struct relay_session *session;
+ bool new_stream = false;
ret = conn->sock->ops->recvmsg(conn->sock, &data_hdr,
sizeof(struct lttcomm_relayd_data_hdr), 0);
ret = conn->sock->ops->recvmsg(conn->sock, &data_hdr,
sizeof(struct lttcomm_relayd_data_hdr), 0);
@@
-2269,10
+2270,19
@@
static int relay_process_data(struct relay_connection *conn)
}
stream->tracefile_size_current +=
data_size + be32toh(data_hdr.padding_size);
}
stream->tracefile_size_current +=
data_size + be32toh(data_hdr.padding_size);
+ if (stream->prev_seq == -1ULL) {
+ new_stream = true;
+ }
+
stream->prev_seq = net_seq_num;
end_stream_unlock:
pthread_mutex_unlock(&stream->lock);
stream->prev_seq = net_seq_num;
end_stream_unlock:
pthread_mutex_unlock(&stream->lock);
+ if (new_stream) {
+ pthread_mutex_lock(&session->lock);
+ uatomic_set(&session->new_streams, 1);
+ pthread_mutex_unlock(&session->lock);
+ }
end_stream_put:
stream_put(stream);
end:
end_stream_put:
stream_put(stream);
end:
This page took
0.023395 seconds
and
4
git commands to generate.