Commit 86c1367
fix: add timeout to WaitingForResponses state (30s no progress = fail)
The JoinerState tracks last_progress but never enforced a timeout.
If a connect operation received no acceptances, it would wait indefinitely.
Now we check for timeout at the start of process_message:
- If gateway is set (joiner) and in WaitingForResponses state
- And last_progress exceeds JOINER_PROGRESS_TIMEOUT (30s)
- Return OpError::Timeout to fail the operation
This prevents indefinitely stalled connect operations from blocking
new connection attempts.
Fixes the WaitingForResponses timeout issue from #2173.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>1 parent 2103f8b commit 86c1367
2 files changed
+25
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
31 | 34 | | |
32 | 35 | | |
33 | 36 | | |
| |||
512 | 515 | | |
513 | 516 | | |
514 | 517 | | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
515 | 523 | | |
516 | 524 | | |
517 | 525 | | |
| |||
806 | 814 | | |
807 | 815 | | |
808 | 816 | | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
809 | 832 | | |
810 | 833 | | |
811 | 834 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
322 | 322 | | |
323 | 323 | | |
324 | 324 | | |
| 325 | + | |
| 326 | + | |
325 | 327 | | |
326 | 328 | | |
327 | 329 | | |
| |||
0 commit comments