Ticket #2149 (new defect)
retry send 'setup connection' in b10-ddns
|Reported by:||jelte||Owned by:|
|Sub-Project:||DNS||Feature Depending on Ticket:|
|Estimated Difficulty:||6||Add Hours to Ticket:||0|
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)