An error occurred fetching the project authors.
  1. 08 Nov, 2001 2 commits
  2. 07 Nov, 2001 2 commits
    • Jeremy Hylton's avatar
      Really stop the leak of file descriptors! · 4858c98e
      Jeremy Hylton authored
      The previous checkin stopped using the per-connection trigger, but
      didn't stop creating it.  (Dang.)
      
      Thanks to Shane for noticing.
      4858c98e
    • Jim Fulton's avatar
      Totally rewrote recovery script to use an entirely different approach · 2d0d8c08
      Jim Fulton authored
      based on:
      
        - transaction iteration/copy
      
        - scanning for transactions after bad data
      
      This should allow recovery of data when:
      
        - only data records are damaged and when
      
        - multiple parts of a file are damaged
      
      The interface has changed to not modify in place.
      
      Other features:
      
        - Progress indicator
      
        - Verbose output
      
        - optional packing
      
        - index creation
      2d0d8c08
  3. 06 Nov, 2001 3 commits
  4. 02 Nov, 2001 4 commits
  5. 31 Oct, 2001 1 commit
    • Jeremy Hylton's avatar
      Fix memory leak in BTrees. · c294cd02
      Jeremy Hylton authored
      The Mapping_update() method iterated over a sequence of 2-tuples, but
      held an extra reference to the sequence.  The sequence object was
      DECREFed on an error exit but not on the normal return.
      
      The fix reworks the control flow of the function to make the reference
      counting behavior a little clearer:
      
         - Test for call with no arguments and return immediately if so.
      
         - If the argument is a sequence, don't INCREF it.
      
         - If the argument passed isn't a sequence, call its items() method
           and store the result in the local variables seq and items.
      
         - On exit, do Py_XDECREF(items).  This will do a decref only if a
           the second case above applied.
      
      Two other minor nits:
      
         - Make consistent use of spaces around = in assignments (as opposed
           to a fix of both)
      
         - Remove assignment from conditional expression.
      c294cd02
  6. 29 Oct, 2001 3 commits
    • Jeremy Hylton's avatar
      Add a sleep(1) before each pack() call. · 13a4bef6
      Jeremy Hylton authored
      pack() uses a coarse-grain timer to decide which revisions to look at
      during a pack.  The tests depend on a pack() called after a commit to
      see that committed transaction, but the implementation can't guarantee
      that it will.
      
      In particular, pack() converts its time argument to a TimeStamp by
      truncating to the nearest second.  If a transaction T1 commits and pack
      is called (with the current time as its argument) during the same second,
      the pack() will not consider T1.  This was causing intermittent, but
      frequent test failures on Windows.
      
      The fix is to add a small delay in the pack test cases to guarantee that
      pack(time.time()) will always see the last committed transaction.
      13a4bef6
    • Jeremy Hylton's avatar
      Small change to pack to make it more robust. · b94b218f
      Jeremy Hylton authored
      If the packpos returned by the read_index() call is 4, return immediately.
      In this case, the very first transaction, which contains the root object,
      is after the pack time.  This is a degenerate case, but it seems clearest
      to do nothing.
      
      This change eliminates an unexpected traceback in pack() that occurred
      frequently, but not every time, when testing on Windows.  When
      read_index() returned 4, a seek() call in _redundant_pack() would fail
      with a bad argument.
      
      Add an assertion to _redundant_pack() because it should never be called
      with bogus arguments as a result of the other change.
      b94b218f
    • Jeremy Hylton's avatar
      Fix test to succeed on Windows. · 0b70a63b
      Jeremy Hylton authored
      Don't test for explicit end-of-line markers, since they vary across
      platforms.  Instead, strip() the line read and test for the actual content.
      0b70a63b
  7. 26 Oct, 2001 3 commits
    • Jeremy Hylton's avatar
      Tests for transactional undo support need to be more cautious: · ebdf1e36
      Jeremy Hylton authored
      If a storage doesn't support T.U. and is old enough, you need to first
      check if it has a supportsTransactionalUndo attribute.
      ebdf1e36
    • Jeremy Hylton's avatar
      Update tests so that ZEO tests pass on Zope 2.3. · 32425b5a
      Jeremy Hylton authored
      There are a few problems with Zope 2.3 that prevented the tests from
      succeeding.  Since the 1.0 release must support Zope 2.3, we'll need
      to hack the various tests to work around them.
      
          Assuming releases after 1.0 don't need to work with 2.3: After the
          1.0 final release, I'll tag both ZEO and ZODB trees and then undo
          all these silly changes.
      
      Problems:
      
          - no support for transactional undo or getSerial()
          - FileStorage commitVersion() and abortVersion() didn't check for
            bogus arguments
      32425b5a
    • Jeremy Hylton's avatar
      Some reformatting for readability. · 21067f66
      Jeremy Hylton authored
      21067f66
  8. 24 Oct, 2001 4 commits
  9. 22 Oct, 2001 4 commits
  10. 19 Oct, 2001 3 commits
  11. 18 Oct, 2001 1 commit
  12. 17 Oct, 2001 1 commit
    • Tres Seaver's avatar
      · 9876c565
      Tres Seaver authored
        o Land unit test cleanup from branch.
      
        o Known breakage as of 2001/10/17:
      
          - TAL test suite is very broken (TAL is currently suppressed in
            lib/python/.testinfo).
      
          - AccessControl tests don't run if run first;  lib/python/.testinfo
            pushes them to the end of the queue, at which point they *do* run.
            Global side effects suck!
      
          - lib/python/BTrees/testBTreesUnicode.py:  weird flakiness around
            comparison of ASCII and Unicode strings;  breaks in different
            ways under Python 2.1 and 2.2.
      
          - lib/python/Products/PageTemplates/tests:  three tests break due
            to security asserctions.
      9876c565
  13. 15 Oct, 2001 3 commits
  14. 10 Oct, 2001 2 commits
  15. 08 Oct, 2001 4 commits
    • Jeremy Hylton's avatar
    • Jeremy Hylton's avatar
      Oops: local var is f not file. · 5332d256
      Jeremy Hylton authored
      5332d256
    • Jeremy Hylton's avatar
    • Jeremy Hylton's avatar
      Clean-ups and speed-ups to the default log implementation. · fd97a65e
      Jeremy Hylton authored
      This change includes a minor change to semantics for
      reinitialization().
      
      There are three chief performance-related changes:
      
          - Do not check whether logging is enabled in the actual log call.
            Instead check enviroment variables when the module is imported
            and whenever an explicit initialize() call is made.
      
            This might seem like it limits the user's ability to turn
            logging on and off, but I don't believe it does.  Logging is
            controlled by environment variables.  Once the Python script is
            working, the environment variables won't change.
      
            This change makes the case of no logging fast, instead of slow.
      
          - Each log call goes through a method on the stupid_log_write()
            object instead of through __call__().  It's much faster to call
            a method than an instance.
      
          - Use "print >> file" rather than "file.write()".  It appears to
            be a bit faster.
      
      Replaced _set_stupid_dest() with _set_log_dest().
      fd97a65e