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.
The tmt library had a bug with ECH with cursor position.
Flesh out the dump_vt to translate the attributes to VT codes
for the buffer to look the same as the attributes indicate.
Ensure the resultant dump has consistently long lines. This
will matter when we start rendering attributes on blanks.
Additionally, simplify the code
significantly taking advantage
of first loop.
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.