Author |
|
bain19
Joined: 23 Jul 2015 Posts: 8
|
Posted: Thu 23 Jul '15 17:31 Post subject: A limit of one concurrent connection ? Found a weird error |
|
|
Can anyone tell me what I am doing wrong, when i unpack httpd-2.4.16-win64-VC14.zip to C:\ and run c:\apache24\bin\httpd.exe -X using the default configuration i am allowed only one concurrent connection.
To test this I have two workstations.
On workstation one I connect to the webserver using Internet explorer and receive the "It works!" default page
On workstation two I connect to the webserver using telnet to hold the connection open. This is the command I run:
If I go back to workstation one and refresh the page internet explorer will time out.
If I kill telnet running on workstation two the page will begin to load again on workstation one.
I have tested this with both Windows 7 and Windows Server 2008 R2.
Has anyone seen this before, how do I resolve this issue ? |
|
Back to top |
|
Steffen Moderator
Joined: 15 Oct 2005 Posts: 3092 Location: Hilversum, NL, EU
|
Posted: Thu 23 Jul '15 17:45 Post subject: |
|
|
Any warning/error in the apache error log or windows event viewer ?
Last edited by Steffen on Thu 23 Jul '15 19:05; edited 1 time in total |
|
Back to top |
|
bain19
Joined: 23 Jul 2015 Posts: 8
|
Posted: Thu 23 Jul '15 17:55 Post subject: |
|
|
nothing in the error logs, even with the loglevel set to debug ... I see my browser session once the page loads in the access log though |
|
Back to top |
|
Steffen Moderator
Joined: 15 Oct 2005 Posts: 3092 Location: Hilversum, NL, EU
|
Posted: Thu 23 Jul '15 19:05 Post subject: |
|
|
What do you want to achieve ?
What do you mean with : ...i am allowed only one concurrent connection... ? |
|
Back to top |
|
bain19
Joined: 23 Jul 2015 Posts: 8
|
Posted: Thu 23 Jul '15 19:25 Post subject: |
|
|
Well to me this seems like quite an issue, how can one user block request for an entire webserver using a single command/connection, other Apache webservers don't seem to suffer from the same issue/limitation.
As far as i understand one net session shouldn't be able to block the rest of the web sessions accessing the server, no?
As to your question
Quote: | What do you want to achieve ? |
i want my apache webserver to continue to serve pages, regardless if a single user decides to test my server with openssl s_client or telnet |
|
Back to top |
|
Steffen Moderator
Joined: 15 Oct 2005 Posts: 3092 Location: Hilversum, NL, EU
|
Posted: Thu 23 Jul '15 20:05 Post subject: |
|
|
Did a Telnet to my Apache 2.4.16 here with my iPhone on the same LAN.
Did not saw your issue. |
|
Back to top |
|
bain19
Joined: 23 Jul 2015 Posts: 8
|
Posted: Thu 30 Jul '15 17:24 Post subject: |
|
|
I am runnign these commands from Windows 7 and accessing the site from Windows7(using IE and Chrome).
I still get the issue even if I change versions of Apache. |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7373 Location: Germany, Next to Hamburg
|
Posted: Thu 30 Jul '15 17:33 Post subject: |
|
|
The -X creates only one thread for debuging, so only one connection is allowed. So you might wanna start apache without -X or make sure that no other process accesses your server. |
|
Back to top |
|
bain19
Joined: 23 Jul 2015 Posts: 8
|
Posted: Thu 30 Jul '15 17:56 Post subject: |
|
|
In my testing I have tried with without -X and I have also tested while running apache as a service.
one thing I did notice is if I ran the command
webrequests to https://myserver still function and the same applied vice versa. Running the command:
Code: | telnet myserver 443 |
would allow http://myserver to still function but https would now fail. |
|
Back to top |
|
bain19
Joined: 23 Jul 2015 Posts: 8
|
Posted: Thu 30 Jul '15 18:09 Post subject: |
|
|
If i run wireshark on the "server" and at the same time run the telnet command on workstation one
When workstation two connects to http://myserver
I see this on the server
http://i.imgur.com/kPNMJbN.jpg
so a request is making it to the machine but a reply is never sent
Its not until I close the telnet connection that I see the response sent to workstation two
http://i.imgur.com/4NPGQcD.jpg
In the screenshots .39 is the workstation two and .36 is the server |
|
Back to top |
|
bain19
Joined: 23 Jul 2015 Posts: 8
|
Posted: Thu 30 Jul '15 19:53 Post subject: |
|
|
Did a quick test and changing the accept filters seems to resolve the issue.
I added these two lines to my httpd.conf and its no longer an issue:
Code: | AcceptFilter https none
AcceptFilter http none |
If others are able to recreate the issue people may want to add it to the default httpd.conf |
|
Back to top |
|
admin Site Admin
Joined: 15 Oct 2005 Posts: 692
|
Posted: Sat 01 Aug '15 10:39 Post subject: |
|
|
Thanks.
Did you had Asynchronous AcceptEx in the error.log ?
With every announce we note: When you have hangs, slow traffic and/or when having in your log entries like Asynchronous AcceptEx failed. You can try the following settings:
AcceptFilter http none
AcceptFilter https none
EnableSendfile off
EnableMMAP off
The dev's discussed this million times for years, even Microsoft had a look at the Acceptfilter issue, but no solution.
Looks like you have found a situation/case that can give more info on the issue. |
|
Back to top |
|
bain19
Joined: 23 Jul 2015 Posts: 8
|
Posted: Tue 18 Aug '15 14:19 Post subject: |
|
|
admin wrote: |
Did you had Asynchronous AcceptEx in the error.log ?
|
I saw nothing in the logs when I was intentionally causing the situation.
It was all just a guess. |
|
Back to top |
|