With help from Martin McClure and Peter McLain we seem to have identified the problem described earlier. It seems that a bug was introduced in FastCGI 2.4.4 that causes it to not play nice with compression. The fix planned for FastCGI is to not pass the ‘Content-length’ header. (Given that this field should be included, I’m not sure that this is the best fix, but that is out of my hands.)

It seems like GLASS developers have a few options:

  • Patch the source and rebuild mod_fastcgi;
  • Disable compression from the web server (e.g., removing mod_deflate);
  • Use FastCGI version 2.4.2; or
  • Modify FSSeasideHandler>>#’convertResponse:’ to not send ‘Content-length’.

I’ve tried each approach and decided to make the Smalltalk change since it is the area over which we have most control and it means that other Smalltalk developers will not need to do C programming or Apache configuration.

I’ve committed FastCGISeaside-jgf.50.mcz to the FastCGI project. I’ve also committed ConfigurationOfGsSeaside28-jgf.21.mcz to the Seaside project.

Advertisements