A strange problem

A strange problem

am 08.02.2010 15:13:27 von Igor Franchuk

Hello users,

I have apache 2.2.14-r1/events MPM running on Gentoo with the 2.6.31 linux
kernel

The problem starts as usually - from time to time I have many threads in W state,
which won't leave the state. The threads engaged in writing have
an IP address to where Apache supposedly transmits the requests.

If I #netstat -nt | grep "IP engaged in the W"
I would have an empty reply, no connection to IP present. Yet the server-status
insists that threads are engaged in writing. No load is generated but the slots are
busy, the memory is used etc.

The question is - could someone with a deep apache understanding shed some light
on how it could possibly happen. Yes, this server sometimes is attacked, that true.
I just don't see how it could write to a closed socket and stay
there not knowing that the connection was closed. Yes, I have custom
TCP settings to close connections faster.

But what is idea behind it? How could system know about a closed
connection and Apache not?

Thanks in advance.


--
Best regards,
Igor mailto:sprog@online.ru


------------------------------------------------------------ ---------
The official User-To-User support forum of the Apache HTTP Server Project.
See for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org

Re: A strange problem

am 08.02.2010 15:23:04 von Jeff Trawick

On Mon, Feb 8, 2010 at 9:13 AM, Igor Franchuk wrote:
> Hello users,
>
> =A0I have apache 2.2.14-r1/events MPM running on Gentoo with the 2.6.31 l=
inux
> =A0kernel
>
> =A0The problem starts as usually - from time to time I have many threads =
in W state,
> =A0which won't leave the state. The threads engaged in writing have
> =A0an IP address to where Apache supposedly transmits the requests.
>
> =A0If I #netstat -nt | grep "IP engaged in the W"
> =A0I would have an empty reply, no connection to IP present. Yet the serv=
er-status
> =A0insists that threads are engaged in writing. No load is generated but =
the slots are
> =A0busy, the memory is used etc.

W doesn't necessarily mean httpd is actively sending the reply. The
request has been read and (generally) control has been passed to a
module to generate and control sending of the reply.

Backtraces of these threads would show where processing has hung.

------------------------------------------------------------ ---------
The official User-To-User support forum of the Apache HTTP Server Project.
See for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org

Re[2]: A strange problem

am 08.02.2010 21:50:30 von Igor Franchuk

Hello Jeff,

Monday, February 8, 2010, 5:23:04 PM, you wrote:

Thanks for the reply, in my case thread would hang like

____C__C_____WW__CW_________W__WWWWCWWC_CWWWWWWWWWW_CWWWWWCW WWW
WWCCWWWCWWWCWWWWWWWWWWWWCWWWCWCW

for 70 minutes and more till apache is restarted. No load is
generated, only RAM is consumed and the workers. All requests are
hitting PHP, but there is no way PHP would run more than 5 seconds,
it's configured and the holes allowing users to reconfigure timeouts
are patched. It just hangs in the midair, like waiting for a mutex
that won't ever open.

I don't know how to backtrace apache threads yet but I understand what
you mean and will give it a go when another such case happens. I can't
reproduce the faulty conditions. It just would eat threads out, for no
particular reasons.

It looks like there is always a new way to bring it down.


JT> On Mon, Feb 8, 2010 at 9:13 AM, Igor Franchuk wrote:
>> Hello users,
>>
>>  I have apache 2.2.14-r1/events MPM running on Gentoo with the 2.6.31 linux
>>  kernel
>>
>>  The problem starts as usually - from time to time I have many threads in W state,
>>  which won't leave the state. The threads engaged in writing have
>>  an IP address to where Apache supposedly transmits the requests.
>>
>>  If I #netstat -nt | grep "IP engaged in the W"
>>  I would have an empty reply, no connection to IP present. Yet the server-status
>>  insists that threads are engaged in writing. No load is generated but the slots are
>>  busy, the memory is used etc.

JT> W doesn't necessarily mean httpd is actively sending the reply. The
JT> request has been read and (generally) control has been passed to a
JT> module to generate and control sending of the reply.

JT> Backtraces of these threads would show where processing has hung.

JT> ------------------------------------------------------------ ---------
JT> The official User-To-User support forum of the Apache HTTP Server Project.
JT> See for more info.
JT> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
JT> " from the digest: users-digest-unsubscribe@httpd.apache.org
JT> For additional commands, e-mail: users-help@httpd.apache.org



--
www.rol.ru
Best regards,
Igor mailto:sprog@online.ru


------------------------------------------------------------ ---------
The official User-To-User support forum of the Apache HTTP Server Project.
See for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org