Commit f67d5c0
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 ef6a5e5 commit f67d5c0
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 | |
|---|---|---|---|
| |||
324 | 324 | | |
325 | 325 | | |
326 | 326 | | |
| 327 | + | |
| 328 | + | |
327 | 329 | | |
328 | 330 | | |
329 | 331 | | |
| |||
0 commit comments