From adbc415b41aa1c4e6e4f54aa25bc6a24d75b1183 Mon Sep 17 00:00:00 2001 From: Nathan VanBenschoten Date: Thu, 5 Sep 2019 21:00:55 -0400 Subject: [PATCH] storage: don't check txn deadline twice in isOnePhaseCommit As of #35284, this was already checked by IsEndTransactionTriggeringRetryError. Release note: None --- pkg/storage/batcheval/cmd_end_transaction.go | 20 +++++++++----------- pkg/storage/replica_write.go | 3 --- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/pkg/storage/batcheval/cmd_end_transaction.go b/pkg/storage/batcheval/cmd_end_transaction.go index e4ac95b1f9e3..096fa765087d 100644 --- a/pkg/storage/batcheval/cmd_end_transaction.go +++ b/pkg/storage/batcheval/cmd_end_transaction.go @@ -406,18 +406,16 @@ func IsEndTransactionTriggeringRetryError( retry, reason = false, 0 } - if !retry { - if IsEndTransactionExceedingDeadline(txn.Timestamp, args) { - exceededBy := txn.Timestamp.GoTime().Sub(args.Deadline.GoTime()) - fromStart := txn.Timestamp.GoTime().Sub(txn.OrigTimestamp.GoTime()) - extraMsg = fmt.Sprintf( - "txn timestamp pushed too much; deadline exceeded by %s (%s > %s), "+ - "original timestamp %s ago (%s)", - exceededBy, txn.Timestamp, args.Deadline, fromStart, txn.OrigTimestamp) - retry, reason = true, roachpb.RETRY_COMMIT_DEADLINE_EXCEEDED - } + // However, a transaction must obey its deadline, if set. + if !retry && IsEndTransactionExceedingDeadline(txn.Timestamp, args) { + exceededBy := txn.Timestamp.GoTime().Sub(args.Deadline.GoTime()) + fromStart := txn.Timestamp.GoTime().Sub(txn.OrigTimestamp.GoTime()) + extraMsg = fmt.Sprintf( + "txn timestamp pushed too much; deadline exceeded by %s (%s > %s), "+ + "original timestamp %s ago (%s)", + exceededBy, txn.Timestamp, args.Deadline, fromStart, txn.OrigTimestamp) + retry, reason = true, roachpb.RETRY_COMMIT_DEADLINE_EXCEEDED } - return retry, reason, extraMsg } diff --git a/pkg/storage/replica_write.go b/pkg/storage/replica_write.go index ee3ca3e86b1d..00f8f40853b5 100644 --- a/pkg/storage/replica_write.go +++ b/pkg/storage/replica_write.go @@ -448,9 +448,6 @@ func isOnePhaseCommit(ba *roachpb.BatchRequest) bool { } arg, _ := ba.GetArg(roachpb.EndTransaction) etArg := arg.(*roachpb.EndTransactionRequest) - if batcheval.IsEndTransactionExceedingDeadline(ba.Txn.Timestamp, etArg) { - return false - } if retry, _, _ := batcheval.IsEndTransactionTriggeringRetryError(ba.Txn, etArg); retry { return false }