Affluent would hang on error, particularly
certificate problem. Fix by catching and being
explicit about the error, and generically
fixing the arguments for 'get' to have
the inntended timeout.
Serialize assimilation, do not induce activity that may have been
aborted by an earlier chain.
Further, accelerate initial startup by making potential timeouts
occur concurrently, rather than sequentially.
Followers will only depart if their current leader
is assimilated.
Leaders with quorum will refuse assimilation and instruct
member trying to assimilate to join it.
Leaders without quorum will either follow the assimilation leader
or refuse, depending on who has highest transaction count, and if
a tie, which has the larger set of followers
When a stream has been deleted from cfgstreams, contiue exception
handling since the desired result.
For connections to a manager, institute a 15 second socket level timeout.
This avoids an abandoned server conversation from locking a colleective member startup.
When scheduling the failover check, first block any redundant attempts to schedule.
Wrap the collective startup in an exception
handler, so that a retry is
more well guaranteed.
During a restart, a client may aggressively trigger
console reconnect before the consoleserver starts.
Make sure that the daemon is running and globals
ready before API could possible ask for console.
In some environments, the read method on the pipe object fails
to work, os.read should be the same, but seems to work better and
is happy to perform the opportunisticly large reads I want.
C implementation to improve memory and cpu utilization.
Forked off to further move the work off the main process.
Still needs attribute rendition and packaging before merging to main
branch.
There are scenarios where getqfdn can induce a hang.
The certificate having FQDN isn't that useful anyway,
since confluent never uses it and external use of it
may need more carefully crafted certificate to have
a good chance of matching it anyway.
Also, the chances a user would import our cert as a
CA to something like a browser are low.
In the new framework with
filehandle passing, the provided
callback must accept a data
argument. get_diags can't
actually use it, but does have
to accept a token value.