"Append" should accept receiving metadata packets that contain exactly 0
byte of metadata payload. This kind of flush can happen on trace
teardown.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
if (packet_metadata(td, fp)) {
ret = ctf_trace_metadata_stream_read(td, &fp, &buf);
if (ret) {
if (packet_metadata(td, fp)) {
ret = ctf_trace_metadata_stream_read(td, &fp, &buf);
if (ret) {
- /* Warn about empty metadata */
- fprintf(stderr, "[warning] Empty metadata.\n");
goto end;
}
td->metadata_string = buf;
goto end;
}
td->metadata_string = buf;
ret = ctf_trace_metadata_read(td, metadata_fp, scanner, 0);
ctf_scanner_free(scanner);
if (ret) {
ret = ctf_trace_metadata_read(td, metadata_fp, scanner, 0);
ctf_scanner_free(scanner);
if (ret) {
+ if (ret == -ENOENT) {
+ fprintf(stderr, "[warning] Empty metadata.\n");
+ }
fprintf(stderr, "[warning] Unable to open trace metadata for path \"%s\".\n", path);
goto error_metadata;
}
fprintf(stderr, "[warning] Unable to open trace metadata for path \"%s\".\n", path);
goto error_metadata;
}
}
ret = ctf_trace_metadata_read(td, metadata_fp, td->scanner, 0);
if (ret) {
}
ret = ctf_trace_metadata_read(td, metadata_fp, td->scanner, 0);
if (ret) {
+ if (ret == -ENOENT) {
+ fprintf(stderr, "[warning] Empty metadata.\n");
+ }
ret = ctf_append_trace_metadata(
viewer_stream->ctf_trace->handle->td,
metadata->ctf_trace->metadata_fp);
ret = ctf_append_trace_metadata(
viewer_stream->ctf_trace->handle->td,
metadata->ctf_trace->metadata_fp);
+ /* We accept empty metadata packets */
+ if (ret != 0 && ret != -ENOENT) {
fprintf(stderr, "[error] Appending metadata\n");
goto error;
}
fprintf(stderr, "[error] Appending metadata\n");
goto error;
}