[Zope-dev] DBTab/Mountpoint bug

Tres Seaver tseaver at palladion.com
Thu Aug 14 10:34:12 EDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Christian Theune wrote:
> Hi,
> 
> Zope 2's multi-database support has a bug: it doesn't connect the
> registered databases into a multi-database structure unless someone
> traverses over the mount point objects.
> 
> This makes local component registration that spans multiple database
> problematic because you have to first traverse over all mountpoints,
> before using `getUtility` etc.
> 
> Here's a patch that fixes the problem. It needs to be applied to
> lib/python/Products/ZODBMountPoint:
> 
> Index: __init__.py
> ===================================================================
> --- __init__.py	(revision 2957)
> +++ __init__.py	(working copy)
> @@ -25,6 +25,9 @@
>                        MountedObject.manage_getMountStatus,
>                        MountedObject.manage_addMounts,),
>          )
> -
> -
> -
> +    # Open all DBTab databases once, so they get registered with the
> +    # multi-database data structure and can later be opened
> automagically with
> +    # ZODB's get_connection function.
> +    dbtab = MountedObject.getConfiguration()
> +    for name in dbtab.listDatabaseNames():
> +        dbtab.getDatabase(name=name)
> 
> However, I don't see a good way to write a test for this. Any ideas? How
> do I test product initialisation code?

Put the new code in a separate function, test that function, and then
call it from within 'initialize' (i.e., don't worry about testing that
it gets called).

> I'd like to get this fix into in Zope 2.11.

+1.


Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIpEJk+gerLs4ltQ4RApURAKCC8WY/d0hT+PygAie+e7t3PzsppACgrmau
u/+Tx9AGnerhxf5PXX5vP0c=
=uyvv
-----END PGP SIGNATURE-----



More information about the Zope-Dev mailing list