Hash: SHA1

Roché Compaan wrote:
> In CMFCore.FSPythonScript.py around line 170 in the _exec method, a
> volatile attribute is checked to see if a script has been compiled
> properly. The lifetime of volatile attributes cannot be guaranteed
> right, so I would assume that this code is not being careful enough.
> This is the code I'm talking about:
>         # Prepare the function.
>         f = self._v_f
>         if f is None:
>             # The script has errors.
>             __traceback_supplement__ = (
>                 FSPythonScriptTracebackSupplement, self, 0)
>             raise RuntimeError, '%s has errors.' % self._filepath
> I have a few Plone sites that work perfectly 99% of the time, but under
> heavy load they raise RuntimeErrors on scripts at precisely this point
> in the code. The only explanation seems to be that the volatile
> attribute has lost its state. When I "customise" the scripts to force a
> recompile it works again.
> Seems like a bug?

I've never seen the behavior you report, but inspection suggests that an
extra check would not hurt.  E.g., before the 'if f is None' above, adding:

    if f is None:
        f = self._v_f

should do the trick.  If you can generate a patch for this, which
includes a test (calling 'script._p_deactivate()' should mimic the
behavior you are seing), I would be glad to merge it (assuming you don't
have SVN privileges).

- --
Tres Seaver          +1 540-429-0999          [EMAIL PROTECTED]
Palladion Software   "Excellence by Design"    http://palladion.com
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


Zope-CMF maillist  -  Zope-CMF@lists.zope.org

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests

Reply via email to