Commit a5b71a4
committed
Fix activity completion when thread interrupted flag is set
Activities that catch InterruptedException, restore the interrupted flag,
and continue execution were unable to report their completion due to gRPC call failures.
This occurred because gRPC calls fail when the thread's interrupted flag is set.
The fix clears the interrupted flag before making gRPC calls in ActivityWorker.sendReply() and restores it afterward, ensuring:
- Activity results are successfully reported to the server
- Thread interruption semantics are preserved for worker shutdown
- All activity completion scenarios work (success/failure/cancellation)
Additionally, extract executeGrpcCallWithInterruptHandling() method to eliminate code duplication across the three gRPC response calls,
improving maintainability and reducing the risk of inconsistent implementations.
Fixes: temporalio#731
Related: temporalio#7221 parent c46eb46 commit a5b71a4Copy full SHA for a5b71a4
File tree
Expand file treeCollapse file tree
2 files changed
+221
-18
lines changedOpen diff view settings
Filter options
- temporal-sdk/src
- main/java/io/temporal/internal/worker
- test/java/io/temporal/worker
Expand file treeCollapse file tree
2 files changed
+221
-18
lines changedOpen diff view settings
Collapse file
temporal-sdk/src/main/java/io/temporal/internal/worker/ActivityWorker.java
Copy file name to clipboardExpand all lines: temporal-sdk/src/main/java/io/temporal/internal/worker/ActivityWorker.java+49-18Lines changed: 49 additions & 18 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
337 | 337 | |
338 | 338 | |
339 | 339 | |
| 340 | + |
| 341 | + |
| 342 | + |
| 343 | + |
| 344 | + |
| 345 | + |
| 346 | + |
| 347 | + |
| 348 | + |
| 349 | + |
| 350 | + |
| 351 | + |
| 352 | + |
| 353 | + |
| 354 | + |
| 355 | + |
| 356 | + |
| 357 | + |
| 358 | + |
| 359 | + |
| 360 | + |
| 361 | + |
| 362 | + |
| 363 | + |
| 364 | + |
340 | 365 | |
341 | 366 | |
342 | 367 | |
| ||
351 | 376 | |
352 | 377 | |
353 | 378 | |
354 | | - |
| 379 | + |
355 | 380 | |
356 | | - |
357 | | - |
358 | | - |
359 | | - |
360 | | - |
| 381 | + |
| 382 | + |
| 383 | + |
| 384 | + |
| 385 | + |
| 386 | + |
| 387 | + |
361 | 388 | |
362 | 389 | |
363 | 390 | |
| ||
369 | 396 | |
370 | 397 | |
371 | 398 | |
372 | | - |
| 399 | + |
373 | 400 | |
374 | | - |
375 | | - |
376 | | - |
377 | | - |
378 | | - |
| 401 | + |
| 402 | + |
| 403 | + |
| 404 | + |
| 405 | + |
| 406 | + |
| 407 | + |
379 | 408 | |
380 | 409 | |
381 | 410 | |
| ||
387 | 416 | |
388 | 417 | |
389 | 418 | |
390 | | - |
| 419 | + |
391 | 420 | |
392 | | - |
393 | | - |
394 | | - |
395 | | - |
396 | | - |
| 421 | + |
| 422 | + |
| 423 | + |
| 424 | + |
| 425 | + |
| 426 | + |
| 427 | + |
397 | 428 | |
398 | 429 | |
399 | 430 | |
|
Collapse file
temporal-sdk/src/test/java/io/temporal/worker/InterruptedActivityCompletionValidationTest.java
Copy file name to clipboard+172Lines changed: 172 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 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 | + |
0 commit comments