[Zope] error in pcgi

Service Informatique CHSR chsrinfo@guetali.fr
Tue, 13 Apr 1999 16:19:39 +0400


>>> my site was working great when suddenly, I got a "Temporarily
>>> unavailable"
>>> message.
>>> The pcgi.log reads:
>>>
>>> unexpected out-of-bound data in stdin t[0]=60
>>>
>>Usually this means that the Zope process is unable to start up
>>for some reason (an import error, syntax error, etc.). I'm not
>>sure how changing DTML document objects could cause this, though.
>>You didn't happen to change any DTML that is read from the disk
>>(e.g., HTMLFile objects used from Zope, installed products or
>>external methods) did you? If so, there is probably a dtml syntax
>>error that is being raised at startup time.
>
>You are positively right.
>I stupidly wrote <!--#var "some_method(var0=value0, REQUEST)"-->
>notice the non-named parameter after a named parameter.
>
>I haven't tried it yet with other publishing mechanisms (ZServer,
>ZopeHTTPServer,
>which don't use PCGI), but if these servers also dies for such oddities,
>this might be
>a bug in error handling. Stay tuned for more informations.


This is a known problem, already in the python TODO file.
I don't know if the new version (python 1.5.2b2) solves the
problem. However, the python TODO list reads:

3.4. sequential arg after kw arg generates bad code w.
warnings

For example: 

 >>> def desc(*args, **kw):
         pass

 >>> desc(1,2,'foo',x=None,desc)
 <stdin>:1: underflow! nexti=27, level=6, n=7
 <stdin>:1: underflow! nexti=28, level=0, n=1
 SyntaxError: non-keyword arg after keyword arg
 >>>

This explains why <!--#var "some_method(var0=value0, REQUEST)"-->
shoots pci_handle which don't expect the "<stdin>:1:underflow..." lines.

Regards, 
Jephte CLAIN
Service Informatique CHSR