Ticket #2149 (new defect)
retry send 'setup connection' in b10-ddns
| Reported by: | jelte | Owned by: | |
|---|---|---|---|
| Priority: | medium | Milestone: | |
| Component: | DDNS | Keywords: | |
| Cc: | CVSS Scoring: | ||
| Sensitive: | no | Defect Severity: | N/A |
| Sub-Project: | DNS | Feature Depending on Ticket: | |
| Estimated Difficulty: | 6 | Add Hours to Ticket: | 0 |
| Total Hours: | 0 | Internal?: | no |
Description
ticket 1986 added a command that is sent from b10-ddns to b10-auth, which sets up the internal connection to forward packets.
It also contains a message from auth to ddns should auth be restarted. However, on startup, if ddns is just slightly faster than auth in getting started, auth never gets the message, and b10-ddns hangs for 4 seconds waiting for an answer (the connection does get set up eventually, but it will cause errors if it is attempted to be used initially, b10-ddns is dead in the water for the full 4 second, not answering to commands and updates).
Fundamentally, the problem is the lack of real async io in b10-ddns, however, a quick workaround would be to set the internal timeout lower than the default, and retry a few times before erroring.
We also need an option for the 'nonblocking' version of check_command to check for multiple commands I think.
(I have some code, which i'll put in the branch, but it may need some unit tests, and now my lettuce tests fail on an entirely different cmdctl error)
