1. 11 Mar, 2019 1 commit
  2. 27 Apr, 2017 1 commit
  3. 25 Apr, 2017 2 commits
  4. 24 Apr, 2017 1 commit
    • Julien Muchembled's avatar
      On NM update, fix removal of nodes that aren't part of the cluster anymore · f051b7a0
      Julien Muchembled authored
      In order to do that correctly, this commit contains several other changes:
      When connecting to a primary master, a full node list always follows the
      identification. For storage nodes, this means that they now know all nodes
      during the RECOVERING phase.
      The initial full node list now always contains a node tuple for:
      - the server-side node (i.e. the primary master): on a master, this is
        done by always having a node describing itself in its node manager.
      - the client-side node, to make sure it gets a id timestamp:
        now an admin node also receives a node for itself.
  5. 31 Mar, 2017 1 commit
  6. 02 Feb, 2017 1 commit
  7. 18 Jan, 2017 1 commit
  8. 13 Jan, 2017 1 commit
  9. 01 Dec, 2016 3 commits
    • Julien Muchembled's avatar
      Remove dead code found by coverage · 23b9544d
      Julien Muchembled authored
    • Julien Muchembled's avatar
      Remove some useless unit tests · 1e4a4178
      Julien Muchembled authored
      Many "unit" tests (!= "threaded" tests) don't do more than checking
      implementation details, and increase coverage artificially. As with testEvent
      in commit 71e30fb9, most of these tests will
      either be removed or rewritten as threaded tests.
      The fact that the remaining unit tests actually cover code that other test
      don't gives motivation to maintain them. It will be also less code to update
      when switching to https://pypi.python.org/pypi/mock
      I proceeded as follows:
      1. Measure coverage for all tests except unit tests. While checking my work,
         I found that coverage stats for threaded/functional/zodb tests are quite
         unstable, so I restarted from the beginning by doing this measure several
         times and only keeping the intersection of coverage data.
      2. Measure coverage individually for each 'unit' tests, and substract the
         each result with the data in 1.
      3. The candidates for deletion are those without any code covered.
      Tests I didn't delete:
      - neo.tests.master.testElectionHandler: I always do minimal changes about
        election, as long as there's no serious review.
      - neo.tests.master.testMasterPT.MasterPartitionTableTests.test_13_outdate
      - 4 tests in neo.tests.testPT:
        test_01_Cell, test_04_removeCell, test_06_clear, test_08_filled
      - neo.tests.storage.testStorage{MySQL,SQLite}
      - neo.tests.testUtil.UtilTests.testReadBufferRead
      In a way, this commit is actually quite conservative. There are still many
      useless tests that only check error paths and for simple tested methods, this
      is just duplicating thie tested code.
    • Julien Muchembled's avatar
      Remove unused imports, found by pylint · 3b5a6edb
      Julien Muchembled authored
  10. 27 Nov, 2016 4 commits
    • Julien Muchembled's avatar
      Fix identification issues, including a race condition causing id conflicts · 9385706f
      Julien Muchembled authored
      The added test describes how the new id timestamps fix the race condition.
      These timestamps could be any unique opaque values, and the protocol is
      extended to exchange them along with node ids.
      Internally, nodes also reuse timestamps as a marker to identify the first
      NotifyNodeInformation packets from the master: since this packet is a complete
      list of nodes in the cluster, any other node in the node manager has left the
      cluster definitely and is removed.
      The secondary masters didn't receive update about master nodes.
      It's also useless to send them information about non-master nodes.
    • Julien Muchembled's avatar
      lib.node: fix NodeManager accessors returning identified nodes · e7cccf01
      Julien Muchembled authored
      Listing connected/connecting nodes with a UUID is used:
      - in one place by storage nodes: here, it does not matter if we skip nodes that
        aren't really identified
      - in many places by the master, only for server connections, in which case we
        have equivalence with real identification
      So in practice, NodeManager is only simplified to reuse the 'identified'
      property of nodes.
    • Julien Muchembled's avatar
      lib.node: code refactoring · 5941b27d
      Julien Muchembled authored
    • Julien Muchembled's avatar
      Fix spelling mistakes · 6e32ebb7
      Julien Muchembled authored
  11. 25 Jan, 2016 1 commit
  12. 15 Sep, 2015 1 commit
  13. 21 May, 2015 1 commit
  14. 07 Jan, 2014 1 commit
  15. 13 Jul, 2012 1 commit
  16. 21 Mar, 2012 1 commit
  17. 13 Mar, 2012 1 commit
  18. 09 Jan, 2012 1 commit
  19. 26 Oct, 2011 1 commit
  20. 18 Jan, 2011 1 commit
  21. 17 Jan, 2011 1 commit
  22. 02 Nov, 2010 1 commit
  23. 01 Nov, 2010 1 commit
  24. 04 May, 2010 1 commit
  25. 30 Apr, 2010 2 commits
  26. 23 Feb, 2010 1 commit
  27. 22 Feb, 2010 4 commits
  28. 01 Feb, 2010 1 commit
  29. 13 Jan, 2010 1 commit
  30. 07 Oct, 2009 1 commit