[Checkins] [zopefoundation/ZODB] 572a96: Better support of the new API to notify of resolve...

GitHub noreply at github.com
Mon Jul 4 20:14:58 CEST 2016


  Branch: refs/heads/4
  Home:   https://github.com/zopefoundation/ZODB
  Commit: 572a96521e626542c0328708d714f2254254dd75
      https://github.com/zopefoundation/ZODB/commit/572a96521e626542c0328708d714f2254254dd75
  Author: Julien Muchembled <jm at nexedi.com>
  Date:   2016-07-01 (Fri, 01 Jul 2016)

  Changed paths:
    M src/ZODB/BaseStorage.py
    M src/ZODB/Connection.py
    M src/ZODB/blob.py
    M src/ZODB/tests/MVCCMappingStorage.py
    M src/ZODB/tests/blob_packing.txt
    M src/ZODB/tests/testConnection.py
    M src/ZODB/tests/testblob.py

  Log Message:
  -----------
  Better support of the new API to notify of resolved conflicts (store/tpc_finish)

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


  Commit: 870f2d58b795c5a29d67612037c60f40fb786cea
      https://github.com/zopefoundation/ZODB/commit/870f2d58b795c5a29d67612037c60f40fb786cea
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-04 (Mon, 04 Jul 2016)

  Changed paths:
    M src/ZODB/DB.py
    M src/ZODB/tests/TransactionalUndoStorage.py
    M src/ZODB/tests/blob_transaction.txt
    M src/ZODB/tests/testFileStorage.py

  Log Message:
  -----------
  Test that IMultiCommitStorages are supported


  Commit: eec498102191ccb6ff3b2c81014d31e4e233a0aa
      https://github.com/zopefoundation/ZODB/commit/eec498102191ccb6ff3b2c81014d31e4e233a0aa
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-04 (Mon, 04 Jul 2016)

  Changed paths:
    M src/ZODB/interfaces.py

  Log Message:
  -----------
  Update interface for reality

ZEO handles undo asynchronously and ZODB has for some time allowed
undo oids to be returned via vote.


  Commit: 0a2670a257b743a7149ecaec0da2e5bf9462ea75
      https://github.com/zopefoundation/ZODB/commit/0a2670a257b743a7149ecaec0da2e5bf9462ea75
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-04 (Mon, 04 Jul 2016)

  Changed paths:
    A src/ZODB/multicommitadapter.py

  Log Message:
  -----------
  forgot to add a file again...


  Commit: 788606598a9c92d6e61dc5da830858478661579e
      https://github.com/zopefoundation/ZODB/commit/788606598a9c92d6e61dc5da830858478661579e
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-04 (Mon, 04 Jul 2016)

  Changed paths:
    M src/ZODB/Connection.py
    M src/ZODB/DB.py
    M src/ZODB/multicommitadapter.py
    M src/ZODB/tests/TransactionalUndoStorage.py
    M src/ZODB/tests/blob_transaction.txt

  Log Message:
  -----------
  Various small fixes suggested in review.


  Commit: d09694fcb9639522adbd3a7c815830237c303a04
      https://github.com/zopefoundation/ZODB/commit/d09694fcb9639522adbd3a7c815830237c303a04
  Author: Julien Muchembled <jm at nexedi.com>
  Date:   2016-07-04 (Mon, 04 Jul 2016)

  Changed paths:
    M src/ZODB/tests/blob_packing.txt

  Log Message:
  -----------
  Simplify a test in blob_packing


  Commit: 09423921ae33205e694347b936cf66fb3eeb5531
      https://github.com/zopefoundation/ZODB/commit/09423921ae33205e694347b936cf66fb3eeb5531
  Author: Jim Fulton <jim at zope.com>
  Date:   2016-07-04 (Mon, 04 Jul 2016)

  Changed paths:
    M CHANGES.rst
    M setup.py
    M src/ZODB/interfaces.py

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/4' into handle-serial-4

Conflicts:
	src/ZODB/interfaces.py


  Commit: 88221040fbe67094f58ffea03c54093e1ae7cd78
      https://github.com/zopefoundation/ZODB/commit/88221040fbe67094f58ffea03c54093e1ae7cd78
  Author: Jim Fulton <jim at jimfulton.info>
  Date:   2016-07-04 (Mon, 04 Jul 2016)

  Changed paths:
    M src/ZODB/BaseStorage.py
    M src/ZODB/Connection.py
    M src/ZODB/DB.py
    M src/ZODB/blob.py
    M src/ZODB/interfaces.py
    A src/ZODB/multicommitadapter.py
    M src/ZODB/tests/MVCCMappingStorage.py
    M src/ZODB/tests/TransactionalUndoStorage.py
    M src/ZODB/tests/blob_packing.txt
    M src/ZODB/tests/blob_transaction.txt
    M src/ZODB/tests/testConnection.py
    M src/ZODB/tests/testFileStorage.py
    M src/ZODB/tests/testblob.py

  Log Message:
  -----------
  Merge pull request #77 from zopefoundation/handle-serial-4

Better support of the new API to notify of resolved conflicts (store/tpc_finish)


Compare: https://github.com/zopefoundation/ZODB/compare/05be22e0bf73...88221040fbe6


More information about the checkins mailing list