github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/kv/kvclient/kvcoord/testdata/savepoints (about)

     1  subtest release
     2  
     3  begin
     4  ----
     5  0 <noignore>
     6  
     7  put k a
     8  ----
     9  
    10  get k
    11  ----
    12  "k" -> a
    13  
    14  savepoint x
    15  ----
    16  1 <noignore>
    17  
    18  put k b
    19  ----
    20  
    21  get k
    22  ----
    23  "k" -> b
    24  
    25  release x
    26  ----
    27  2 <noignore>
    28  
    29  get k
    30  ----
    31  "k" -> b
    32  
    33  commit
    34  ----
    35  
    36  begin
    37  ----
    38  0 <noignore>
    39  
    40  get k
    41  ----
    42  "k" -> b
    43  
    44  commit
    45  ----
    46  
    47  subtest end
    48  
    49  
    50  subtest rollback
    51  
    52  begin
    53  ----
    54  0 <noignore>
    55  
    56  put k a
    57  ----
    58  
    59  get k
    60  ----
    61  "k" -> a
    62  
    63  savepoint x
    64  ----
    65  1 <noignore>
    66  
    67  put k b
    68  ----
    69  
    70  get k
    71  ----
    72  "k" -> b
    73  
    74  rollback x
    75  ----
    76  2 [2-2]
    77  
    78  get k
    79  ----
    80  "k" -> a
    81  
    82  commit
    83  ----
    84  
    85  begin
    86  ----
    87  0 <noignore>
    88  
    89  get k
    90  ----
    91  "k" -> a
    92  
    93  commit
    94  ----
    95  
    96  subtest end
    97  
    98  subtest rollback_after_nested_release
    99  
   100  begin
   101  ----
   102  0 <noignore>
   103  
   104  put k ar
   105  ----
   106  
   107  savepoint x
   108  ----
   109  1 <noignore>
   110  
   111  put k br
   112  ----
   113  
   114  savepoint y
   115  ----
   116  2 <noignore>
   117  
   118  put k cr
   119  ----
   120  
   121  release y
   122  ----
   123  3 <noignore>
   124  
   125  put k dr
   126  ----
   127  
   128  rollback x
   129  ----
   130  4 [2-4]
   131  
   132  get k
   133  ----
   134  "k" -> ar
   135  
   136  commit
   137  ----
   138  
   139  begin
   140  ----
   141  0 <noignore>
   142  
   143  get k
   144  ----
   145  "k" -> ar
   146  
   147  commit
   148  ----
   149  
   150  subtest end
   151  
   152  subtest disjoin_rollbacks
   153  
   154  begin
   155  ----
   156  0 <noignore>
   157  
   158  put a d1
   159  ----
   160  
   161  put b d1
   162  ----
   163  
   164  savepoint x
   165  ----
   166  2 <noignore>
   167  
   168  put a d2
   169  ----
   170  
   171  rollback x
   172  ----
   173  3 [3-3]
   174  
   175  put c d1
   176  ----
   177  
   178  savepoint x
   179  ----
   180  4 [3-3]
   181  
   182  put b 2
   183  ----
   184  
   185  rollback x
   186  ----
   187  5 [3-3][5-5]
   188  
   189  put d 1
   190  ----
   191  
   192  
   193  get a
   194  ----
   195  "a" -> d1
   196  
   197  get b
   198  ----
   199  "b" -> d1
   200  
   201  get c
   202  ----
   203  "c" -> d1
   204  
   205  get d
   206  ----
   207  "d" -> 1
   208  
   209  commit
   210  ----
   211  
   212  begin
   213  ----
   214  0 <noignore>
   215  
   216  get a
   217  ----
   218  "a" -> d1
   219  
   220  get b
   221  ----
   222  "b" -> d1
   223  
   224  get c
   225  ----
   226  "c" -> d1
   227  
   228  get d
   229  ----
   230  "d" -> 1
   231  
   232  commit
   233  ----
   234  
   235  subtest end
   236  
   237  
   238  subtest rollback_with_no_op
   239  
   240  begin
   241  ----
   242  0 <noignore>
   243  
   244  put k nop
   245  ----
   246  
   247  savepoint x
   248  ----
   249  1 <noignore>
   250  
   251  rollback x
   252  ----
   253  1 <noignore>
   254  
   255  release x
   256  ----
   257  1 <noignore>
   258  
   259  commit
   260  ----
   261  
   262  subtest end
   263  
   264  subtest double_rollback_ok
   265  
   266  begin
   267  ----
   268  0 <noignore>
   269  
   270  put k init
   271  ----
   272  
   273  commit
   274  ----
   275  
   276  begin
   277  ----
   278  0 <noignore>
   279  
   280  savepoint x
   281  ----
   282  0 <noignore>
   283  
   284  put k da
   285  ----
   286  
   287  rollback x
   288  ----
   289  1 [1-1]
   290  
   291  rollback x
   292  ----
   293  1 [1-1]
   294  
   295  get k
   296  ----
   297  "k" -> init
   298  
   299  put k db
   300  ----
   301  
   302  rollback x
   303  ----
   304  2 [1-2]
   305  
   306  commit
   307  ----
   308  
   309  begin
   310  ----
   311  0 <noignore>
   312  
   313  get k
   314  ----
   315  "k" -> init
   316  
   317  commit
   318  ----
   319  
   320  subtest end
   321  
   322  subtest rollback_across_retry
   323  begin
   324  ----
   325  0 <noignore>
   326  
   327  savepoint x
   328  ----
   329  0 <noignore>
   330  
   331  retry
   332  ----
   333  synthetic error: TransactionRetryWithProtoRefreshError: forced retry
   334  epoch: 0 -> 1
   335  
   336  release x
   337  ----
   338  0 <noignore>
   339  
   340  rollback x
   341  ----
   342  0 <noignore>
   343  
   344  subtest end
   345  
   346  
   347  
   348  subtest rollback_after_failed_cput
   349  # CPut errors are white-listed to allow a rollback to savepoint afterwards.
   350  
   351  begin
   352  ----
   353  0 <noignore>
   354  
   355  savepoint x
   356  ----
   357  0 <noignore>
   358  
   359  cput k v bogus_expected
   360  ----
   361  (*roachpb.ConditionFailedError) unexpected value
   362  
   363  rollback x
   364  ----
   365  1 [1-1]
   366  
   367  subtest end
   368  
   369  
   370  
   371  subtest rollback_after_random_err
   372  # Only CPut errors allow rollbacks after them. Any other error results in the rollback failing.
   373  
   374  begin
   375  ----
   376  0 <noignore>
   377  
   378  savepoint x
   379  ----
   380  0 <noignore>
   381  
   382  inject-error
   383  ----
   384  injected error
   385  
   386  rollback x
   387  ----
   388  (*telemetrykeys.withTelemetry) unimplemented: cannot rollback to savepoint after error
   389  
   390  subtest end
   391  
   392  
   393  
   394  subtest rollback_across_abort
   395  
   396  begin
   397  ----
   398  0 <noignore>
   399  
   400  savepoint x
   401  ----
   402  0 <noignore>
   403  
   404  abort
   405  ----
   406  (*roachpb.TransactionRetryWithProtoRefreshError)
   407  txn id changed
   408  
   409  release x
   410  ----
   411  0 <noignore>
   412  
   413  rollback x
   414  ----
   415  0 <noignore>
   416  
   417  subtest end
   418  
   419  subtest rollback_across_retry_fails_for_non-initial_savepoint
   420  # The difference from the previous test is that here we do a write before
   421  # creating the savepoint.
   422  begin
   423  ----
   424  0 <noignore>
   425  
   426  put k a
   427  ----
   428  
   429  savepoint x
   430  ----
   431  1 <noignore>
   432  
   433  retry
   434  ----
   435  synthetic error: TransactionRetryWithProtoRefreshError: forced retry
   436  epoch: 0 -> 1
   437  
   438  rollback x
   439  ----
   440  (*roachpb.TransactionRetryWithProtoRefreshError) TransactionRetryWithProtoRefreshError: cannot rollback to savepoint after a transaction restart
   441  
   442  subtest end