1. 30 Jul, 2014 1 commit
  2. 25 Jul, 2014 2 commits
  3. 24 Jul, 2014 4 commits
  4. 22 Jul, 2014 1 commit
  5. 08 Jul, 2014 4 commits
  6. 04 Jul, 2014 5 commits
  7. 26 Jun, 2014 1 commit
  8. 24 Jun, 2014 2 commits
  9. 20 Jun, 2014 3 commits
    • Julien Muchembled's avatar
      client: clean up import/export code · d562bf8f
      Julien Muchembled authored
      Export:
      - Remove leftover warning about a bug that was fixed in
        commit e76af297
      - In neomigrate script, open NEO storage read-only.
      - IStorageIteration is already implemented.
      
      Import:
      - Review comments.
      - In neomigrate script, warn that IStorageRestoreable is not implemented.
      - Do not call 'close' method on source iterator. BaseStorage does not do it and
        this is not part of ZODB API. In the case of FileStorage, resource are freed
        automatically during garbage collection.
      d562bf8f
    • Julien Muchembled's avatar
      Use several partitions in functional client tests · fcff26db
      Julien Muchembled authored
      This is more realistic than testing with a single partition, in particular when
      there are more storage nodes that copies.
      fcff26db
    • Julien Muchembled's avatar
      storage: more refactoring of backends · 1d11287f
      Julien Muchembled authored
      1d11287f
  10. 19 Jun, 2014 4 commits
    • Julien Muchembled's avatar
      client: in iterator records, export data serial as stored by NEO · e76af297
      Julien Muchembled authored
      There is simply no way to guess data serials and instead of producing random
      values, the only solution is to retrieve the values from storages.
      
      There are still differences for data serials between FileStorage and NEO:
      - NEO always resolves to original serial, to avoid any indirection
        (which slightly speeds up undo at the expense of a more complex pack code)
      - NEO does not make any difference between object deletion and creation undone
        (data serial always null in storage)
      It has to be decided whether NEO implementation should be changed about this.
      
      Apart from that, conversion database back from NEO should be fixed.
      testExportFileStorageBug passes and there was in fact no FileStorage bug.
      
      Another change is that iterator does not trash the client cache anymore.
      e76af297
    • Julien Muchembled's avatar
      client: simplify iterator · 441145e5
      Julien Muchembled authored
      441145e5
    • Julien Muchembled's avatar
      storage: refactoring & cleanup · bd03b14b
      Julien Muchembled authored
      - _[gs]etPackTID accessors implementation is not backend-specific
        so move them to superclass
      - _getObjectLength method is useless since data_tid always contains the wanted
        information, regardless the contents of value_tid column
      bd03b14b
    • Julien Muchembled's avatar
      storage: lazy import of backends · d63e45d3
      Julien Muchembled authored
      d63e45d3
  11. 05 Jun, 2014 1 commit
  12. 04 Jun, 2014 2 commits
    • Julien Muchembled's avatar
      Fix tests broken by API changes in new psutil 2.0.0 · 9fe34439
      Julien Muchembled authored
      This fixes:
      
      Traceback (most recent call last):
        File "neo/tests/functional/testMaster.py", line 50, in testStoppingSecondaryMaster
          self.neo.expectDead(master)
        File "neo/tests/functional/__init__.py", line 615, in expectDead
          self.expectCondition(callback, *args, **kw)
        File "neo/tests/functional/__init__.py", line 509, in expectCondition
          'History: %s' % opaque_history)
      AssertionError: Timeout while expecting condition. History: [False, False, False, False, False, False, False, False, False, False, False]
      9fe34439
    • Julien Muchembled's avatar
      fixup! client: drop support for ZODB < 3.10 · ffe34600
      Julien Muchembled authored
      See commit d9ab77b8
      ffe34600
  13. 03 Jun, 2014 3 commits
  14. 29 May, 2014 1 commit
  15. 08 Jan, 2014 1 commit
  16. 07 Jan, 2014 5 commits
    • Julien Muchembled's avatar
      NEO 1.1 · d4ed0828
      Julien Muchembled authored
      d4ed0828
    • Julien Muchembled's avatar
      Add test showing that clients may be stuck on an old snapshot in case of failure during tpc_finish · fd4cfaa9
      Julien Muchembled authored
      If anything wrong happens after a transaction is locked and before the end of
      onTransactionCommitted, recovery phase should be run again, so that the master
      gets correct last tid.
      
      Following patch by Vincent is an attempt to fix this:
      
      --- a/neo/master/app.py
      +++ b/neo/master/app.py
      @@ -329,8 +329,8 @@ def playPrimaryRole(self):
      
               # recover the cluster status at startup
               try:
      -            self.runManager(RecoveryManager)
                   while True:
      +                self.runManager(RecoveryManager)
                       self.runManager(VerificationManager)
                       try:
                           if self.backup_tid:
      @@ -338,10 +338,6 @@ def playPrimaryRole(self):
                                   raise RuntimeError("No upstream cluster to backup"
                                                      " defined in configuration")
                               self.backup_app.provideService()
      -                        # Reset connection with storages (and go through a
      -                        # recovery phase) when leaving backup mode in order
      -                        # to get correct last oid/tid.
      -                        self.runManager(RecoveryManager)
                               continue
                           self.provideService()
                       except OperationFailure:
      fd4cfaa9
    • Julien Muchembled's avatar
    • Julien Muchembled's avatar
      Update copyright year · 9b05eff4
      Julien Muchembled authored
      9b05eff4
    • Julien Muchembled's avatar
      Fix race conditions in testClientReconnection · 3462d3c1
      Julien Muchembled authored
      This should following random errors:
      
      >   File "neo/lib/event.py", line 77, in unregister
      >     self.epoll.unregister(fd)
      > IOError: [Errno 2] No such file or directory
      
      >   File "neo/tests/threaded/test.py", line 670, in testClientReconnection
      >     c, = cluster.storage.nm.getClientList()
      > ValueError: need more than 0 values to unpack
      3462d3c1