@@ -2707,6 +2707,50 @@ func (s *testCommitterSuite) TestKillSignal() {
27072707 s .ErrorContains (err , "query interrupted" )
27082708}
27092709
2710+ func (s * testCommitterSuite ) TestUninterruptibleAction () {
2711+ s .Run ("Cleanup" , func () {
2712+ var killed uint32 = 0
2713+ txn := s .begin ()
2714+ txn .SetVars (kv .NewVariables (& killed ))
2715+ err := txn .Set ([]byte ("k1" ), []byte ("v1" ))
2716+ s .NoError (err )
2717+ committer , err := txn .NewCommitter (0 )
2718+ s .NoError (err )
2719+ err = committer .PrewriteAllMutations (context .Background ())
2720+ s .NoError (err )
2721+ atomic .StoreUint32 (& killed , 2 )
2722+ s .NoError (committer .CleanupMutations (context .Background ()))
2723+ })
2724+ s .Run ("PessimisticRollback" , func () {
2725+ var killed uint32 = 0
2726+ txn := s .begin ()
2727+ txn .SetVars (kv .NewVariables (& killed ))
2728+ txn .SetPessimistic (true )
2729+ err := txn .LockKeys (context .Background (), kv .NewLockCtx (txn .StartTS (), kv .LockNoWait , time .Now ()), []byte ("k2" ))
2730+ s .NoError (err )
2731+ atomic .StoreUint32 (& killed , 2 )
2732+ committer , err := txn .NewCommitter (0 )
2733+ s .NoError (err )
2734+ s .NoError (committer .PessimisticRollbackMutations (context .Background (), committer .GetMutations ()))
2735+ })
2736+ s .Run ("Commit" , func () {
2737+ var killed uint32 = 0
2738+ txn := s .begin ()
2739+ txn .SetVars (kv .NewVariables (& killed ))
2740+ err := txn .Set ([]byte ("k1" ), []byte ("v1" ))
2741+ s .NoError (err )
2742+ committer , err := txn .NewCommitter (0 )
2743+ s .NoError (err )
2744+ err = committer .PrewriteAllMutations (context .Background ())
2745+ s .NoError (err )
2746+ atomic .StoreUint32 (& killed , 2 )
2747+ commitTS , err := s .store .GetOracle ().GetTimestamp (context .Background (), & oracle.Option {})
2748+ s .NoError (err )
2749+ committer .SetCommitTS (commitTS )
2750+ s .NoError (committer .CommitMutations (context .Background ()))
2751+ })
2752+ }
2753+
27102754func (s * testCommitterSuite ) Test2PCLifecycleHooks () {
27112755 reachedPre := atomic.Bool {}
27122756 reachedPost := atomic.Bool {}
0 commit comments