diff options
author | mrlolthe1st <mrlolthe1st@yandex-team.com> | 2022-11-03 14:57:28 +0300 |
---|---|---|
committer | mrlolthe1st <mrlolthe1st@yandex-team.com> | 2022-11-03 14:57:28 +0300 |
commit | e7d80dcf83664a6f49f2c1265a0a16162a112a59 (patch) | |
tree | b23e0ce6e3979c17aeee7bf9c1f0efac429b77fa | |
parent | f6313e0ed2947ba490bb9b21781ec57cc839d1e9 (diff) | |
download | ydb-e7d80dcf83664a6f49f2c1265a0a16162a112a59.tar.gz |
fix issues backtrace symbolizing
fix issues symbolize
test on testing
-rw-r--r-- | ydb/library/yql/providers/dq/provider/yql_dq_gateway.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ydb/library/yql/providers/dq/provider/yql_dq_gateway.cpp b/ydb/library/yql/providers/dq/provider/yql_dq_gateway.cpp index a821ec3d52a..c437730ceba 100644 --- a/ydb/library/yql/providers/dq/provider/yql_dq_gateway.cpp +++ b/ydb/library/yql/providers/dq/provider/yql_dq_gateway.cpp @@ -81,9 +81,20 @@ public: NYql::TIssues issues; auto operation = resp.operation(); - for (auto& message : *operation.Mutableissues()) { - message.Setmessage(NBacktrace::Symbolize(message.Getmessage(), modulesMapping)); + + for (auto& message_ : *operation.Mutableissues()) { + TDeque<std::remove_reference_t<decltype(message_)>*> queue; + queue.push_front(&message_); + while (!queue.empty()) { + auto& message = *queue.front(); + queue.pop_front(); + message.Setmessage(NBacktrace::Symbolize(message.Getmessage(), modulesMapping)); + for (auto &subMsg : *message.Mutableissues()) { + queue.push_back(&subMsg); + } + } } + NYql::IssuesFromMessage(operation.issues(), issues); error = false; for (const auto& issue : issues) { |