Shane Hathaway wrote:
That's about right. The refresh functionality uses features of ZODB and Python that haven't been perfected, and the result is occasional surprises. My rule is that if there's no really obvious explanation (i.e. about 5 seconds) for a bug that appears after a refresh, I restart Zope.
The most common refresh-related bug is "AttributeError: None has no attribute <foo>". It happens because an old class instance or function is still alive. If that happens often, fix up the refresh dependencies to ensure that derived products are always refreshed after a base product.
But in this case it's not a problem with the product. The DA is _outside_ the folderish product, the ZSQL Methods are inside (in a stock zope folder on their own). So everything related to the SQL stuff is stock zope stuff. Refreshing causes the number of connections from zope to the postgres to grow (from 4 to 8 in the first time). That's why I suspected there's something wrong either with the DA or with the refresh functionality which has nothing to do with the ZODB. cheers, oliver