1. 21 Jan, 2003 6 commits
    • Barry Warsaw's avatar
      Added a few elaborate, thread based tests of the pack race condition · e4a3b271
      Barry Warsaw authored
      for both full and minimal bdb storages.
      e4a3b271
    • Barry Warsaw's avatar
      Fixes to close a pack-related race condition. If new objects were · e49710b4
      Barry Warsaw authored
      added while a pack was stuck between a mark and a sweep, the mark
      would not have found the new objects as root reachable (because they
      wouldn't have been stored yet), but the sweep will find then and
      erroneously delete them.
      
      _setupDBs(): Add a _packing flag which gets set whenever we're doing a
      classic or auto pack
      
      _docommit(): When the _packing flag is set, copy all oids in the _oids
      table to the _packmark table, so any objects added between the mark
      and sweep phases will not be gc'd.  This is fine because if they're
      still not root reachable by the next gc pass, they'll get collected
      then.
      
      pack(): Set and reset the _packing flag around the calls to _dopack().
      
      Also, get ZERO from the package, and add the `info' table for storage
      metadata.
      
      _docommit(): Fix a reference counting bug caused by not incref'ing the
      objects referred to by the new pickle of a new object revision.
      e49710b4
    • Barry Warsaw's avatar
      Fixes to close a pack-related race condition. If new objects were · 80e75665
      Barry Warsaw authored
      added while a pack was stuck between a mark and a sweep, the mark
      would not have found the new objects as root reachable (because they
      wouldn't have been stored yet), but the sweep will find then and
      erroneously delete them.
      
      _setupDBs(): Add a _packing flag which gets set whenever we're doing a
      classic or auto pack
      
      _docommit(): When the _packing flag is set, copy all oids in the _oids
      table to the _packmark table, so any objects added between the mark
      and sweep phases will not be gc'd.  This is fine because if they're
      still not root reachable by the next gc pass, they'll get collected
      then.
      
      pack(), autopack(): Set and reset the _packing flag around the calls
      to _dopack().
      80e75665
    • matt@zope.com's avatar
    • Chris McDonough's avatar
      Small refactoring and bug caught in computation of "plast" which had the... · a8858f67
      Chris McDonough authored
      Small refactoring and bug caught in computation of "plast" which had the potential to cause slowness.
      a8858f67
    • Chris McDonough's avatar
  2. 20 Jan, 2003 7 commits
    • Fred Drake's avatar
      - re-enable several loghandler types · cb2e2fc3
      Fred Drake authored
      - make it easier for an admin to configure logging levels
        (by making the defaults more sane)
      - refactor the tests a little, in preparation for more tests
      cb2e2fc3
    • Fred Drake's avatar
      Factory: · 32c9ab31
      Fred Drake authored
      - remove methods that aren't needed
      - rename "resolved" to "instance" for readability
      32c9ab31
    • Barry Warsaw's avatar
      copyright year · 224e4ba1
      Barry Warsaw authored
      224e4ba1
    • Barry Warsaw's avatar
      Minor commential change. · 334f0207
      Barry Warsaw authored
      334f0207
    • Barry Warsaw's avatar
      Get ZERO from the package. · 02a03c4d
      Barry Warsaw authored
      Remove __version__
      02a03c4d
    • Barry Warsaw's avatar
      Define ZERO here. · 816d3ea3
      Barry Warsaw authored
      816d3ea3
    • Barry Warsaw's avatar
      Get ZERO from the package. · 5c618e89
      Barry Warsaw authored
      Remove __version__
      
      ZODB4 will have two new methods in the storage api:
      
          get_version() -> string
          set_version(string)
      
      Prepare for this now by changing the packtime table into an info
      table, which is just a key/value mapping for meta-information about
      the storage.  For now, the only key we define is `packtime' although
      we're reserving `version' for ZODB4.
      5c618e89
  3. 19 Jan, 2003 3 commits
    • Andreas Jung's avatar
      be790b50
    • Andreas Jung's avatar
    • Chris McDonough's avatar
      Instead of referring to user folder by its ZMI-visible username (acl_users) · ca33bdd3
      Chris McDonough authored
      when attempting to get a list of users, use the __allow_groups__ alias.
      This doesn't break anything as it is one of the (unwritten) contracts
      of a user folder to install itself as __allow_groups__ in its container
      (it is canonized in the manage_beforeDelete and manage_afterAdd methods
      of BasicUserFolder, and the traversal machinery refers to a user folder
      by its __allow_groups__ alias exclusively).
      
      It's actually likely that all code in Zope's security machinery that directly
      refers to a user folder by its 'acl_users' alias in this way is wrong.
      
      Referring to the user folder by its __allow_groups__ alias in the security
      machinery exclusively gives us the ability to insert a "proxy" object as
      can act as an intermediary for a "real" UserFolder object, allowing us to
      massage the output from its interface methods as necessary to allow for
      grouping and other tricks.
      ca33bdd3
  4. 18 Jan, 2003 1 commit
    • Shane Hathaway's avatar
      Merge from 2_6 branch: fixed stored acquisition wrappers. · 8a7ff3a5
      Shane Hathaway authored
      Some indexes were storing acquisition wrappers in the cyclic references
      back to the ZCatalog instance.  Removed the acquisition wrappers and
      cleaned up a bad use of apply().  The acquisition wrappers were revealed
      by AdaptableStorage.
      
      There's a second problem, in that indexes are unknowingly storing references
      back to the ZCatalog in an unused attribute.  In the 2_6 branch it's
      hard to fix without breaking things, but on the HEAD there's a better way
      to fix this.  Coming soon, I hope.
      8a7ff3a5
  5. 17 Jan, 2003 2 commits
  6. 16 Jan, 2003 2 commits
  7. 14 Jan, 2003 4 commits
  8. 13 Jan, 2003 3 commits
  9. 11 Jan, 2003 1 commit
  10. 10 Jan, 2003 3 commits
  11. 09 Jan, 2003 2 commits
  12. 07 Jan, 2003 1 commit
    • Guido van Rossum's avatar
      Several changes, mostly to speed up logging when : · 354cd386
      Guido van Rossum authored
      - Cache the translations from severity to level and string in dicts,
        so these are normally done with a single dict.get() call rather than
        a Python function call.
      
      - Extract the PEP 282 level first, and check it against the effective
        level of the logger, so we can take an early exit if the logger
        won't handle the event.
      
      - Got rid of textwrap.  It slows things down, can frustrate grepping
        programs, and wasn't effective unless you were using Python 2.3
        anyway.
      
      - Got rid of the addHandler(NullHandler()) (seems like superstition).
      
      - Got rid of the log_format class variable (YAGNI).
      354cd386
  13. 06 Jan, 2003 5 commits