Skip to content

Commit 6a917f9

Browse files
committed
Always show table name in locks broken error 2 (#8840)
1 parent 8791163 commit 6a917f9

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

ydb/core/kqp/common/kqp_tx.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ NYql::TIssue GetLocksInvalidatedIssue(const TKqpTransactionContext& txCtx, const
1313

1414
if (pathId.OwnerId() != 0) {
1515
auto table = txCtx.TableByIdMap.FindPtr(pathId);
16-
YQL_ENSURE(table);
16+
if (!table) {
17+
return YqlIssue(TPosition(), TIssuesIds::KIKIMR_LOCKS_INVALIDATED, message << " Unknown table.");
18+
}
1719
return YqlIssue(TPosition(), TIssuesIds::KIKIMR_LOCKS_INVALIDATED, message << " Table: " << *table);
1820
} else {
1921
// Olap tables don't return SchemeShard in locks, thus we use tableId here.
@@ -22,7 +24,7 @@ NYql::TIssue GetLocksInvalidatedIssue(const TKqpTransactionContext& txCtx, const
2224
return YqlIssue(TPosition(), TIssuesIds::KIKIMR_LOCKS_INVALIDATED, message << " Table: " << table);
2325
}
2426
}
25-
YQL_ENSURE(false);
27+
return YqlIssue(TPosition(), TIssuesIds::KIKIMR_LOCKS_INVALIDATED, message << " Unknown table.");
2628
}
2729
}
2830

ydb/core/kqp/executer_actor/kqp_data_executer.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,12 @@ class TKqpDataExecuter : public TKqpExecuterBase<TKqpDataExecuter, EExecType::Da
241241
}
242242

243243
void Finalize() {
244-
YQL_ENSURE(!LocksBroken);
244+
YQL_ENSURE(!AlreadyReplied);
245+
if (LocksBroken) {
246+
return ReplyErrorAndDie(
247+
Ydb::StatusIds::ABORTED,
248+
YqlIssue(TPosition(), TIssuesIds::KIKIMR_LOCKS_INVALIDATED, "Transaction locks invalidated. Unknown table."));
249+
}
245250

246251
auto& response = *ResponseEv->Record.MutableResponse();
247252

@@ -1253,9 +1258,11 @@ class TKqpDataExecuter : public TKqpExecuterBase<TKqpDataExecuter, EExecType::Da
12531258
ResponseEv->BrokenLockPathId = TKikimrPathId(
12541259
res->Record.GetTxLocks(0).GetSchemeShard(),
12551260
res->Record.GetTxLocks(0).GetPathId());
1261+
return ReplyErrorAndDie(Ydb::StatusIds::ABORTED, {});
12561262
}
12571263

1258-
return ReplyErrorAndDie(Ydb::StatusIds::ABORTED, {});
1264+
CheckExecutionComplete();
1265+
return;
12591266
}
12601267
case NKikimrTxDataShard::TEvProposeTransactionResult::PREPARED: {
12611268
YQL_ENSURE(false);

0 commit comments

Comments
 (0)