From f002fa197a3fe940bd3cbfc88d84d3965315f35c Mon Sep 17 00:00:00 2001 From: Ilia Cherniavskii Date: Wed, 5 May 2021 15:58:32 -0700 Subject: [PATCH] Fix empty metadata invalid json Summary: Fix invalid json in case of empty metadata Differential Revision: D28239004 fbshipit-source-id: 888b38a888ebe9f1f4341a029f00deecdbc9c277 --- libkineto/src/output_json.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libkineto/src/output_json.cpp b/libkineto/src/output_json.cpp index 58f5997e0..f424b9e23 100644 --- a/libkineto/src/output_json.cpp +++ b/libkineto/src/output_json.cpp @@ -191,13 +191,18 @@ void ChromeTraceLogger::handleCpuActivity( return; } + auto op_metadata = op.getMetadata(); + std::string separator = ""; + if (op_metadata.find_first_not_of(" \t\n") != std::string::npos) { + separator = ","; + } // clang-format off traceOf_ << fmt::format(R"JSON( {{ "ph": "X", "cat": "Operator", {}, "args": {{ "Device": {}, "External id": {}, - "Trace name": "{}", "Trace iteration": {}, + "Trace name": "{}", "Trace iteration": {} {} {} }} }},)JSON", @@ -205,7 +210,8 @@ void ChromeTraceLogger::handleCpuActivity( // args op.device, op.correlation, span.name, span.iteration, - op.getMetadata()); + separator, + op_metadata); // clang-format on }