Hi Mark,

> -----Original Message-----
> From: Mark Thomas [mailto:ma...@apache.org]
> Sent: Thursday, October 10, 2013 10:53 AM
> To: Tomcat Developers List
> Subject: Re: svn commit: r1530081 -
> /tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
> 
> >> 2) What is a bit more severe is that sometimes after pressing F5 a lot of
> times, Firefox cannot establish a Websocket connection or make another
> HTTP request to Tomcat.
> 
> I can't reproduce this. It is possible that the fix for 1 also fixed
> this. Can you test?
> 
> What I did see was that with a lot of refreshes, Firefox ended up with
> two connections open when it should only have had one. Closing the
> browser fixed that.

Thanks.

Yes, I can still reproduce this on trunk with r1530937.

What I did was:
I started Tomcat on a server (connected over internet, not LAN, so the 
latency/speed is not as good as in a LAN) and started Tomcat. Then, on two 
machines I opened the drawboard example and drew something on it so that the 
PNG images gets big (about 500 KB). Then on both machines I simultaneously 
pressed F5 (either holding it down for some seconds, or press it manually when 
Firefox was in the middle of receiving the PNG image).
After some time where I stopped, the drawboard mentioned 3 connected players 
instead of 2. Then I closed Firefox on machine A - it reported 2 players. I 
reopened firefox - 3 players. Then I closed Firefox on machine B - still 2 
players. I reopened Firefox on machine B - then it tried to establish a new 
websocket connection (the .xhtml page was probably loaded from the cache), but 
after 5 seconds, it displayed "Websocket closed" so it couldn't establish a new 
connection - at the same time on the other machine the player count went down 
to 1.
Then, on machine B I pressed F5 again, but now Firefox couldn't even load the 
.xhtml page, and on Tomcat the NPE showed up again:

10-Oct-2013 15:05:49.249 SEVERE [http-nio-8783-ClientPoller-0] 
org.apache.tomcat.util.net.NioEndpoint.processSocket Error allocating socket 
processor
 java.lang.NullPointerException
        at 
org.apache.tomcat.util.net.NioEndpoint.processSocket(NioEndpoint.java:624)
        at 
org.apache.tomcat.util.net.NioEndpoint$Poller.processKey(NioEndpoint.java:1163)
        at 
org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1121)
        at java.lang.Thread.run(Thread.java:724)

(and as I'm writing this, Firefox still seems to wait for a reply from Tomcat.

After that I have pressed ESC to abort loading and pressed F5 again, but still 
no new websocket connection.

Then I took my TCP forwarder tool to see what data is actually sent on the TCP 
connections from and to Tomcat. This is what happened:
1) Firefox opened Connection 1 and sent "GET 
/examples/websocket/drawboard.xhtml HTTP/1.1" request to Tomcat.
2) On Connection 1, Tomcat replied with a correct reply with the contents of 
the drawboard.xhtml file.
3) On Connection 1, Firefox sent "GET /favicon.ico HTTP/1.1" request to Tomcat.
4) Firefox established two new TCP connections (3 and 4) to Tomcat.
5) On Connection 1, Tomcat replied with the correct contents of "favicon.ico".
6) On Connection 2, Firefox sends "GET /examples/websocket/drawboard HTTP/1.1" 
request to Tomcat with WebSocket headers to open the WebSocket connection.
7) Nothing happens.
8) After some time Firefox half-closed connections 1 and 3, and Tomcat 
full-closed them.
9) I shutdown Firefox so connection 2 was half-closed by the Client, but Tomcat 
did not full-close it so it is still active on the TCP forwarder.

Then I killed the TCP forwarder and opened it and Firefox again, but this time 
Tomcat even did not response on the "GET /examples/websocket/drawboard.xhtml 
HTTP/1.1" request. After I closed Firefox, then again the connection where that 
request was sent was still hold open by Tomcat. After some minutes, the 
forwarder received a Timeout error on the TCP connection that was still held 
open by Tomcat (SocketError: TimedOut (10060)).


Hope this helps,

Regards,
Konstantin Preißer



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to