Jarrod Johnson
1d16534c16
If replacing a follower stream, ensure the old one closes
2018-07-13 09:37:00 -04:00
Jarrod Johnson
c80ebb0e8d
Explicitly close connection before replacement
...
If an existing follower is stalled out, close the socket explicitly
to avoid leaving it open in lsof.
2018-07-13 09:14:36 -04:00
Jarrod Johnson
efaf1dae70
Make cfgleader modifications more robust
...
If cfgleader is about to forget a socket, explicitly try to close
it first.
2018-07-13 09:05:28 -04:00
Jarrod Johnson
1de82936ed
Add full sync mode
...
For implementing clear config, all data must be presumed dirty.
2018-07-12 17:06:37 -04:00
Jarrod Johnson
b0c384c9ca
Check quorum on attribute read
...
It's too bizarre for attribute read from api to work
without quorum, could be misleading.
2018-07-12 16:05:04 -04:00
Jarrod Johnson
61dd71778f
Never generate new key on crypt read
...
An autogenerated key on read can never be useful. Instead, let it fail
and assume a repair action is coming.
2018-07-12 15:55:05 -04:00
Jarrod Johnson
0f3014957b
Fix non-ascii unicode handling of consoles
2018-07-12 14:16:44 -04:00
Jarrod Johnson
c925353f02
Fix rollback
...
First the data was not actually being staged in the rollback area.
Secondly, there wasn't an assurance that the disk wouldn't have rollback
committed...
2018-07-12 10:01:32 -04:00
Jarrod Johnson
9edb225bd3
Fix the reference to sync to file
2018-07-12 09:20:41 -04:00
Jarrod Johnson
7cdc3c1400
Implement clear config rollback
...
Should something go awry during config
load, rollback the clear and load.
2018-07-12 08:48:21 -04:00
Jarrod Johnson
bd2a3f14e6
Defer txcount increment until after potential failure
...
This avoids the txcount incrementing when no transaction actually
occurs.
2018-07-12 08:41:07 -04:00
Jarrod Johnson
87d00b7447
Fix typo in manpage for nodeattrib
2018-07-11 16:48:41 -04:00
Jarrod Johnson
beedfb0600
If a drone doesn't exist, treat it as if it's an invalid certificate
2018-07-11 16:29:45 -04:00
Jarrod Johnson
ce59a36351
Avoid excessive syncs on connect
...
This removes some redundancy and avoids writing and loading to disk
during the initialization process.
2018-07-11 16:07:56 -04:00
Jarrod Johnson
a1e612968e
Merge branch 'clustertime' of github.com:jjohnson42/confluent into clustertime
2018-07-11 13:44:30 -04:00
Jarrod Johnson
ce1a58bf58
Provide a more specific error when file doesn't exist
...
nodemedia does check locally, but server should also check it, in
case of remote *and* service nodes.
2018-07-11 13:17:37 -04:00
Jarrod Johnson
b386084f2d
Note future enhancement for flattening on collective manager change...
2018-07-11 11:07:59 -04:00
Jarrod Johnson
8e9bcbb44f
Clear txcount on enroll
...
The transaction count on 'join' was being honored as high, when
it never should be.
2018-07-11 09:40:22 -04:00
Jarrod Johnson
704aaeecf9
Tolerate newline in myname
...
vim is quite insistent on adding a newline, tolerate that.
2018-07-11 09:36:51 -04:00
Jarrod Johnson
11968faffc
Numerous fixes to collective
...
If client has higher transaction count, do not close the connection
before extracting peer address.
If our connect session is rudely terminated, abort rather than trying
to continue.
On assimilate failure, ignore a failed assimilate with no data.
Fix problem where a follower getting double deleted was causing an error.
2018-07-10 14:55:57 -04:00
Jarrod Johnson
8769c438c0
Relax cryptodomex requirement
...
We don't *need* the higher version, it just accelerates password auth
if possible. Fix conflict with RH provided package.
2018-07-10 10:10:04 -04:00
Jarrod Johnson
f1489bf527
Add all to SYNOPSIS of nodeattrib
2018-07-09 16:52:07 -04:00
Jarrod Johnson
c03781c022
Add 'all' to usage message of nodeattrib
2018-07-09 16:49:45 -04:00
Jarrod Johnson
298e11f60f
Allow invite from non-leader role
...
A non-leader transaction is modified such that the enroll node
can be connected to the leader and have validation.
2018-07-09 16:40:43 -04:00
Jarrod Johnson
67d6e9a6c7
Add collective show
...
Provide a harmless way to look at collective state
2018-07-09 15:07:24 -04:00
Jarrod Johnson
a4edf9afb8
Rename confluentutil to collective
...
Also adjust output to be a bit more automation friendly.
2018-07-09 13:33:56 -04:00
Jarrod Johnson
2342fe717e
Remove superfluous call to sync to file
...
load_from_json already makes the call, remove the extra call that is
redundant.
2018-07-09 12:59:37 -04:00
Jarrod Johnson
08cf698609
Only conditionally require ffi
...
Only collective mode requires ffi, do not incur requirement for
non-collective mode.
2018-07-09 09:41:10 -04:00
Jarrod Johnson
a905ae4865
Only zap cfgleader if not set
...
stale relay_slaved_requests was trouncing following status, correct
by avoiding zapping that state
2018-07-03 14:43:23 -04:00
Jarrod Johnson
1eaf5357ca
Resolve race conditions on simultaneous collective outage
...
Implement random backoff strategy for serializing connect out and
connect in.
2018-07-03 14:09:09 -04:00
Jarrod Johnson
39378170b1
Add an error if cfgstreams loses a follower
2018-07-03 11:13:23 -04:00
Jarrod Johnson
2156e99ae4
Use alternative name for pycryptodomex
2018-07-03 10:43:05 -04:00
Jarrod Johnson
bba12ed9e7
Update requirements to pull in cryptodomex
2018-07-03 10:32:33 -04:00
Jarrod Johnson
282043ed97
Switch to cryptodome
...
Cryptodome is a modern, but compatible replacement for pycrypto.
We may move to cryptography eventually, but start with this for now
for some nice speedups in some cases.
2018-07-03 10:31:13 -04:00
Jarrod Johnson
0b26d12837
Fix memory leaks
...
For one, configmanager was left with stale callback references, clean
those up.
For another, the callback pattern was creating a circular reference that
python memory management couldn't overcome. Break the reference
explicity when an item is disposed of.
2018-07-03 08:58:11 -04:00
Jarrod Johnson
956faee052
Correct typo in variable name
2018-06-28 14:12:56 -04:00
Jarrod Johnson
8e77466875
Carry txcount through connect replica
...
The txcount was not up to date when offline updates occurred.
2018-06-28 13:54:31 -04:00
Jarrod Johnson
f01c7e19f7
Fix HA healing problems
...
If we are superior to leader, become leader
When abandoned by a leader, forget the leader.
2018-06-28 13:51:52 -04:00
Jarrod Johnson
5d894912ac
Clean up more potential for CLOSE_WAIT
...
Explicitly close sockets in a few more places.
2018-06-28 10:50:03 -04:00
Jarrod Johnson
93e78d1f03
Fix try_assimilate
...
Also get rid of CLOSE_WAIT in some situations.
2018-06-28 09:53:34 -04:00
Jarrod Johnson
97f932b946
Fix the attempt to assimilate
...
In the wake of leader loss, the assimilate attempt was causing one
of a couple of bad behaviors, a trace if broken and if it should
work, the format of the data payload was incorrect.
2018-06-26 15:29:51 -04:00
Jarrod Johnson
61f24f4d8a
Fix mismatched braces in previous commit
2018-06-26 15:09:17 -04:00
Jarrod Johnson
68a79695fc
Add check for quorum to invite generation process
...
If a would-be collective member has no quorum, provide a clear
message indicating this as an issue.
2018-06-26 14:55:42 -04:00
Jarrod Johnson
401352998c
Correctly show the error on non-leader
...
When non-leader tries to invite, print the error rather than unhelpful
exception with no helpful data.
2018-06-26 14:35:23 -04:00
Jarrod Johnson
9eeede651e
Error when inviting from non leader
2018-06-26 14:24:52 -04:00
Jarrod Johnson
fb98dd5636
Fix packaging issues
2018-06-26 14:12:53 -04:00
Jarrod Johnson
0843b991ea
Isolate following to dedicated greenthread and put fallback to assert leadership
2018-06-26 14:06:01 -04:00
Jarrod Johnson
11e6145a46
Add quorum check to non-config requests
2018-06-26 13:52:20 -04:00
Jarrod Johnson
7433dd3e38
Wrap cfg init on follow in lock
...
Use a lock to provide more atomic behavior for connecting should
something go wrong in calling connect_to_leader incorrectly.
2018-06-26 10:13:27 -04:00
Jarrod Johnson
4de1fea7aa
Implement attempt to assimilate
2018-06-25 17:30:29 -04:00