- 10 May, 2017 5 commits
-
-
Kirill Smelkov authored
TODO handshake for NodeLink to first check protocol versions
-
Kirill Smelkov authored
* master: (23 commits) Make the identification of the primary master easier with 'neoctl print node' client: fix AttributeError when connected to a master that happens to be secondary qa: speed up SQlite tests by accessing DBs in unsafe mode (e.g. no sync) master: fix identification of unknown masters Better logging of connector errors qa: relax assertion in testDeadlockAvoidanceBeforeInvolvingAnotherNode client: fix possible data corruption after conflict resolutions with replicas qa: new --readable-tid runner option qa: make Patch work on functions qa: new --continue-on-success and --stop-on-success runner options doc: add advice about the number of master nodes to set up Improvements to --dynamic-master-list Make NodeManager.remove stricter Clean up neo.lib.protocol Use ProtocolError instead of Notify for unexpected answers, and drop Notify Rename node states: DOWN -> UNKNOWN, TEMPORARILY_DOWN -> DOWN Remove UNKNOWN node state Reimplement election (of the primary master) Use existing generic way to ignore AcceptIdentification on closed connections Remove BROKEN node state ...
-
Julien Muchembled authored
Now, the primary master is the running master with None displayed in the last column. Before, it could be the id timestamp of when it was secondary, which was obsolete information.
-
Julien Muchembled authored
This fixes up commit 23b6a66a, which reimplements election. poll raised, retrying Traceback (most recent call last): ... File "neo/client/handlers/master.py", line 41, in notPrimaryMaster super(PrimaryNotificationsHandler, self).notPrimaryMaster(*args) File "neo/lib/handler.py", line 157, in notPrimaryMaster assert primary != self.app.server File "neo/client/app.py", line 109, in __getattr__ return self.__getattribute__(attr) AttributeError: 'Application' object has no attribute 'server'
-
Kirill Smelkov authored
-
- 05 May, 2017 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 04 May, 2017 6 commits
-
-
Julien Muchembled authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 03 May, 2017 6 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 02 May, 2017 6 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Julien Muchembled authored
This fixes the following crash: Traceback (most recent call last): ... File "neo/master/handlers/identification.py", line 94, in requestIdentification uuid = app.getNewUUID(uuid, address, node_type) File "neo/master/app.py", line 449, in getNewUUID assert uuid != self.uuid AssertionError
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 28 Apr, 2017 15 commits
-
-
Julien Muchembled authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Julien Muchembled authored
-
Kirill Smelkov authored
-
Julien Muchembled authored
This really fixes the bug described in commit 40bac312, which could probably be reverted. It only reduced the probability of failure. What happened is that the second conflict on 'a' for t3 what first reported by an answer to first store with: - a base serial at which a=0 - a conflict serial at which a=7 However, the cached data is not 8 anymore but 12, since a second store already occurred after the first conflict (reported by the other storage node). When this conflict was resolved before receiving the conflict for second store, it gave: resolve(old=0, saved=7, new=12) -> 19 instead of: resolve(old=4, saved=7, new=12) -> 15 (if we still had the data of the first store, we could also do resolve(old=0, saved=7, new=8) but that would be inefficient from a memory point of view) The bug was difficult to reproduce. testNotifyReplicated had to be run many many times before that race conditions trigger it. The test was changed to enforce some of them, and the above scenario now happens almost always.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-