[Zope-CMF] Bug in FSPythonScript?

Roché Compaan roche at upfrontsystems.co.za
Fri Sep 5 04:23:13 EDT 2008


On Thu, 2008-09-04 at 17:19 -0400, Tres Seaver wrote:
> -----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).

Thanks, will do.

-- 
Roché Compaan
Upfront Systems                   http://www.upfrontsystems.co.za



More information about the Zope-CMF mailing list