httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From William A Rowe Jr <wr...@rowe-clan.net>
Subject Re: httpd 2.4 and windows "hangs" and AcceptFilter solution
Date Wed, 10 Jun 2015 20:52:16 GMT
Can you reproduce using the real network driver?  The loopback/localhost
interface is famously junk.
 On Jun 10, 2015 11:22 AM, "Andy Wang" <awang@ptc.com> wrote:

> Yeah, that much I more or less get.
>
> What I really don't understand is what can a client do (IE11) that would
> regularly cause httpd.exe to hang with AcceptEx.  This is reproducible on
> every single machine I've ever tried, including completely vanilla virtual
> machines, or pretty straightforward physical machines with intel NICs and
> no additional stack drivers.  That seems like a pretty hideous architecture
> if a regular non-malicious client requests could end up causing the web
> server to simply stop responding.
>
> The InstallAnywhere problem I mentioned is also reliably reproduced on
> every single Windows system I've tried this on (about a dozen different
> systems with different configurations - virtual and physical).  This is the
> one I especially can't understand.  How would launching httpd.exe from a
> installer process (java.exe specifically) prevent it from responding to
> requests.
>
> Andy
>
> On 06/10/2015 10:48 AM, William A Rowe Jr wrote:
>
>> It turns off all advanced socket mechanics for accepting connections.
>> That means
>> it won't pre-fetch data.  Because of how cobbled-together the WinSock
>> network
>> stack drivers (third parties, included) were, there are many things that
>> break
>> sendfile (disable sendfile) or socket reuse (disable advanced accept
>> logic).
>>
>> In other words, if you need reliability on some pretty crazy
>> installations of
>> Windows with lots of out-of-date drivers, your solution is the way to
>> go.  They
>> are for performance, there is no reason to turn these on in low-traffic
>> cases.
>>
>>
>> On Wed, Jun 10, 2015 at 10:31 AM, Andy Wang <awang@ptc.com
>> <mailto:awang@ptc.com>> wrote:
>>
>>     I originally asked this on user@httpd and didn't get a response, so
>>     thought I'd redirect to dev and see if anyone can explain why this
>>     would occur if you have time.  I have to admit, it's a curiosity to
>>     me, that I just don't want to let go until I understand it and what
>>     research I've done into AcceptEx doesn't seem to be giving me any
>>     more insight.
>>
>>     --- original message ---
>>
>>     We've come across numerous cases where apache httpd 2.4 (I'm using
>>     2.4.12 but I don't believe this is version specific) hang using the
>>     default configuration options.
>>
>>     There are two cases
>>     1) we have an InstallAnywhere installer that launches httpd during
>>     install time to do some initial work.  When the installanywhere
>>     installer starts httpd.exe (it does it via cmd.exe) httpd does not
>>     respond to requests.  If you kill the installanywhere installer, then
>>     all of the sudden httpd starts responding
>>     2) certain IE 11 client requests hang httpd 2.4.
>>
>>     I've wireshark'ed #2 and at some point, an http GET gets an ACK and
>>     nothing more.  I've peeked a little bit at the process threads with
>>     processexplorer (unfortunately i'm not a windows developer, so I'm not
>>     entirely familiar with the low level windows stuff) and everyhting
>> looks
>>     like it's okay and simply waiting for requests.
>>
>>     What I found after googling and testing is AcceptFilter http|https
>> none
>>     prevents both of those problems.  I've not yet tried connect to see if
>>     that works either.
>>
>>     But what I'm really wondering about is, can anyone explain, especially
>>     in #2, what it is about AcceptFilter http none that actually resolves
>>     these types of issues?
>>
>>     Thanks,
>>     Andy
>>
>>
>>
>>
>>
>>

Mime
View raw message