I have a simple cgi application and want to use cgitb as a catchall way of getting an error response when things go wrong

I did development with nginx + fastcgi + fsgiwrap and the cgitb failure output appears to work fine.

The end user wants to use apache 2.4 and there things go wrong. Instead of the cgitb traceback html I am seeing a generic apache server error page.

After some serious debugging with strace I find that the cgitb is starting to write, but it appears that it always starts writing something containing the word spam eg

<!--: spam
Content-Type: text/html

<body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> -->
<body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> --> -->
</font> </font> </font> </script> </object> </blockquote> </pre>
</table> </table> </table> </table> </table> </font> </font> </font><body bgcolor="#f0f0f8">


this is from the function reset in cgitb.

My application has not written anything at the point this appears and it seems that apache just considers this an erroneous output. In order to make apache behave it seems I must start stdout before an error has occurred. That appears silly when I don't know when an error will occur.

Is there a way to get cgitb to check whether anything has been written to stdout when it starts up? Or is there some standard way to initialize stdout so that cgitb will not force apache to the wrong conclusion?
--
Robin Becker

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to