Commit 9166097
committed
fix: delay resuming workflows after restart
The `go-workflows` backend locks workflows and activities while they're
being executed. In the event of a crash or restart, the lock would
prevent the worker from resuming the workflow. This fix makes a few
changes to resolve this issue:
- Uses a stable ID for the worker ID
- Adds a random "worker instance" ID
- Adds the new IDs to the lock entities
- Incorporates the new IDs into the lock checks
If the worker ID matches the lock's worker ID but the worker instance ID
does not match, we know that the lock belonged to an old instance of the
worker and that the lock can be reassigned to the new instance.
PLAT-991 parent 8305da3 commit 9166097
File tree
6 files changed
+98
-32
lines changed- changes/unreleased
- server/internal/workflows
- backend/etcd
- activity_lock
- workflow_instance_lock
6 files changed
+98
-32
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
17 | 25 | | |
18 | 26 | | |
19 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
34 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
35 | 36 | | |
36 | 37 | | |
37 | | - | |
| 38 | + | |
38 | 39 | | |
39 | | - | |
40 | | - | |
41 | | - | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
| |||
252 | 254 | | |
253 | 255 | | |
254 | 256 | | |
255 | | - | |
256 | | - | |
| 257 | + | |
| 258 | + | |
257 | 259 | | |
258 | | - | |
| 260 | + | |
259 | 261 | | |
260 | 262 | | |
261 | | - | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
262 | 282 | | |
263 | 283 | | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
264 | 297 | | |
265 | 298 | | |
266 | 299 | | |
| |||
297 | 330 | | |
298 | 331 | | |
299 | 332 | | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
| 333 | + | |
307 | 334 | | |
308 | 335 | | |
309 | 336 | | |
| |||
356 | 383 | | |
357 | 384 | | |
358 | 385 | | |
| 386 | + | |
| 387 | + | |
359 | 388 | | |
360 | 389 | | |
361 | 390 | | |
| |||
570 | 599 | | |
571 | 600 | | |
572 | 601 | | |
573 | | - | |
574 | | - | |
| 602 | + | |
| 603 | + | |
575 | 604 | | |
576 | | - | |
| 605 | + | |
577 | 606 | | |
578 | 607 | | |
579 | | - | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
580 | 627 | | |
581 | 628 | | |
582 | 629 | | |
| |||
585 | 632 | | |
586 | 633 | | |
587 | 634 | | |
588 | | - | |
589 | | - | |
590 | | - | |
591 | | - | |
592 | | - | |
593 | | - | |
594 | | - | |
| 635 | + | |
595 | 636 | | |
596 | 637 | | |
597 | 638 | | |
| |||
628 | 669 | | |
629 | 670 | | |
630 | 671 | | |
| 672 | + | |
| 673 | + | |
631 | 674 | | |
632 | 675 | | |
633 | 676 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
17 | 25 | | |
18 | 26 | | |
19 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
73 | 77 | | |
74 | 78 | | |
75 | 79 | | |
| |||
82 | 86 | | |
83 | 87 | | |
84 | 88 | | |
85 | | - | |
| 89 | + | |
86 | 90 | | |
87 | 91 | | |
88 | 92 | | |
| |||
0 commit comments