Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

server: fix start ts in slow log when transaction retrying (#11851) #11877

Merged
merged 2 commits into from
Aug 27, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions session/tidb.go
Original file line number Diff line number Diff line change
Expand Up @@ -209,11 +209,14 @@ func runStmt(ctx context.Context, sctx sessionctx.Context, s sqlexec.Statement)
defer span1.Finish()
}
se := sctx.(*session)
sessVars := se.GetSessionVars()
// Save origTxnCtx here to avoid it reset in the transaction retry.
origTxnCtx := sessVars.TxnCtx
defer func() {
// If it is not a select statement, we record its slow log here,
// then it could include the transaction commit time.
if rs == nil {
s.(*executor.ExecStmt).LogSlowQuery(se.GetSessionVars().TxnCtx.StartTS, err != nil)
s.(*executor.ExecStmt).LogSlowQuery(origTxnCtx.StartTS, err != nil)
}
}()

Expand All @@ -222,7 +225,6 @@ func runStmt(ctx context.Context, sctx sessionctx.Context, s sqlexec.Statement)
return nil, err
}
rs, err = s.Exec(ctx)
sessVars := se.GetSessionVars()
// All the history should be added here.
sessVars.TxnCtx.StatementCount++
if !s.IsReadOnly(sessVars) {
Expand Down