blob: 2159092e96a77a5dcc3006c18fba8de172380ff5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
Parsed test spec with 4 sessions
starting permutation: s1_share s2_for_update s3_share s3_for_update s1_rollback s3_rollback s2_rollback
step s1_share: select id from tlu_job where id = 1 for share;
id
--
1
(1 row)
step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s3_share: select id from tlu_job where id = 1 for share;
id
--
1
(1 row)
step s3_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s1_rollback: rollback;
step s3_for_update: <... completed>
id
--
1
(1 row)
step s3_rollback: rollback;
step s2_for_update: <... completed>
id
--
1
(1 row)
step s2_rollback: rollback;
starting permutation: s1_keyshare s2_for_update s3_keyshare s1_update s3_update s1_rollback s3_rollback s2_rollback
step s1_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s3_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s1_update: update tlu_job set name = 'b' where id = 1;
step s3_update: update tlu_job set name = 'c' where id = 1; <waiting ...>
step s1_rollback: rollback;
step s3_update: <... completed>
step s3_rollback: rollback;
step s2_for_update: <... completed>
id
--
1
(1 row)
step s2_rollback: rollback;
starting permutation: s1_keyshare s2_for_update s3_keyshare s1_update s3_update s1_commit s3_rollback s2_rollback
step s1_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s3_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s1_update: update tlu_job set name = 'b' where id = 1;
step s3_update: update tlu_job set name = 'c' where id = 1; <waiting ...>
step s1_commit: commit;
step s3_update: <... completed>
step s3_rollback: rollback;
step s2_for_update: <... completed>
id
--
1
(1 row)
step s2_rollback: rollback;
starting permutation: s1_keyshare s2_for_update s3_keyshare s3_delete s1_rollback s3_rollback s2_rollback
step s1_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s3_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s3_delete: delete from tlu_job where id = 1; <waiting ...>
step s1_rollback: rollback;
step s3_delete: <... completed>
step s3_rollback: rollback;
step s2_for_update: <... completed>
id
--
1
(1 row)
step s2_rollback: rollback;
starting permutation: s1_keyshare s2_for_update s3_keyshare s3_delete s1_rollback s3_commit s2_rollback
step s1_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s3_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s3_delete: delete from tlu_job where id = 1; <waiting ...>
step s1_rollback: rollback;
step s3_delete: <... completed>
step s3_commit: commit;
step s2_for_update: <... completed>
id
--
(0 rows)
step s2_rollback: rollback;
starting permutation: s1_share s2_for_update s3_for_update s1_rollback s2_rollback s3_rollback
step s1_share: select id from tlu_job where id = 1 for share;
id
--
1
(1 row)
step s2_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s3_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s1_rollback: rollback;
step s2_for_update: <... completed>
id
--
1
(1 row)
step s2_rollback: rollback;
step s3_for_update: <... completed>
id
--
1
(1 row)
step s3_rollback: rollback;
starting permutation: s1_share s2_update s3_update s1_rollback s2_rollback s3_rollback
step s1_share: select id from tlu_job where id = 1 for share;
id
--
1
(1 row)
step s2_update: update tlu_job set name = 'b' where id = 1; <waiting ...>
step s3_update: update tlu_job set name = 'c' where id = 1; <waiting ...>
step s1_rollback: rollback;
step s2_update: <... completed>
step s2_rollback: rollback;
step s3_update: <... completed>
step s3_rollback: rollback;
starting permutation: s1_share s2_delete s3_delete s1_rollback s2_rollback s3_rollback
step s1_share: select id from tlu_job where id = 1 for share;
id
--
1
(1 row)
step s2_delete: delete from tlu_job where id = 1; <waiting ...>
step s3_delete: delete from tlu_job where id = 1; <waiting ...>
step s1_rollback: rollback;
step s2_delete: <... completed>
step s2_rollback: rollback;
step s3_delete: <... completed>
step s3_rollback: rollback;
starting permutation: s1_keyshare s3_for_update s2_for_keyshare s1_savept_e s1_share s1_savept_f s1_fornokeyupd s2_fornokeyupd s0_begin s0_keyshare s1_rollback_f s0_keyshare s1_rollback_e s1_rollback s2_rollback s0_rollback s3_rollback
step s1_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s3_for_update: select id from tlu_job where id = 1 for update; <waiting ...>
step s2_for_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s1_savept_e: savepoint s1_e;
step s1_share: select id from tlu_job where id = 1 for share;
id
--
1
(1 row)
step s1_savept_f: savepoint s1_f;
step s1_fornokeyupd: select id from tlu_job where id = 1 for no key update;
id
--
1
(1 row)
step s2_fornokeyupd: select id from tlu_job where id = 1 for no key update; <waiting ...>
step s0_begin: begin;
step s0_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s1_rollback_f: rollback to s1_f;
step s0_keyshare: select id from tlu_job where id = 1 for key share;
id
--
1
(1 row)
step s1_rollback_e: rollback to s1_e;
step s2_fornokeyupd: <... completed>
id
--
1
(1 row)
step s1_rollback: rollback;
step s2_rollback: rollback;
step s0_rollback: rollback;
step s3_for_update: <... completed>
id
--
1
(1 row)
step s3_rollback: rollback;
|