Commit 011b148
authored
fix(datastore): resolve data race on transaction state (googleapis#12912)
Refactors the state locking for BeginLater transactions. This change:
- Removes the racy stateLockDeferUnlock function.
- Ensures all reads and writes to t.state and t.id are protected by
t.stateLock.
- Fixes a related logic bug where a transaction's ID was ignored if the
first read operation (like Get or Run) returned an ErrNoSuchEntity.
Fixes: googleapis#110381 parent a18bc21 commit 011b148
2 files changed
+36
-57
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
945 | 945 | | |
946 | 946 | | |
947 | 947 | | |
948 | | - | |
949 | | - | |
950 | | - | |
951 | 948 | | |
952 | 949 | | |
953 | 950 | | |
| |||
959 | 956 | | |
960 | 957 | | |
961 | 958 | | |
962 | | - | |
963 | | - | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
964 | 966 | | |
965 | 967 | | |
966 | 968 | | |
| |||
1128 | 1130 | | |
1129 | 1131 | | |
1130 | 1132 | | |
1131 | | - | |
1132 | | - | |
1133 | | - | |
1134 | 1133 | | |
1135 | 1134 | | |
1136 | 1135 | | |
| |||
1144 | 1143 | | |
1145 | 1144 | | |
1146 | 1145 | | |
1147 | | - | |
1148 | | - | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
1149 | 1153 | | |
1150 | 1154 | | |
1151 | 1155 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | 232 | | |
239 | | - | |
240 | 233 | | |
| 234 | + | |
241 | 235 | | |
242 | 236 | | |
243 | 237 | | |
244 | 238 | | |
245 | 239 | | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | 240 | | |
| 241 | + | |
276 | 242 | | |
277 | | - | |
278 | | - | |
279 | 243 | | |
280 | | - | |
281 | | - | |
| 244 | + | |
282 | 245 | | |
| 246 | + | |
| 247 | + | |
283 | 248 | | |
284 | 249 | | |
285 | 250 | | |
| |||
332 | 297 | | |
333 | 298 | | |
334 | 299 | | |
335 | | - | |
| 300 | + | |
| 301 | + | |
336 | 302 | | |
337 | 303 | | |
338 | 304 | | |
| |||
449 | 415 | | |
450 | 416 | | |
451 | 417 | | |
| 418 | + | |
452 | 419 | | |
| 420 | + | |
453 | 421 | | |
454 | 422 | | |
| 423 | + | |
455 | 424 | | |
456 | 425 | | |
457 | 426 | | |
| |||
473 | 442 | | |
474 | 443 | | |
475 | 444 | | |
| 445 | + | |
476 | 446 | | |
| 447 | + | |
477 | 448 | | |
478 | 449 | | |
479 | 450 | | |
| |||
548 | 519 | | |
549 | 520 | | |
550 | 521 | | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
551 | 525 | | |
552 | 526 | | |
553 | 527 | | |
| |||
571 | 545 | | |
572 | 546 | | |
573 | 547 | | |
574 | | - | |
575 | | - | |
576 | | - | |
577 | | - | |
578 | 548 | | |
579 | 549 | | |
580 | 550 | | |
581 | 551 | | |
582 | 552 | | |
583 | 553 | | |
584 | 554 | | |
585 | | - | |
586 | | - | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
587 | 562 | | |
588 | 563 | | |
589 | 564 | | |
| |||
0 commit comments