Avoiding FastCGI Trac Timeouts
Thursday 23rd March 2006Our new Trac install is working very well. Since it’s simpler than Gforge was, people seem much more interested in using it (even, if they’ll forgive my saying so, some members of the graphic design team).
We’ve run into a few minor problems, though. In situations where particularly long SVN commits have taken place, or where the “Browse Source” listing for a project is really long, we kept getting 500 Server Error messages. The apache2 log said Premature end of script headers. Thinking back to my previous experiences with Rails, I thought it might be the idle timeout with FastCGI, so I added these directives to /etc/apache2/mods-enabled/fcgid.load.
IPCCommTimeout 40
IPCConnectTimeout 10
This allows Trac to think about a page for up to 40 seconds before rendering it – one page we had problems with, showing a very long SVN commit, was 1.1 MB (!) of HTML, coloured and diffed. That page takes about 7 seconds to render, the default timeout must have been (I’m guessing) 5 seconds or something.
Now to figure out why Apache is not delivering rss feeds from Trac with the proper mime types, and we’re in pretty good shape.
Trac Install on Debian Sarge (PPC)
Tuesday 21st March 2006Last week, one of our internal servers developed symptoms of RAM / motherboard failure. The machine was running Debian 3.1 (Sarge) and acted as our main CVS repository, as well as having an install of Gforge 4.5.3 for project management. I really liked Gforge, but some of the other developers found the interface a little monstrous. After a quick meeting, we decided to go for something a little more lightweight to replace it – Trac. I’d been watching this project for a while and had been impressed with how agile and no-nonsense it seemed.
In the end, I had a Debian system running:
- Trac (the latest 0.9.4 release at the time of writing, not the older Debian package)
- Apache2 using FastCGI (specifically libapache2-mod-fcgid)
- Subversion 1.1 (with repositories set to use –fs-type=fsfs, important for reasons which will become clear)
- htpasswd for Trac’s user authentication
Collection serialization and SOAP
Friday 10th March 2006The other day I was using SOAP and C# to return an array of objects from a web service to a Flash client. On the server, each object of type SiteSectionEntity has a property ("Children") which is an IList of SiteSectionEntities. It's a pretty normal recursive structure, one level deep. My trouble was that the Children objects were being serialized like this: [code] true Some text here. ...more attributes here... [/code] I didn't want that. I tried putting an attribute declaration on to the Children property of the C# class, but it didn't quite work: Read the rest of this entry »
An Actionscript 2 Environment on GNU/Linux
Friday 11th November 2005The basics of setting up an open-source Actionscript 2 development environment are detailed very well by Carlos Rovira [1] in his excellent article “Towards Open Source Flash Development.” After reading that post, you may be wondering, “Ok, Eclipse is Java-based, this setup should work on GNU/Linux…does it?”. Yep. But it’s not particularly straightforward.
