I think I hit a bug in WinGate's SSL implementation.
I am testing the reverse proxy/WWW functionality at the moment. Test setup: Client (WinXP) <-> WinGate Machine (Win Server 2003 + WinGate) <-> Local webserver. Everything is connected through gigabit and two independent smart switches. The WinGate machine only runs WinGate, with all services except the WWW Service and the Remote Control Service switched off. Windows Firewall and all other relevant Windows services are also switched off. WinGate acts as a reverse proxy for a single webapp.
Without SSL (normal HTTP trafic) everything works perfect. WinGate is rock solid, even under full load / 100% CPU with multiple connections, and the throughput is, even on my somewhat slow test server, excellent.
With SSL/HTTPS throughput is of course lower, but everything is still rock solid, even at full load. There is one specific situations though, where I consistently have problems, and that is with big (>10MB) SSL/HTTPS uploads from a single client through WinGate to the server. Downloads are not a problem, multiple simultaneous connections uploading big files also not.
Only when a single connection to WinGate is sending a big file over SSL to the server and the WinGate computer is (thanks to the gigabit connection) at 100% CPU, then somewhere after between 10 and 13 MB (but almost always after an exact multiple of 1024 bytes) the WinGate.exe process stays at 100% CPU but stops transmitting any packets. Even if I kick the connection, the process stays at 100%. Only when a new connection is established, then after 3-4 seconds everything is back to normal.
* WinGate test computer is a single Pentium III machine and must be at or near 100% CPU. If I limit the bandwidth of the switch between client and WinGate computer to keep CPU below say 90%, the error will not show up.
* A single SSL connection must be uploading. As soon as there are multiple SSL connections uploading, the error will not show up.
* If the uploaded file is less than approx. 10MB in size, there is also no error and everything works as expected.
* The error only shows up with SSL traffic from the client to the reverse proxied server. Downloads and non SSL traffic are not affected.
* ENS driver loaded or not loaded doesn't make a difference. Bandwidth control is switched off.
This error sounds somewhat similar to the one described in forums.qbik.com/viewtopic.php?t=5199, but the solutions in that topic have no effect.
On a faster production machine this error probably won't show up. But I like to be sure about these things :-), so any input is appreciated.
Thanks, Bob