Arnab Karmakar created IMPALA-15607:
---------------------------------------
Summary: Runtime profile THRIFT/BASE64 omits exec summary (stored
on Summary child, serialized from root)
Key: IMPALA-15607
URL: https://issues.apache.org/jira/browse/IMPALA-15607
Project: IMPALA
Issue Type: Bug
Components: Backend
Reporter: Arnab Karmakar
When a client requests a runtime profile in THRIFT or BASE64 form, Impala
builds {{TRuntimeProfileTree}} from the root Query profile
({{{}ClientRequestState::profile(){}}}). The exec summary lives in
{{{}TRuntimeProfileTree.exec_summary{}}}, which {{RuntimeProfile::ToThrift()}}
fills only from that root profile’s stored {{TExecSummary}}
({{{}SetTExecSummary{}}} / {{GetExecSummary}} on the profile {{ToThrift()}} was
called on).
{{ImpalaServer::UpdateExecSummary()}} updates the summary on the Summary child
profile ({{{}summary_profile()->SetTExecSummary(...){}}}), not on the root. The
child still gets the redacted ExecSummary info string for text profiles, but
the root’s {{t_exec_summary_}} is never set. Deserialization
({{{}CreateFromThrift{}}}) correctly restores {{exec_summary}} onto the root,
so the Thrift contract expects the summary on the tree root—our write path does
not match.
Impact: Tools that decode THRIFT/BASE64 profiles (including archived profiles
using the same serialization) see an empty {{exec_summary}} even when the query
is running or finished and data is available elsewhere. {{GetExecSummary}}
still works because it reads from the coordinator, not from the profile tree.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)