1. 01 Jul, 2016 1 commit
    • Julien Muchembled's avatar
      Better support of the new API to notify of resolved conflicts (store/tpc_finish) · 572a9652
      Julien Muchembled authored
      When switching all storages to the new API in the master branch,
      I found a few issues, mainly with blobs.
      
      1. Created/modified blobs are invalidated during the first phase
         (in Connection._store_objects):
      
          obj._p_invalidate()
      
          And with the old API, _handle_serial then sets _p_serial
          Ghost objects are not supposed to have a _p_serial and with the new API,
          a few tests would fail because _p_serial are checked without activating the
          blob first.
      
      2. Another consequence of _handle_serial not updating _p_changed/_p_serial
         immediately is that created objects are stored twice if __getstate__
         modifies itself. This case is tested in testConnection by
         doctest_lp485456_setattr_in_setstate_doesnt_cause_multiple_stores
      
          Hence the change in Connection._commit:
          - self._modified is already appended in Connection._store_objects
          - (obj._p_serial == z64) instead of (oid in self._creating)
            would not work for savepoints.
      
      3. Setting _p_changed of a Blob with no uncommitted changes would cause an error
         (lp440234_Setting__p_changed_of_a_Blob_w_no_uncomitted_changes_is_noop)
      
          Fixed by the same change as in 2:
          - oid was appended twice to self._modified but reverted one
            (self._modified.pop() in _store_objects)
          - the test passed because _p_changed was reset early by _handle_serial
      572a9652
  2. 30 Jun, 2016 3 commits
  3. 21 Jun, 2016 1 commit
  4. 19 Jun, 2016 3 commits
  5. 18 Jun, 2016 2 commits
  6. 16 Jun, 2016 1 commit
  7. 13 Jun, 2016 2 commits
  8. 11 Jun, 2016 2 commits
    • Julien Muchembled's avatar
    • Julien Muchembled's avatar
      windows: fix failures due to low-precision of time.time() · f08b40e1
      Julien Muchembled authored
      This fixes the following random failure:
      
      Failure in test checkBaseHistory (ZODB.tests.testDemoStorage.DemoStorageTests)
      Traceback (most recent call last):
        File "unittest\case.py", line 384, in _executeTestPart
          function()
        File "ZODB\tests\testDemoStorage.py", line 96, in checkBaseHistory
          self._checkHistory(base_only())
        File "ZODB\tests\HistoryStorage.py", line 46, in _checkHistory
          self.assertLess(a, b)
        File "unittest\case.py", line 1026, in assertLess
          self.fail(self._formatMessage(msg, standardMsg))
        File "unittest\case.py", line 508, in fail
          raise self.failureException(msg)
      AssertionError: 1465433823.260304 not less than 1465433823.260304
      f08b40e1
  9. 06 Jun, 2016 6 commits
  10. 05 Jun, 2016 1 commit
  11. 31 May, 2016 3 commits
  12. 30 May, 2016 1 commit
  13. 17 May, 2016 1 commit
  14. 12 May, 2016 1 commit
  15. 09 May, 2016 3 commits
  16. 05 May, 2016 3 commits
  17. 04 May, 2016 1 commit
  18. 29 Apr, 2016 2 commits
  19. 28 Apr, 2016 2 commits
  20. 27 Apr, 2016 1 commit