librelist archives

« back to archive

SSL Weirdness

SSL Weirdness

From:
Yaroslav Shirokov
Date:
2011-06-23 @ 22:16
I've been having strange behavior out of mongrel2 with SSL enabled. 
(develop branch at the time of writing +/- a few commits, reports as 1.7.5
from m2sh)

First ran into a problem where the HAProxy health-check to an SSL'd 
mongrel2 server would send it into a 100% CPU spike that never ended, 
though it was still able to answer requests.

Now I have the same behavior when the server is serving legitimate 
requests over SSL, proxied through HAProxy just for the bind to privilaged
ports with the healthcheck theoretically disabled.

I've attached an strace snippit of what it looks like when the server is 
in the spike.  The list of FD's that are being looped through poll, then 
being recvdfrom() == 0'd slowly grows over time.

Anyone have any idea, or even, has anyone else seen this before?

Strace: https://gist.github.com/1043742

--
Slava

Re: [mongrel2] SSL Weirdness

From:
Loic d'Anterroches
Date:
2011-06-25 @ 21:08
Hello,

On 2011-06-24 00:16, Yaroslav Shirokov wrote:
> I've been having strange behavior out of mongrel2 with SSL enabled. 
(develop branch at the time of writing +/- a few commits, reports as 1.7.5
from m2sh)
> 
> First ran into a problem where the HAProxy health-check to an SSL'd 
mongrel2 server would send it into a 100% CPU spike that never ended, 
though it was still able to answer requests.
> 
> Now I have the same behavior when the server is serving legitimate 
requests over SSL, proxied through HAProxy just for the bind to privilaged
ports with the healthcheck theoretically disabled.
> 
> I've attached an strace snippit of what it looks like when the server is
in the spike.  The list of FD's that are being looped through poll, then 
being recvdfrom() == 0'd slowly grows over time.
> 
> Anyone have any idea, or even, has anyone else seen this before?

Is the health check against an handler or a Dir? If an handler, are you
handling the disconnect messages correctly (ignoring or updating your
internal state)? I had a spike when my handler was getting from mongrel2
a client disconnect message and I was answering a 404 to the client
which was of course not here anymore. Thus snowballing.

haproxy with ssl may trigger this issue but not your previous setup.
Just an idea, I have not tested yet ssl as I wanted :/

loïc

--
Indefero - Project management and code hosting - http://www.indefero.net
Photon - High Performance PHP Framework - http://photon-project.com
Céondo Ltd - Web + Science = Fun - http://www.ceondo.com