@@ -684,7 +684,7 @@ class TKqpExecuterBase : public TActorBootstrapped<TDerived> {
684
684
if (statusCode == Ydb::StatusIds::INTERNAL_ERROR) {
685
685
InternalError (issues);
686
686
} else if (statusCode == Ydb::StatusIds::TIMEOUT) {
687
- TimeoutError (ev->Sender );
687
+ TimeoutError (ev->Sender , issues );
688
688
} else {
689
689
RuntimeError (NYql::NDq::DqStatusToYdbStatus (msg.GetStatusCode ()), issues);
690
690
}
@@ -1706,29 +1706,34 @@ class TKqpExecuterBase : public TActorBootstrapped<TDerived> {
1706
1706
ReplyErrorAndDie (status, &issues);
1707
1707
}
1708
1708
1709
- void TimeoutError (TActorId abortSender) {
1709
+ void TimeoutError (TActorId abortSender, NYql::TIssues issues ) {
1710
1710
if (AlreadyReplied) {
1711
1711
LOG_E (" Timeout when we already replied - not good" << Endl << TBackTrace ().PrintToString () << Endl);
1712
1712
return ;
1713
1713
}
1714
1714
1715
1715
const auto status = NYql::NDqProto::StatusIds::TIMEOUT;
1716
- const TString message = " Request timeout exceeded" ;
1716
+ if (issues.Empty ()) {
1717
+ issues.AddIssue (" Request timeout exceeded" );
1718
+ }
1717
1719
1718
- TerminateComputeActors (Ydb::StatusIds::TIMEOUT, message );
1720
+ TerminateComputeActors (Ydb::StatusIds::TIMEOUT, issues );
1719
1721
1720
1722
AlreadyReplied = true ;
1721
1723
1722
- LOG_E (" Abort execution: " << NYql::NDqProto::StatusIds_StatusCode_Name (status) << " ," << message );
1724
+ LOG_E (" Abort execution: " << NYql::NDqProto::StatusIds_StatusCode_Name (status) << " , " << issues. ToOneLineString () );
1723
1725
if (ExecuterSpan) {
1724
1726
ExecuterSpan.EndError (TStringBuilder () << NYql::NDqProto::StatusIds_StatusCode_Name (status));
1725
1727
}
1726
1728
1727
1729
ResponseEv->Record .MutableResponse ()->SetStatus (Ydb::StatusIds::TIMEOUT);
1730
+ for (const auto & issue : issues) {
1731
+ NYql::IssueToMessage (issue, ResponseEv->Record .MutableResponse ()->AddIssues ());
1732
+ }
1728
1733
1729
1734
// TEvAbortExecution can come from either ComputeActor or SessionActor (== Target).
1730
1735
if (abortSender != Target) {
1731
- auto abortEv = MakeHolder<TEvKqp::TEvAbortExecution>(status, message );
1736
+ auto abortEv = MakeHolder<TEvKqp::TEvAbortExecution>(status, issues );
1732
1737
this ->Send (Target, abortEv.Release ());
1733
1738
}
1734
1739
0 commit comments