[Zope-CMF] Bug in FSPythonScript?

Tres Seaver tseaver at palladion.com
Thu Sep 4 17:19:22 EDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
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:
        self._readFile(True)
        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.
- --
===================================================================
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

iD8DBQFIwFDZ+gerLs4ltQ4RAnpvAKCV3e3C9TPOQiygwY/TtHn4e2DiawCgidlU
DZakIRreq4bJejN8RgWbF9Y=
=+jUJ
-----END PGP SIGNATURE-----



More information about the Zope-CMF mailing list