- 21 Dec, 2004 9 commits
-
-
Tim Peters authored
Object.serialize_header(): Stopped stuffing the version string into this notion of "a header". Couldn't see any reason for it, and it was surprising. ClientCache.invalidate(): Added some asserts to clarify intended preconditions. Alas, my guess that it was intended that the passed-in tid always be greater than the current tid turned out to trigger errors. This gets complicated, and hasn't been resolved yet. The problem is that the passed-in tid can be (in fact, always is) None during cache verification. The code here *really* doesn't seem to be expecting that, and the on-disk cache file is clearly left in a wrong state (if we repopulated the cache from the disk file, the object would not look invalidated any more, it would look current). Dumped in a giant stack trace so I don't forget this; sent email to Jeremy asking if he recalls what the real intent was.
-
Tim Peters authored
More cleanup. Notable: - Object.fromFile(): renamed `header_only` arg to `skip_data`. Skipping the data is what it does, while there are at least 3 distinct notions of what "a header" means in this module. Object has two notions of "header" all by itself (& I'm still not sure why Object.serialize_header() considers the version string to be part of "the header"). - FileCache.__init__(): log a warning if reuse=True but the given file path doesn't exist. The code ignores `reuse` then (before, and now). Not sure that's the best thing to do.
-
Tim Peters authored
- Object.fromFile(): renamed `header_only` arg to `skip_data`. Skipping the data is what it does, while there are at least 3 distinct notions of what "a header" means in this module. Object has two notions of "header" all by itself (& I'm still not sure why Object.serialize_header() considers the version string to be part of "the header"). - FileCache.__init__(): log a warning if reuse=True but the given file path doesn't exist. The code ignores `reuse` then (before, and now). Not sure that's the best thing to do.
-
Tim Peters authored
More cleanup. Notable: - Moved the logger object to module scope. There's virtually no logging of any kind done here, and I suspect that's partly because the logging object was clumsy to get at. - Figured out what the code actually does when the cache size asked for doesn't match the actual size of a pre-existing cache file. It apparently wanted to ignore the requested size then. It probably shouldn't, but leaving that for later. Still, it left its own idea of the file size out of synch with the actual file size, and that was a bug. For now, logged a warning when this happens, and changed the code to respect the actual file size.
-
Tim Peters authored
- Moved the logger object to module scope. There's virtually no logging of any kind done here, and I suspect that's partly because the logging object was clumsy to get at. - Figured out what the code actually does when the cache size asked for doesn't match the actual size of a pre-existing cache file. It apparently wanted to ignore the requested size then. It probably shouldn't, but leaving that for later. Still, it left its own idea of the file size out of synch with the actual file size, and that was a bug. For now, logged a warning when this happens, and changed the code to respect the actual file size.
-
Tim Peters authored
More cleanup. Notable: ClientCache: Removed the .tid attribute. It was never updated; the contained FileCache instance actually keeps track of the last tid. This had the happy side effect of fixing bugs in testSerialization: it was accessing .tid directly, and so was _always_ comparing None to None. Changing the test to use .getLastTid() instead means it's now testing what it always intended to test. FileCache: Removed some unused private attributes for tracking internal statistics.
-
Tim Peters authored
ClientCache: Removed the .tid attribute. It was never updated; the contained FileCache instance actually keeps track of the last tid. This had the happy side effect of fixing bugs in testSerialization: it was accessing .tid directly, and so was _always_ comparing None to None. Changing the test to use .getLastTid() instead means it's now testing what it always intended to test. FileCache: Removed some unused private attributes for tracking internal statistics.
-
Tim Peters authored
More code and comment cleanups. Notable changes: FileCache: removed the currentsize attribute. It was initialized to 0 but never updated. Some tests referenced it, but since it was always 0 those tests weren't getting any good from it. Don't recall (or never knew) what its intended purpose may have been. FileCache.remove(): Repaired major bug. This mistakenly stored the "this disk block is free now" status byte into the start of the serialized Object record's end_tid field (incorrect seek offset). The in-memory structures were correct then, but got out of synch with the disk file; the latter then still claimed to have info for a "live" object revision, but that revision was actually dead, and the info on disk had a corrupt end_tid value.
-
Tim Peters authored
FileCache: removed the currentsize attribute. It was initialized to 0 but never updated. Some tests referenced it, but since it was always 0 those tests weren't getting any good from it. Don't recall (or never knew) what its intended purpose may have been. FileCache.remove(): Repaired major bug. This mistakenly stored the "this disk block is free now" status byte into the start of the serialized Object record's end_tid field (incorrect seek offset). The in-memory structures were correct then, but got out of synch with the disk file; the latter then still claimed to have info for a "live" object revision, but that revision was actually dead, and the info on disk had a corrupt end_tid value.
-
- 20 Dec, 2004 2 commits
-
-
Tim Peters authored
Many small comment and code improvements.
-
Tim Peters authored
-
- 10 Dec, 2004 2 commits
-
-
Tim Peters authored
-
Tim Peters authored
-
- 09 Dec, 2004 4 commits
-
-
Tim Peters authored
-
Tim Peters authored
-
Tim Peters authored
Explicitly cast to float. Else MSVC generated legit warnings everywhere this macro was used, warning about possible silent precision loss.
-
Tim Peters authored
This adds a new IFBTree type, intended for use in indices. Still needs NEWS, still needs docs, and there are a pile of legitimate compiler warnings on Windows that need fixing.
-
- 16 Nov, 2004 2 commits
-
-
Tim Peters authored
Forward port from ZODB 3.2. Collector 1581: fspack can blow up when .fs is corrupted Repaired three places where fspack referenced an undefined global while *trying* to raise CorruptedError. Added new checkCorruptionInPack() test to verify the correct exception gets raised.
-
Tim Peters authored
Collector 1581: fspack can blow up when .fs is corrupted Repaired three places where fspack referenced an undefined global while *trying* to raise CorruptedError. Added new checkCorruptionInPack() test to verify the correct exception gets raised.
-
- 11 Nov, 2004 11 commits
-
-
Tim Peters authored
type_and_adr(): Display the oid too.
-
Tim Peters authored
-
Tim Peters authored
Change ConflictError constructor to stop importing app objects. When the ConflictError constructor is passed a pickle, extract the module and class names without loading the pickle. A ZEO server doesn't necessarily have the implementation code for application classes, and when that's so the attempt to raise ConflictError was itself dying with an ImportError.
-
Tim Peters authored
When the ConflictError constructor is passed a pickle, extract the module and class names without loading the pickle. A ZEO server doesn't necessarily have the implementation code for application classes, and when that's so the attempt to raise ConflictError was itself dying with an ImportError.
-
Tim Peters authored
This one doesn't exist on the 3.3 branch.
-
Tim Peters authored
Move more get_pickle_metadata imports.
-
Tim Peters authored
-
Tim Peters authored
Import get_pickle_metadata from its new home.
-
Tim Peters authored
-
Tim Peters authored
Move get_pickle_metadata() into utils.py. Try to make more sense of the ZODB pickle format "docs".
-
Tim Peters authored
Try to make more sense of the ZODB pickle format "docs".
-
- 06 Nov, 2004 1 commit
-
-
Tim Peters authored
-
- 05 Nov, 2004 4 commits
-
-
Tim Peters authored
-
Tim Peters authored
Try to get ring.h installed.
-
Tim Peters authored
-
Tim Peters authored
This spares clients from having to do it themselves repeatedly. A dubious consequences is that Transaction.__init__ now requires a WeakSet of synchronizer objects (or None -- so it's not a catastrophic requirement, just irksome).
-
- 04 Nov, 2004 1 commit
-
-
Tim Peters authored
Weak sets have have pragmatic gotchas, explained in the comments before the new WeakSet.as_weakref_list() method. In essence, we just took all the weak sets of connection objects and changed everything so that a list of live objects is never materialized anymore. Also added new map()-like methods so that clients don't usually need to be aware of the weakrefs under the covers.
-
- 02 Nov, 2004 4 commits
-
-
Tim Peters authored
This can't use self._connectionMap, because it needs to know the version associated with each connection.
-
Tim Peters authored
that the trunk is no longer strongly related to 3.3 development (the later takes place on the 3.3 branch).
-
Tim Peters authored
-
Tim Peters authored
-