Tuesday, December 14, 2010

Fixing an issue with FastCGI

Last week, just as we were preparing our final candidate build of Web Edition, it was discovered that there is an issue with FastCGI. FastCGI apps, especially under Linux, can get into states where they are using 100% of the CPU. Clearly that's not going to work if you have anything else running on the same machine.

The solution requires us to make some fairly significant changes under the hood which will need to be well-tested before they can be released. So I made the decision that we would go ahead and ship R5 so that you can start developing and testing your apps. We will ship an update (5.1) that will include this fix once it has been well tested. These updates will always work with any license key that worked with the major release (R5 in this case) so you don't need to worry about missing the fix.

This issue ONLY affects deployment as FastCGI. It does NOT affect building your app as a standalone HTTP Server.

We apologize in advance for this last minute issue. We will get you the update as soon as we can.


Paul said...

While you're at it, please fix 14014 (RBScript on PowerPC hard crashes) for r5.1. Make me a happy boy.

Geoff Perlman said...

I'm pretty sure that's already fixed for 5.1.

Unknown said...

Well, people can use renice to lower the CPU usage and keep the machine responsive.

TJ said...

Unfortunately, this isn't only related to FCGI. It affects standalone apps in the exact same manner. Standalone apps are polite until a connection occurs and then the CPU usage pegs.

Tested on Fedora 9, Fedora 13, Ubuntu 9.04, Ubuntu 10.10, CentOS 5.5, ArchLinux, and homebrew Linux. Both with old, default kernels and modern updated kernels. At least with the 2.6.30+ kernels, the CPU hit is only around 50% at peak rather than 100%

Thom McGrath said...

Thanks, that "until a connection occurs" is a handy clue. I think I know exactly where to look now.

TJ said...

Sorry, Thom, I thought I'd mentioned that before in my notes about the kernel changes.