diff --git a/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp b/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp index 10026e5321da..60dae26fb9df 100644 --- a/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp +++ b/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp @@ -836,7 +836,10 @@ void TQueryExecutionStats::AddComputeActorStats(ui32 /* nodeId */, NYql::NDqProt // TODO(ilezhankin): investigate - for some reason `task.FinishTimeMs` may be large (or small?) // enough to result in an enormous duration - triggering the "long tasks" mode. - auto taskDuration = TDuration::MilliSeconds(task.GetFinishTimeMs() - task.GetStartTimeMs()); + auto taskDuration = TDuration::MilliSeconds( + task.GetStartTimeMs() != 0 && task.GetFinishTimeMs() >= task.GetStartTimeMs() + ? task.GetFinishTimeMs() - task.GetStartTimeMs() + : 0); auto& longestTaskDuration = LongestTaskDurations[task.GetStageId()]; if (taskDuration > Max(collectLongTaskStatsTimeout, longestTaskDuration)) { CollectStatsByLongTasks = true; @@ -982,7 +985,10 @@ void TQueryExecutionStats::AddDatashardStats(NYql::NDqProto::TDqComputeActorStat // checking whether the task is long - auto taskDuration = TDuration::MilliSeconds(task.GetFinishTimeMs() - task.GetStartTimeMs()); + auto taskDuration = TDuration::MilliSeconds( + task.GetStartTimeMs() != 0 && task.GetFinishTimeMs() >= task.GetStartTimeMs() + ? task.GetFinishTimeMs() - task.GetStartTimeMs() + : 0); auto& longestTaskDuration = LongestTaskDurations[task.GetStageId()]; if (taskDuration > Max(collectLongTaskStatsTimeout, longestTaskDuration)) { CollectStatsByLongTasks = true; diff --git a/ydb/core/kqp/runtime/kqp_write_actor.cpp b/ydb/core/kqp/runtime/kqp_write_actor.cpp index 63b47668c87f..fcd1ad539fb9 100644 --- a/ydb/core/kqp/runtime/kqp_write_actor.cpp +++ b/ydb/core/kqp/runtime/kqp_write_actor.cpp @@ -2802,7 +2802,7 @@ class TKqpBufferWriteActor :public TActorBootstrapped, pub void UpdateTracingState(const char* name, NWilson::TTraceId traceId) { BufferWriteActorStateSpan = NWilson::TSpan(TWilsonKqp::BufferWriteActorState, std::move(traceId), name, NWilson::EFlags::AUTO_END); - if (traceId != BufferWriteActorSpan.GetTraceId()) { + if (BufferWriteActorStateSpan.GetTraceId() != BufferWriteActorSpan.GetTraceId()) { BufferWriteActorStateSpan.Link(BufferWriteActorSpan.GetTraceId()); } for (auto& [_, info] : WriteInfos) { diff --git a/ydb/core/kqp/runtime/kqp_write_table.cpp b/ydb/core/kqp/runtime/kqp_write_table.cpp index 36fb6a6eb300..9b4bda13120a 100644 --- a/ydb/core/kqp/runtime/kqp_write_table.cpp +++ b/ydb/core/kqp/runtime/kqp_write_table.cpp @@ -245,7 +245,7 @@ class TRowBatch : public IDataBatch { for (const auto& row : Rows) { AFL_ENSURE(row.size() == Rows.front().size()); const auto size = EstimateSize(row); - SerializedMemory += GetCellHeaderSize() * rows.Size() + size; + SerializedMemory += GetCellHeaderSize() * row.size() + size; Memory += size; } }