[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