X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Flive.c;h=5d3449d4f451f49aaf64a6f3506a4b93c1affc3c;hp=888ec2d4f616d10f5d4720bfbea05158361d48bf;hb=3b463131be76ea826a7e74f9b88422573e3a2076;hpb=bddf80e4fe0b4c2706357e2d3a5ddb47f69a0bd7 diff --git a/src/bin/lttng-relayd/live.c b/src/bin/lttng-relayd/live.c index 888ec2d4f..5d3449d4f 100644 --- a/src/bin/lttng-relayd/live.c +++ b/src/bin/lttng-relayd/live.c @@ -1629,7 +1629,15 @@ int viewer_get_metadata(struct relay_connection *conn) vstream = viewer_stream_get_by_id(be64toh(request.stream_id)); if (!vstream) { - reply.status = htobe32(LTTNG_VIEWER_NO_NEW_METADATA); + /* + * The metadata stream can be closed by a CLOSE command + * just before we attach. It can also be closed by + * per-pid tracing during tracing. Therefore, it is + * possible that we cannot find this viewer stream. + * Reply back to the client with an error if we cannot + * find it. + */ + reply.status = htobe32(LTTNG_VIEWER_METADATA_ERR); goto send_reply; } pthread_mutex_lock(&vstream->stream->lock);