Clean up mounts, TemporaryFolder
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Zope 2 |
Fix Released
|
Medium
|
Unassigned |
Bug Description
The database mounting code in Zope is error-prone and confused. While Zope has its own "ZODBMountPoint" product with its own Mount.py, it also (at least in Zope's TemporaryFolder product) imports another Mount.py from ZODB. ZODB shouldn't have a Mount.py at all, since ZODB makes no use of it, never tests it, etc -- it's a Zope thing.
Zope's ZODBMountPoint's Mount.py also reaches into ZODB internals, replacing important Connection methods with its own versions, which historically fail to track changes in ZODB Connection internals. Miserable bugs are common when this happens. At the ZODB sprint in March, we implemented Jim's "multidatabase" proposal for ZODB 3.4, which was intended to provide a *clean* basis for doing what Zope needs here. Alas, no work has been done on the Zope side of this yet.
It would be good if all of this could be addressed coherently at the same time. From ZODB's POV, the issue could be closed simply if Zope 2.9 stopped using ZODB's Mount.py (and Mount.py would vanish from ZODB 3.5 then), but that wouldn't be the best outcome.
The code has been cleaned up later in 2005. No ZODB patching is taking place at this point, and ZODBMountPoint no longer has its own Mount.py module. I cannot see such a module in the ZODB package anymore, either.