= Description = MoinMoin + lighttpd + FastCGI fills the lighttpd error log with empty messages. == Steps to reproduce == ## Describe the steps needed to reproduce the bug. If we can't reproduce it, we probably can't fix it. 1. Install MoinMoin per '''Deploying on lighttpd''' under [[HelpOnInstalling/FastCgi]] 2. Every request will cause an error message in the lighttpd error log such as: {{{ 2006-07-25 23:55:17: (mod_fastcgi.c.2536) FastCGI-stderr: 2006-07-25 23:55:19: (mod_fastcgi.c.2536) FastCGI-stderr: 2006-07-25 23:55:26: (mod_fastcgi.c.2536) FastCGI-stderr: 2006-07-25 23:55:28: (mod_fastcgi.c.2536) FastCGI-stderr: }}} This is actually noted on the aforementioned installation page. == Example == See above. == Details == || '''!MoinMoin Version''' ||1.5.4|| || '''OS and Version''' ||Red Hat 7.3|| || '''Python Version''' ||2.4.3|| || '''Server Setup''' ||lighttpd-1.4.11|| || '''Server Details''' ||mod_fastcgi|| || '''Language you are using the wiki in'''||English|| == Workaround == This is a bug in lighttpd's mod_fastcgi.c (see below). In the meantime, the following change to thfcgi.py silences the empty messages: {{{ --- /home/jay/src/moin-1.5.4/MoinMoin/support/thfcgi.py Thu May 11 16:24:00 2006 +++ lib/python2.4/site-packages/MoinMoin/support/thfcgi.py Wed Jul 26 00:26:20 2006 @@ -322,17 +322,18 @@ self.have_finished = 1 # stderr - self.err.reset() - rec = Record() - rec.rec_type = FCGI_STDERR - rec.req_id = self.req_id - data = self.err.read() - while data: - chunk, data = self.getNextChunk(data) - rec.content = chunk - rec.writeRecord(self.conn) - rec.content = "" - rec.writeRecord(self.conn) # Terminate stream + if self.err.tell(): + self.err.reset() + rec = Record() + rec.rec_type = FCGI_STDERR + rec.req_id = self.req_id + data = self.err.read() + while data: + chunk, data = self.getNextChunk(data) + rec.content = chunk + rec.writeRecord(self.conn) + rec.content = "" + rec.writeRecord(self.conn) # Terminate stream # stdout self.out.reset() }}} [[attachment:thfcgi.py-stderr.patch]] = Discussion = I believe this to a be a bug in lighttpd's mod_fastcgi module and have filed it as so: http://trac.lighttpd.net/trac/ticket/766 According to the FastCGI Specification: If an application has no errors to report, it sends either no FCGI_STDERR records or one zero-length FCGI_STDERR record. See section 6.1 Role Protocols - http://www.fastcgi.com/devkit/doc/fcgi-spec.html In the interim, modifying thfcgi.py to not send an zero-length FCGI_STDERR record also fixes the problem. = Plan = ## This part is for Moin``Moin developers: * Priority: * Assigned to: * Status: Committed as 8c8b63ad1d17, thanks Jay! ---- ## If you are a moin core developer, replace the category to Category* in these cases: ## Category MoinMoinNoBug - if this is not a bug. ## Category MoinMoinBugConfirmed - if you can confirm the bug on current code. ## Category MoinMoinBugFixed - after the bug is fixed in current code. CategoryMoinMoinBugFixed