Skip to content

Commit d7c1cb6

Browse files
committed
[improvement] frontend: add sql to fatal log
1 parent a12c319 commit d7c1cb6

File tree

10 files changed

+37
-34
lines changed

10 files changed

+37
-34
lines changed

pkg/frontend/mysql_cmd_executor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2689,7 +2689,7 @@ func executeStmtWithWorkspace(ses FeSession,
26892689
defer ses.ExitFPrint(FPExecStmtWithWorkspaceBeforeStart)
26902690
//!!!NOTE!!!: statement management
26912691
//2. start statement on workspace
2692-
txnOp.GetWorkspace().StartStatement()
2692+
txnOp.GetWorkspace().StartStatement(execCtx.stmt.String())
26932693
//3. end statement on workspace
26942694
// defer Start/End Statement management, called after finishTxnFunc()
26952695
defer func() {

pkg/frontend/test/txn_mock.go

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/frontend/txn_test.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ func newTestWorkspace() *testWorkspace {
7474
return &testWorkspace{}
7575
}
7676

77-
func (txn *testWorkspace) StartStatement() {
77+
func (txn *testWorkspace) StartStatement(sql string) {
7878
if txn.start {
79-
panic("BUG: StartStatement called twice")
79+
panic(fmt.Sprintf("BUG: StartStatement called twice, sql: %s", sql))
8080
}
8181
txn.start = true
8282
txn.incr = false
@@ -177,7 +177,7 @@ func TestWorkspace(t *testing.T) {
177177
convey.So(
178178
func() {
179179
wsp := newTestWorkspace()
180-
wsp.StartStatement()
180+
wsp.StartStatement("")
181181
wsp.EndStatement()
182182
},
183183
convey.ShouldNotPanic,
@@ -196,8 +196,8 @@ func TestWorkspace(t *testing.T) {
196196
convey.So(
197197
func() {
198198
wsp := newTestWorkspace()
199-
wsp.StartStatement()
200-
wsp.StartStatement()
199+
wsp.StartStatement("")
200+
wsp.StartStatement("")
201201
},
202202
convey.ShouldPanic,
203203
)
@@ -217,7 +217,7 @@ func TestWorkspace(t *testing.T) {
217217
convey.So(
218218
func() {
219219
wsp := newTestWorkspace()
220-
wsp.StartStatement()
220+
wsp.StartStatement("")
221221
err := wsp.IncrStatementID(context.TODO(), false)
222222
convey.So(err, convey.ShouldBeNil)
223223
//incr twice
@@ -231,7 +231,7 @@ func TestWorkspace(t *testing.T) {
231231
convey.So(
232232
func() {
233233
wsp := newTestWorkspace()
234-
wsp.StartStatement()
234+
wsp.StartStatement("")
235235
err := wsp.RollbackLastStatement(context.TODO())
236236
convey.So(err, convey.ShouldBeNil)
237237
},
@@ -242,7 +242,7 @@ func TestWorkspace(t *testing.T) {
242242
convey.So(
243243
func() {
244244
wsp := newTestWorkspace()
245-
wsp.StartStatement()
245+
wsp.StartStatement("")
246246
err := wsp.IncrStatementID(context.TODO(), false)
247247
convey.So(err, convey.ShouldBeNil)
248248
err = wsp.RollbackLastStatement(context.TODO())
@@ -484,7 +484,7 @@ func Test_rollbackStatement(t *testing.T) {
484484
NeedToBeCommittedInActiveTransaction(&tree.Insert{}), convey.ShouldBeFalse)
485485
convey.So(txnOp != nil && !ses.IsDerivedStmt(), convey.ShouldBeTrue)
486486
//called incrStatement
487-
txnOp.GetWorkspace().StartStatement()
487+
txnOp.GetWorkspace().StartStatement("")
488488
err = txnOp.GetWorkspace().IncrStatementID(ctx, false)
489489
convey.So(err, convey.ShouldBeNil)
490490
ec.stmt = &tree.Insert{}
@@ -514,7 +514,7 @@ func Test_rollbackStatement(t *testing.T) {
514514
NeedToBeCommittedInActiveTransaction(&tree.Insert{}), convey.ShouldBeFalse)
515515
convey.So(txnOp != nil && !ses.IsDerivedStmt(), convey.ShouldBeTrue)
516516
//called incrStatement
517-
txnOp.GetWorkspace().StartStatement()
517+
txnOp.GetWorkspace().StartStatement("")
518518
err = txnOp.GetWorkspace().IncrStatementID(ctx, false)
519519
convey.So(err, convey.ShouldBeNil)
520520
ec.stmt = &tree.Insert{}
@@ -671,7 +671,7 @@ func Test_rollbackStatement5(t *testing.T) {
671671
NeedToBeCommittedInActiveTransaction(&tree.Insert{}), convey.ShouldBeFalse)
672672
convey.So(txnOp != nil && !ses.IsDerivedStmt(), convey.ShouldBeTrue)
673673
//called incrStatement
674-
txnOp.GetWorkspace().StartStatement()
674+
txnOp.GetWorkspace().StartStatement("")
675675
err = txnOp.GetWorkspace().IncrStatementID(ctx, false)
676676
convey.So(err, convey.ShouldBeNil)
677677
ec.stmt = &tree.Insert{}
@@ -710,7 +710,7 @@ func Test_rollbackStatement6(t *testing.T) {
710710
NeedToBeCommittedInActiveTransaction(&tree.Insert{}), convey.ShouldBeFalse)
711711
convey.So(txnOp != nil && !ses.IsDerivedStmt(), convey.ShouldBeTrue)
712712
//called incrStatement
713-
txnOp.GetWorkspace().StartStatement()
713+
txnOp.GetWorkspace().StartStatement("")
714714
err = txnOp.GetWorkspace().IncrStatementID(ctx, false)
715715
convey.So(err, convey.ShouldBeNil)
716716
ec.stmt = &tree.Insert{}
@@ -745,7 +745,7 @@ func Test_rollbackStatement6(t *testing.T) {
745745
NeedToBeCommittedInActiveTransaction(&tree.Insert{}), convey.ShouldBeFalse)
746746
convey.So(txnOp != nil && !ses.IsDerivedStmt(), convey.ShouldBeTrue)
747747
//called incrStatement
748-
txnOp.GetWorkspace().StartStatement()
748+
txnOp.GetWorkspace().StartStatement("")
749749
err = txnOp.GetWorkspace().IncrStatementID(ctx, false)
750750
convey.So(err, convey.ShouldBeNil)
751751
ec.stmt = &tree.Insert{}

pkg/frontend/util_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ func TestGetExprValue(t *testing.T) {
621621
ws.EXPECT().IncrStatementID(gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
622622
ws.EXPECT().IncrSQLCount().AnyTimes()
623623
ws.EXPECT().GetSQLCount().AnyTimes()
624-
ws.EXPECT().StartStatement().AnyTimes()
624+
ws.EXPECT().StartStatement("").AnyTimes()
625625
ws.EXPECT().EndStatement().AnyTimes()
626626
ws.EXPECT().GetSnapshotWriteOffset().Return(0).AnyTimes()
627627
ws.EXPECT().UpdateSnapshotWriteOffset().AnyTimes()
@@ -729,7 +729,7 @@ func TestGetExprValue(t *testing.T) {
729729

730730
ws := mock_frontend.NewMockWorkspace(ctrl)
731731
ws.EXPECT().IncrStatementID(gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
732-
ws.EXPECT().StartStatement().AnyTimes()
732+
ws.EXPECT().StartStatement("").AnyTimes()
733733
ws.EXPECT().EndStatement().AnyTimes()
734734
ws.EXPECT().GetSnapshotWriteOffset().Return(0).AnyTimes()
735735
ws.EXPECT().UpdateSnapshotWriteOffset().AnyTimes()

pkg/sql/compile/sql_executor.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func (s *sqlExecutor) NewTxnOperator(ctx context.Context) client.TxnOperator {
9999
return nil
100100
}
101101
}
102-
opts.Txn().GetWorkspace().StartStatement()
102+
opts.Txn().GetWorkspace().StartStatement("")
103103
opts.Txn().GetWorkspace().IncrStatementID(ctx, false)
104104
return opts.Txn()
105105
}
@@ -282,7 +282,7 @@ func (exec *txnExecutor) Exec(
282282
// maybe we should fix it.
283283
txnOp := exec.opts.Txn()
284284
if txnOp != nil && !exec.opts.DisableIncrStatement() {
285-
txnOp.GetWorkspace().StartStatement()
285+
txnOp.GetWorkspace().StartStatement(sql)
286286
defer func() {
287287
txnOp.GetWorkspace().EndStatement()
288288
}()

pkg/txn/client/types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ type Workspace interface {
250250
Readonly() bool
251251

252252
// StartStatement tag a statement is running
253-
StartStatement()
253+
StartStatement(string)
254254
// EndStatement tag end a statement is completed
255255
EndStatement()
256256

pkg/vm/engine/disttae/types.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -525,9 +525,12 @@ func (txn *Transaction) PPString() string {
525525
stringifySlice(txn.transfer.timestamps, func(a any) string { t := a.(timestamp.Timestamp); return t.DebugString() }))
526526
}
527527

528-
func (txn *Transaction) StartStatement() {
528+
func (txn *Transaction) StartStatement(sql string) {
529529
if txn.startStatementCalled {
530-
logutil.Fatal("BUG: StartStatement called twice", zap.String("txn", hex.EncodeToString(txn.op.Txn().ID)))
530+
logutil.Fatal("BUG: StartStatement called twice",
531+
zap.String("txn", hex.EncodeToString(txn.op.Txn().ID)),
532+
zap.String("SQL", sql),
533+
)
531534
}
532535
txn.startStatementCalled = true
533536
txn.incrStatementCalled = false

pkg/vm/engine/test/disttae_engine_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ func TestSystemDB1(t *testing.T) {
163163
txnop = p.StartCNTxn()
164164
dbs, err = p.D.Engine.Databases(p.Ctx, txnop)
165165
require.NoError(t, err)
166-
txnop.GetWorkspace().StartStatement()
166+
txnop.GetWorkspace().StartStatement("")
167167
require.Equal(t, 2+1, len(dbs))
168168

169169
txn, err := p.T.StartTxn()
@@ -561,7 +561,7 @@ func TestColumnsTransfer(t *testing.T) {
561561
require.NoError(t, txnop.Commit(p.Ctx))
562562

563563
txnop = p.StartCNTxn()
564-
txnop.GetWorkspace().StartStatement()
564+
txnop.GetWorkspace().StartStatement("")
565565
p.DeleteTableInDB(txnop, "db", schema2.Name)
566566

567567
txn, _ := tae.StartTxn(nil)

pkg/vm/engine/test/testutil/util.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ func WriteToRelation(
444444
bat *batch.Batch,
445445
isDelete, toEndStatement bool,
446446
) (err error) {
447-
txn.GetWorkspace().StartStatement()
447+
txn.GetWorkspace().StartStatement("")
448448
if isDelete {
449449
err = relation.Delete(ctx, bat, catalog2.Row_ID)
450450
} else {

pkg/vm/engine/test/workspace_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -809,7 +809,7 @@ func Test_BasicRollbackStatement(t *testing.T) {
809809

810810
require.NoError(t, testutil.WriteToRelation(ctx, txn, relation, bat1, false, true))
811811

812-
txn.GetWorkspace().StartStatement()
812+
txn.GetWorkspace().StartStatement("")
813813
require.NoError(t, relation.Write(ctx, bat2))
814814
require.NoError(t, txn.GetWorkspace().RollbackLastStatement(ctx))
815815
require.NoError(t, txn.GetWorkspace().IncrStatementID(ctx, false))
@@ -921,7 +921,7 @@ func Test_BasicRollbackStatementS3(t *testing.T) {
921921

922922
require.NoError(t, testutil.WriteToRelation(ctx, txn, relation, bat1, false, true))
923923

924-
txn.GetWorkspace().StartStatement()
924+
txn.GetWorkspace().StartStatement("")
925925
require.NoError(t, relation.Write(ctx, bat2))
926926
require.NoError(t, txn.GetWorkspace().RollbackLastStatement(ctx))
927927
require.NoError(t, txn.GetWorkspace().IncrStatementID(ctx, false))
@@ -1033,7 +1033,7 @@ func Test_RollbackDeleteAndDrop(t *testing.T) {
10331033
txnop = p.StartCNTxn()
10341034
exec := v.(executor.SQLExecutor)
10351035
execopts := executor.Options{}.WithTxn(txnop).WithDisableIncrStatement()
1036-
txnop.GetWorkspace().StartStatement()
1036+
txnop.GetWorkspace().StartStatement("")
10371037
txnop.GetWorkspace().IncrStatementID(p.Ctx, false)
10381038
dropTable := func() {
10391039
_, err := exec.Exec(p.Ctx, "delete from db.test3 where mock_1 = 0", execopts)
@@ -1182,7 +1182,7 @@ func Test_MultiTxnRollbackStatement(t *testing.T) {
11821182
{
11831183
require.NoError(t, testutil.WriteToRelation(ctx, txn, relation, bat2, false, true))
11841184

1185-
txn.GetWorkspace().StartStatement()
1185+
txn.GetWorkspace().StartStatement("")
11861186
require.NoError(t, relation.Write(ctx, bat2))
11871187
require.NoError(t, txn.GetWorkspace().RollbackLastStatement(ctx))
11881188
require.NoError(t, txn.GetWorkspace().IncrStatementID(ctx, false))
@@ -1357,7 +1357,7 @@ func Test_MultiTxnRollbackStatementS3(t *testing.T) {
13571357

13581358
// txn2 delete 5-15
13591359
{
1360-
txn.GetWorkspace().StartStatement()
1360+
txn.GetWorkspace().StartStatement("")
13611361
require.NoError(t, relation.Write(ctx, bat2))
13621362
require.NoError(t, txn.GetWorkspace().RollbackLastStatement(ctx))
13631363
require.NoError(t, txn.GetWorkspace().IncrStatementID(ctx, false))
@@ -1662,7 +1662,7 @@ func Test_CNTransferTombstoneObjects(t *testing.T) {
16621662
_, _, cnTxnOp, err = p.D.GetTable(ctx, databaseName, tableName)
16631663
require.NoError(t, err)
16641664

1665-
cnTxnOp.GetWorkspace().StartStatement()
1665+
cnTxnOp.GetWorkspace().StartStatement("")
16661666
err = cnTxnOp.GetWorkspace().IncrStatementID(ctx, false)
16671667
require.NoError(t, err)
16681668
}

0 commit comments

Comments
 (0)