[Checkins] [zopefoundation/persistent] ff6486: Stop calling gc.collect in the Python incrgc.

GitHub noreply at github.com
Mon Dec 19 17:48:47 CET 2016


  Branch: refs/heads/new_ghost_doesnt_clear_newargs
  Home:   https://github.com/zopefoundation/persistent
  Commit: ff64867cca3179b1a6379c93b6ef90db565da36c
      https://github.com/zopefoundation/persistent/commit/ff64867cca3179b1a6379c93b6ef90db565da36c
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2016-12-19 (Mon, 19 Dec 2016)

  Changed paths:
    M CHANGES.rst
    M persistent/picklecache.py
    M persistent/tests/test_picklecache.py

  Log Message:
  -----------
  Stop calling gc.collect in the Python incrgc.

@jimfulton and I have talked about it, and I'm (mostly :) convinced that
this shouldn't be an actual problem for any of the reasons described in
the previous comment.

If I use PyPy 5.4.1 to run the ZODB master test suite against
this (well, with #44 rolled back) I don't get any unexpected
failures. (I haven't run the ZEO test suite yet.) Which honestly amazes
me because I'm sure I used to get test failures---I guess the PyPy GC
has changed...which means we may see some failures on Travis. I'll try
to set up an older PyPy to verify.


  Commit: 930088adfcfa9530c0dd8f5c0c2c1dc970f26416
      https://github.com/zopefoundation/persistent/commit/930088adfcfa9530c0dd8f5c0c2c1dc970f26416
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2016-12-19 (Mon, 19 Dec 2016)

  Changed paths:
    M persistent/persistence.py
    M persistent/picklecache.py

  Log Message:
  -----------
  new_ghost doesn't clear object state, preserving __getnewargs__ values.


  Commit: d03760b3bb33ae5a703aa1ae181336d28474833e
      https://github.com/zopefoundation/persistent/commit/d03760b3bb33ae5a703aa1ae181336d28474833e
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2016-12-19 (Mon, 19 Dec 2016)

  Changed paths:
    M persistent/picklecache.py
    M persistent/tests/test_persistence.py
    M persistent/tests/test_picklecache.py

  Log Message:
  -----------
  Don't clear the slots/dict when adding a new_ghost to Python
PickleCache.

Fixes #49.

Unfortunately, this doesn't fix the whole problem, because
_p_deactivate() still clears them, and so we lose what we set in __new__.


  Commit: c6e818dbc20e7b3a5cef55515af9fcc9500bedf0
      https://github.com/zopefoundation/persistent/commit/c6e818dbc20e7b3a5cef55515af9fcc9500bedf0
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2016-12-19 (Mon, 19 Dec 2016)

  Changed paths:
    M .gitignore
    M CHANGES.rst
    M persistent/persistence.py

  Log Message:
  -----------
  change note


Compare: https://github.com/zopefoundation/persistent/compare/76593305679a...c6e818dbc20e


More information about the checkins mailing list