Commit 1beb6b9
committed
sweepbatcher: persist confirmed batches atomically
Fixes a crash window where handleConf updated the batch row to confirmed but
failed before marking sweeps complete, so re-added sweeps spawned a duplicate
batch or kept retrying. Batch confirmation and sweep completion are now
persisted inside a single DB transaction ConfirmBatchWithSweeps, and handleConf
uses the helper to atomically store the batch and the set of confirmed sweeps.
Added TestSweepBatcherConfirmedBatchIncompleteSweeps that runs against the real
loopdb backend, injects a failure mid-transaction, and verifies the database
never ends up with confirmed=true batches paired with completed=false sweeps.1 parent de969fd commit 1beb6b9
File tree
5 files changed
+347
-20
lines changed- sweepbatcher
5 files changed
+347
-20
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
121 | 122 | | |
122 | 123 | | |
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 | + | |
124 | 149 | | |
125 | 150 | | |
126 | 151 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
77 | 78 | | |
78 | 79 | | |
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 | + | |
80 | 107 | | |
81 | 108 | | |
82 | 109 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2224 | 2224 | | |
2225 | 2225 | | |
2226 | 2226 | | |
2227 | | - | |
2228 | | - | |
2229 | | - | |
2230 | | - | |
2231 | 2227 | | |
2232 | 2228 | | |
2233 | 2229 | | |
| |||
2261 | 2257 | | |
2262 | 2258 | | |
2263 | 2259 | | |
| 2260 | + | |
2264 | 2261 | | |
2265 | 2262 | | |
2266 | 2263 | | |
2267 | 2264 | | |
2268 | | - | |
2269 | | - | |
2270 | | - | |
2271 | | - | |
2272 | | - | |
2273 | | - | |
2274 | | - | |
2275 | | - | |
| 2265 | + | |
| 2266 | + | |
| 2267 | + | |
| 2268 | + | |
| 2269 | + | |
2276 | 2270 | | |
2277 | 2271 | | |
2278 | 2272 | | |
| |||
2328 | 2322 | | |
2329 | 2323 | | |
2330 | 2324 | | |
2331 | | - | |
2332 | | - | |
| 2325 | + | |
| 2326 | + | |
| 2327 | + | |
| 2328 | + | |
| 2329 | + | |
| 2330 | + | |
| 2331 | + | |
| 2332 | + | |
| 2333 | + | |
2333 | 2334 | | |
2334 | 2335 | | |
2335 | 2336 | | |
| |||
2445 | 2446 | | |
2446 | 2447 | | |
2447 | 2448 | | |
| 2449 | + | |
| 2450 | + | |
| 2451 | + | |
| 2452 | + | |
| 2453 | + | |
2448 | 2454 | | |
2449 | 2455 | | |
2450 | 2456 | | |
| |||
2459 | 2465 | | |
2460 | 2466 | | |
2461 | 2467 | | |
2462 | | - | |
| 2468 | + | |
2463 | 2469 | | |
2464 | 2470 | | |
2465 | 2471 | | |
| |||
2612 | 2618 | | |
2613 | 2619 | | |
2614 | 2620 | | |
| 2621 | + | |
| 2622 | + | |
2615 | 2623 | | |
2616 | 2624 | | |
2617 | 2625 | | |
2618 | | - | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
2619 | 2632 | | |
2620 | 2633 | | |
2621 | 2634 | | |
2622 | 2635 | | |
2623 | 2636 | | |
2624 | | - | |
| 2637 | + | |
| 2638 | + | |
| 2639 | + | |
| 2640 | + | |
| 2641 | + | |
| 2642 | + | |
| 2643 | + | |
| 2644 | + | |
| 2645 | + | |
2625 | 2646 | | |
2626 | 2647 | | |
2627 | 2648 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
62 | 67 | | |
63 | 68 | | |
64 | 69 | | |
| |||
975 | 980 | | |
976 | 981 | | |
977 | 982 | | |
978 | | - | |
979 | | - | |
980 | | - | |
| 983 | + | |
| 984 | + | |
981 | 985 | | |
982 | 986 | | |
983 | 987 | | |
| |||
0 commit comments